トピックの中の一部分を再利用する @conref

トピックの中の一部分だけを再利用するには、DITAのコンテンツ参照機能を使用します。コンテンツ参照機能を使用するには、conref属性により参照先のコンテンツを指定します。

トピック内の、ある1つの要素をトップとする要素ツリーのことを、フラグメントと呼びます。DITAには、フラグメントを再利用するためのコンテンツ参照機能があります。フラグメントの参照元と参照先が同一トピック内にあっても構いませんし、別々のトピック内にあっても構いません。ただし、トピック間でコンテンツ参照機能を使用すると、トピックの独立性が失われ、トピックの再利用性が低下する点に注意しなければいけません。

コンテンツ参照機能を使用するには、参照先の要素にIDを付与し、参照元の要素のconref属性に参照先要素のパスを指定します。参照先の要素と参照元の要素は、同一の要素タイプでなければいけません。conref属性を指定した参照元の要素は、トピックをパブリッシングする際に、参照先の要素に置き換えられます。すなわち、conref属性を指定した参照元の要素は、プレースホルダーの役割を果たします。

下図にコンテンツ参照機能の様子を示します。



コンテンツ参照機能の使い方

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/concept.dtd">
<concept id="tm" xml:lang="ja-jp">
  <title>商標の注記</title>
  <conbody>
    <ul>
      <li id="tm_oxygen">oXygenは、米シンクロ・ソフト社の商標または登録商標です。</li>
      <li id="tm_xmetal">XMetalは、株式会社ジャストシステムの登録商標です。</li>
      <li id="tm_arbor">Arbortext Editorは、米パラメトリック・テクノロジー・コーポレーションの商標または登録商標です。</li>
    </ul>
  </conbody>
</concept>

参照先の要素を持つトピックのソースコード(tm.dita)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "http://docs.oasis-open.org/dita/v1.1/OS/dtd/concept.dtd">
<concept id="dita_editor" xml:lang="ja-jp">
  <title>DITA編集エディタの紹介</title>
  <shortdesc>DITAをサポートした文書エディタには、oXygen、XMetal、Arbortext Editorなどがあります。各エディタは、・・・</shortdesc>
  <conbody>
    <p>本文</p>
    <section>
      <title>商標および登録商標</title>
      <ul>
        <li conref="tm.dita#tm/tm_oxygen"/>    <!-- コンテンツ参照している要素 -->
        <li conref="tm.dita#tm/tm_xmetal"/>     <!-- コンテンツ参照している要素 -->
        <li conref="tm.dita#tm/tm_arbor"/>       <!-- コンテンツ参照している要素 -->
      </ul></section>
  </conbody>
</concept>

参照元の要素を持つトピックのソースコード

conref属性の書式

conref属性には、以下のような書式で参照先を指定します。

conref="filename.dita#topicID/elementID"

参照先のトピック・ファイル(filename.dita)は、参照元のトピック・ファイルがある場所からの相対パスで記述します。また、同一トピック・ファイル内の要素を参照する場合は、filename.ditaの指定を省略できます。