Top > FrameMaker Blog Index > DTD と EDD の作成

DTD と EDD の作成

XML文書をFrameMakerで開いてフォーマットするには、DTDとEDDが必要です。 簡単なドキュメントをDocbookで記述してみるで作成した XML文書(secondlife.xml) を使ってDTD,EDD作成手順を示します。

XMLはDocbookで記述しているためそのDTDを使うことも可能ですが、 Docbookの膨大な要素を管理したくないので、 ここでは、現在処理しようとしているXML文書用のDTDを trang と FrameMakerを使って機械的に 作り出す方法を使います。

STEP1) secondlife.xml から my.xsd を生成(trangを使用)

trangを使うと、 XML文書からスキーマ(DTD,XSD,RNG等)を推測して作成してくれます。

詳しい手順はTragを使って、DTDを簡単に作成する をご覧ください。

trang は XML文書中(secondlife.xml)にDOCTYPE宣言があるとエラーになります。 trang に渡す前に、DOCTYPE宣言を削除しておきます。

ここでは、 ここでの説明では こちらのページで紹介したxml-normailzer を使用してDOCTYPE宣言を取り除きますが、 テキストエディタを使って手動で削除しても問題ありません。

$ cp secondlife.xml secondlife_removedoctype.xml
$ java -jar xml-normailzer --removedoctype secondlife_removedoctype.xml
$ java -jar trang.jar -I xml -O xsd secondlife_removedoctype.xml my.xsd

xsdはXMLSchemaのデフォルト拡張子です。 上記コマンドで、secondlife.xml から my.xsd(XMLSchema)を生成します。

trang はXMLSchemaだけでなくDTDにも対応しています。 したがってXMLSchemaではなくDTDを直接生成した方が話が早いのですが、 エラーになり、生成できない場合があります。(今回の場合のように) DTDが生成できない場合は、今回のようにXSDを生成して、XSDからDTDへの変換は FrameMakerで行います。

STEP2) my.xsd から my.dtd と my.eddを生成(FrameMakerを使用)

FrameMaker7.2 以降で、XMLSchema に対応しています。 以下の手順で生成します。

  1. FrameMakerを起動します。(製品インタフェースが "構造化 FrameMaker" に設定されている必要あり)
  2. メニューから【構造化ツール - スキーマを開く】を選択
    1. ファイル選択ダイアログで my.xsd を選択
  3. ファイル保存ダイアログで ファイル名 my.dtd として保存
  4. アプリケーションの選択ダイアログで アプリケーションなし を選択し、続けるボタンをクリック
  5. タイプの選択ダイアログで XML を選択
  6. 名称未設定ファイルとしてFrameMakerドキュメントが表示される
  • 名称未設定ファイルをメニューから【ファイル - 保存】にて ファイル名 edd.fm に保存
  • 以上で、DTD(my.dtd( と EDD(edd.fm) が生成されました。

    今回使用したファイルと完成したファイル