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で指定した文字列はトピックのタイトルとして生成物に現れます。