構造化FrameMaker の基本的な開発・制作ワークフロー
ドキュメントを多言語で展開するために、いままでは、 InDesign+XMLを使って対処してきたが、 今度はFrameMaker+XMLの組合せで制作することになった。
FrameMaker(Structured)は、SGML時代から存在しているツールであり、
XMLを使った多言語展開には、InDesignよりずっとうまく対応できる設計になっている。
とはいえ、
ページ数が少なく、レイアウト要求が厳しい場合には、
やはり、InDesign+XMLの方がやりやすいと感じる。
EDDによるスタイルコントロールは、すこし気が重い。
構造化FrameMakerの基本的なワークフロー
FrameMakerを本格的に使うのは久しぶりなので、 制作のワークフローをおさらいした。
今回は、処理対象とするXML文書は、 こちら(Apache Velocity DocBook Framework ) からダウンロードできる DBFUserGuide(PDF) の一部を利用しました。
DBFUserGuide.xml は、Docbook4.5を使って記述されています。 今回は、Structured FrameMakerでXMLを使った制作ワークフローの確認をするのが目的なので、 このxmlの一部を抜粋して、 sample.xml を作成し、これを使って作業を進めます。
テストに使用したバージョンは、日本語版 FrameMaker 7.2(Windows) です。
TOC
STEP1 DTDの作成
用意した sample.xml から DTDを作成します。
$ java -jar trang.jar -I xml -O dtd sample.xml sample.dtd
作成されたDTD: sample.dtd
<?xml encoding="UTF-8"?>
<!ELEMENT book (title,chapter)>
<!ATTLIST book
xmlns CDATA #FIXED ''
lang #REQUIRED>
<!ELEMENT chapter (title,section+)>
<!ATTLIST chapter
xmlns CDATA #FIXED ''
id #REQUIRED>
<!ELEMENT section (title,para+)>
<!ATTLIST section
xmlns CDATA #FIXED ''
id #REQUIRED>
<!ELEMENT para (#PCDATA)>
<!ATTLIST para
xmlns CDATA #FIXED ''>
<!ELEMENT title (#PCDATA)>
<!ATTLIST title
xmlns CDATA #FIXED ''>
trang.jar について
STEP2 EDDの作成
STEP1で作成したDTDをEDDに変換します。 EDD(Element Definition Document)は、 XMLの各要素に対応したスタイル情報を記述したFrameMakerのドキュメントです。 FrameMaker独自規格の CSS(Cascading Style Sheets)と考えてほぼ間違いないと思います。
FrameMaker(Structured) を 起動...
- 【File - Structure Tools - Open DTD...】
- sample.dtd を選択
- Use Structured Application : < No Application > を選択
- Open DTD File for : XML を選択
- sample.dtd が EDDに変換されて表示
- 【File - Save As 】
- edd.fm というファイル名で保存
※EDDのスタイル設定は、なしで先に進めます。
STEP3 テンプレートの作成
STEP2で作成したEDDをテンプレートに読み込ませます。 テンプレートは、FrameMakerがひな形として使うドキュメントです。
以下の手順でテンプレートを作成します。
FrameMaker(Structured) を 起動...
- 【File - Open】
- edd.fm を選択
- 【File - New - Document 】
- Use Blank Paper: Portrait を選択 →新規ドキュメントが表示される
- 【File - Import - Element Difinitions...】
- Import from Document : edd.fm を選択
- Import ボタンをクリック
- 【File - Save 】
- ファイル名 template.fm として保存
STEP4 アプリケーションの定義
次にFrameMakerのアプリケーションを定義し、今回作成したDTDをもったXMLを FrameMakerで編集できるように準備します。
今回は、以下の設定でアプリケーションを作成します。
- アプリケーション名: hellofm
- テンプレート: template.fm
- DTD: sample.dtd
- EDD: edd.dtd (アプリケーション定義には直接必要ないファイル)
- DOCTYPE: book (ルートのエレメント名を指定)
- Public ID: -//OSIMA//DTD hellofm//EN (適当に...それっぽく定義)
準備
これらのファイルを慣例に従い、以下のディレクトリを作成した上で、その中にコピーしておきます。
- $STRUCTDIR/xml/hellofm/
$STRUCTDIR は、通常は次のディレクトリを示します。(状況に合わせて読み替えしてください。)
- c:/Programe Files/Adobe/FrameMaker7.2/Structure
アプリケーション定義の追記
FrameMaker上で アプリケーション定義ファイルに今回作成する hellofm を追加します。
アプリケーション定義ファイルのバックアップ
アプリケーション定義する前に 定義ファイルをバックアップしておくべきです。 通常は、アプリケーション定義ファイルは以下の場所にあります。
- $STRUCTDIR/structapps.fm
このファイルを別名でコピーするなどして、バックアップしておきます。
以下の手順でアプリケーションを作成します。
FrameMaker(Structured) を 起動...
- 【File - StructureTools - Edit Application Definitions ...】
- hellofm アプリケーションの定義を追加
- 【File - Save 】
- 【File - Structure Tools - Read Application Definitions....】(これを忘れないこと!)
アプリケーションの追記結果は以下のようになります。
structapps

Structure View

STEP5 XML文書の読み込みテスト
それでは実際に sample.xml を STEP4 で定義した hellofm アプリケーションを使って 開いてみます・・・その前に、Public ID を定義したので、 sample.xml の先頭部分に以下のように、DOCTYPE宣言を追加します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OSIMA//DTD hellofm//EN" "">
それでは開きます。
FrameMaker(Structured) を 起動...

- 【File - Open】
- sample.xml を選択
- Use Structured Application: hellofm
読み込まれると以下のように表示されます。

※スタイル情報はまだありません。
STEP6 スタイル情報の追加
STEP5 までできたら、あとは、
- スタイル情報をEDDに記述→XML文書に適用
ということを
XML文書が適切にフォーマットされるまで、繰り返します。
スタイル情報の作成段階では、サンプルのXML文書に対してEDD適用を行い、
満足のいく定義が出来たら、テンプレート(template.fm)に適用します。