navtitle属性
Eliot Kimberさんの書いた"DITA for Practitioners Volume 1"を読みながら、DITAの理解を深める努力をしています。"DITA for Practitioners"はVol 1、Vol 2から成り、今のところVol 1のみが刊行されています。英文書籍ですが、Amazon.co.jpで購入できます。値段は現在(2012.5.27)、3,170円です。私が買ったときは3,230円だったので、少し円高になったのかな。
Vol1では、DITA文書を一から書いてみるチュートリアルのために、1/3くらいのページが割かれています。対象の文書は、日本の合気道をテーマにした簡単な文書ですが、マップとトピックの一通りの書き方を経験できる、よく練られた文書になっています。マークアップはDITA1.2に準拠しています。Vol 2では特殊化やDITA-OTのカスタマイズについて書かれるそうなので、Vol 2の完成を楽しみにしています。
私は以前DITA1.1のライティングガイドを書いたことがありますが、この本を読んで、DITA1.1→DITA1.2でライティングの作法がいくつか変わっていることを学びました。ライティングガイドを改版するときに修正が必要です。
navtitle属性(DITA1.1)
DITA1.1→DITA1.2で変わったライティングの作法の一つがnavtitle属性です。DITA1.1ライティングガイドの中の「トピック参照を書く
ナビゲーション・タイトルの指定(navtitle属性)
参照先のトピックまたはマップのタイトルを指定します。ナビゲーション・タイトルの指定は必須ではありませんが、マップを見ただけで参照先のトピックが分かるようにするため、常にナビゲーション・タイトルを指定することを推奨します。
このガイドに従って書いたマップの例を示します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/bookmap.dtd"> <bookmap id="dita_ot_tips" xml:lang="ja-jp"> <title>DITA Open Toolkit活用ガイド</title> <bookmeta> <prodinfo> <prodname>DITA Open Toolkit活用ガイド</prodname> <vrmlist> <vrm version="00E"/> </vrmlist> </prodinfo> </bookmeta> <frontmatter> <topicref navtitle="権利について" type="concept" href="regal_notice.dita"/> <booklists> <toc/> </booklists> </frontmatter> <chapter format="ditamap" href="about_dita_ot/about_dita_ot.ditamap" navtitle="DITA Open Toolkitとは"/> <chapter format="ditamap" href="dita_ot_installation/dita_ot_installation.ditamap" navtitle="DITA Open Toolkitのインストール"/> <chapter collection-type="sequence" format="ditamap" href="jp_pdf_setup/jp_pdf_setup.ditamap" navtitle="PDF出力(FOプラグイン)の日本語化"/> <chapter format="ditamap" href="dita_ot_execution/dita_ot_execution.ditamap" navtitle="DITA Open Toolkitの実行方法" type="concept"/> <chapter collection-type="unordered" format="ditamap" href="pdf_customize/pdf_customize.ditamap" navtitle="PDF出力のカスタマイズ"/> <chapter collection-type="unordered" format="ditamap" href="html_customize/html_customize.ditamap" navtitle="XHTML/HTML Help出力のカスタマイズ"/> <backmatter> <booklists> <indexlist/> </booklists> </backmatter> </bookmap>
navtitle要素(DITA1.2)
DITA1.2ではnavtitle属性の使用は非推奨に変わっています。代わりnavtitle要素を使います。navtitle属性で書くときより、ちょっとタグの構造が深くなるのですが、topicref→topicmeta→navtitleという構造でトピックのタイトルを書きます。上記のマップをDITA1.2準拠に書き換えると下記のようになります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd"> <bookmap id="dita_ot_tips" xml:lang="ja-jp"> <title>DITA Open Toolkit活用ガイド</title> <bookmeta> <prodinfo> <prodname>DITA Open Toolkit活用ガイド</prodname> <vrmlist> <vrm version="00E"/> </vrmlist> </prodinfo> </bookmeta> <frontmatter> <topicref type="concept" href="regal_notice.dita"> <topicmeta> <navtitle>権利について</navtitle> </topicmeta> </topicref> <booklists> <toc/> </booklists> </frontmatter> <chapter format="ditamap" href="about_dita_ot/about_dita_ot.ditamap"> <topicmeta> <navtitle>DITA Open Toolkitとは</navtitle> </topicmeta> </chapter> <chapter format="ditamap" href="dita_ot_installation/dita_ot_installation.ditamap"> <topicmeta> <navtitle>DITA Open Toolkitのインストール</navtitle> </topicmeta> </chapter> <chapter collection-type="sequence" format="ditamap" href="jp_pdf_setup/jp_pdf_setup.ditamap"> <topicmeta> <navtitle>PDF出力(FOプラグイン)の日本語化</navtitle> </topicmeta> </chapter> <chapter format="ditamap" href="dita_ot_execution/dita_ot_execution.ditamap" type="concept"> <topicmeta> <navtitle>DITA Open Toolkitの実行方法</navtitle> </topicmeta> </chapter> <chapter collection-type="unordered" format="ditamap" href="pdf_customize/pdf_customize.ditamap"> <topicmeta> <navtitle>PDF出力のカスタマイズ</navtitle> </topicmeta> </chapter> <chapter collection-type="unordered" format="ditamap" href="html_customize/html_customize.ditamap"> <topicmeta> <navtitle>XHTML/HTML Help出力のカスタマイズ</navtitle> </topicmeta> </chapter> <backmatter> <booklists> <indexlist/> </booklists> </backmatter> </bookmap>
この仕様変更はXMLの基本に忠実であることを目指したものと思われます。「生成物に現れるコンテンツを書くには、属性ではなく要素を使いましょう」というのがXMLの文書構造を設計するときの鉄則です。navtitleは、トピックタイトルをマップでオーバーライドするときに使います。このとき、navtitleで指定した文字列はトピックのタイトルとして生成物に現れます。