8

DITAには、データ要素とキーワード要素の2つの「汎用」タイプのメタデータタグがあります。もちろん、othermetaもありますが、これは間もなく廃止される予定であり、その名前はとにかくその種の最後の手段を示唆しています。

そのため、キーワードはWebアプリケーションのタグ、つまり「フォークソノミー」に一般的に使用されているタグによく似ているようです。しかし、データとキーワードの正確な違いは何ですか?いつどちらを使用する必要がありますか?

4

4 に答える 4

3

あなたはここで少し軌道に乗っていない。キーワード要素はメタデータ要素ではありません。キーワード要素は一般的なテキスト要素であり、製品名によく使用されます。ここで指定したいと思う要素はkeywords要素だったと思います。また、othermeta要素を実際に書き留めたくはありません。非推奨ではなく、非常に便利です。

キーワード要素

キーワード要素は、トピックレベルまたはマップレベルのいずれかで使用できます。これは、キーワードまたはindexterm要素のいずれかでタグ付けされた、主題の語彙からの用語のリストを保持します。キーワード要素とインデックス用語要素はメタデータ要素と見なされ、メディアに応じて出力に反映される必要があります。indexterm要素は通常インデックスを生成します。XHTML出力では、キーワード要素は通常XHTMLに追加され、検索エンジン最適化に使用されます。(これはDITA-OTの標準機能ですが、DITA-OTに付属している無料のPDFレンダリングエンジンはインデックスを生成しません。)

データ要素

そのまま使用すると、データ要素はDITAトピックまたはマップ内のプロパティを表します。主な側面は次のとおりです。

  • プロパティのサブジェクトは、データ要素を含む要素です。プロパティがトピック全体に適用される場合は、トピックのprolog要素、またはトピックを指すtopicrefのtopicmeta要素に配置する必要があります。
  • データ要素の@name属性は、プロセッサのプライマリ識別子です。
  • プロパティの値は、いくつかの異なる方法で表すことができます。
    • 多くの場合、@value属性を使用して表現されるテキスト値
    • @href属性を使用した、別のリソース(トピック、画像、Webリソースなど)への参照
    • ネストされたデータ要素で構成される複雑な構造
  • オプションのtitle要素を使用して、プロパティのラベルを提供できます。

デフォルトでは、プロセッサはデータ要素のコンテンツを無視します。ただし、フォーマットなどに特定のデータ要素のコンテンツを使用するカスタム処理を構築できます。

特殊化の基礎として使用されるデータ要素は、特に便利です。これにより、より正確なセマンティクス、および特定の要素の属性の制御されたリストの列挙が可能になります。ブックマップおよびラーニング&トレーニングスペシャライゼーションで使用されるメタデータ要素を調べると、スペシャライゼーションベースとしての使用例を数多く見ることができます。

具体的な例については、DITA1.2仕様のデータ要素のトピックを参照してください。

othermeta要素

othermeta要素は、既存のメタデータ要素が適用されていないように見えるコンテンツを保持するように設計されています。これは基本的に名前と値のペアを保持します。@name属性を使用してプロパティに名前を付け、@content属性を使用して値を保持します。

どの特定の要素をいつ使用する必要がありますか?

  • 特にkeywords要素のコンテンツを生成された出力で使用する必要がある場合は、 keywords要素を使用して特定のトピックに適用される索引用語とキーワードを指定します。
  • データ要素を使用して、DITAトピックまたはDITAマップ内にプロパティを埋め込みます。特に、カスタム処理の補助として、または自動処理のためにプロパティを収集します。
  • 特殊化の基礎としてデータ要素を使用します。
  • othermeta要素を使用して、セマンティック要素が存在しない名前と値のペアを保持します。
于 2013-03-10T22:22:35.567 に答える
3

この<data>要素は主に特殊化のためのものであるため、直接使用するのはおそらく賢明ではありません。<keyword>要素が優れています。

これ:

    <metadata>
        <keywords>
            <keyword>red</keyword>
            <keyword>green</keyword>
            <keyword>blue</keyword>
        </keywords>
    </metadata>

DITA-OT XHTML 変換でこれをレンダリングします。

<head>
  <meta name="DC.subject" content="red, green, blue"/>
  <meta name="keywords" content="red, green, blue"/>
</head>

タグを追加したい場合は、制御された値のリストを含めることができるサブジェクト スキーム マップの使用を検討します。

@baseまたは属性を特殊化すると、@propsメタデータを追加してさらに細かく制御できます。ここでは、@propsに特化した属性があります@era

@era次に、属性をトピック内の<topicref>要素またはマップ内の要素に追加できます。

<subjectdef keys="era_attributedef">
  <topicmeta>
  <navtitle>Era of production by decade and producer</navtitle>
</topicmeta>

 <subjectdef keys="producer">
     <hasInstance>
         <subjectdef keys="sixties">
             <subjectdef keys="verity_lambert"/>
             <subjectdef keys="john_wiles"/>
             <subjectdef keys="innes_lloyd"/>
             <subjectdef keys="peter_bryant"/>
             <subjectdef keys="derrick_sherwin"/>
         </subjectdef>

         <subjectdef keys="seventies">
             <subjectdef keys="barry_letts"/>
             <subjectdef keys="philip_hinchcliff"/>
             <subjectdef keys="graham_williams"/>
         </subjectdef>

         <subjectdef keys="eighties">
             <subjectdef keys="john_nathan-turner"/>
         </subjectdef>
     </hasInstance>
 </subjectdef>

<enumerationdef>
    <attributedef name="era"/>
    <subjectdef keyref="era_attributedef"/>
</enumerationdef>
于 2013-02-28T13:03:48.187 に答える
1

正確な違いは?多くの違いがあります。仕様を読んでください (申し訳ありませんが、不親切に聞こえるつもりはありません)。

すでに言及されている仕様との違いを 1 つ示しますが、強調する価値があると思います。どちらを使用するかを決定するのに役立つ可能性があるためです (むしろ、<data> を使用するかどうかを決定するのに役立ちます)。

プロセッサはデフォルトで <data> 要素のコンテンツを無視する必要があるため、 <data> 要素はプロパティにのみ使用し、トピック body のフローの一部としてフォーマット用のテキストを埋め込まないようにする必要があります。

(仕様の冒頭の他の場所のテキストも参照してください:「カスタム処理は...」。)

<keyword> を使用して、「トピック本文の流れの一部としてフォーマット用のテキストを埋め込む」ことができますが、<data> でそれを行うべきではありません。

具体的なユースケースについて説明できますか? (どの情報をマークアップしますか?)

于 2013-03-11T08:25:53.057 に答える
1

データ要素には、キーである @href と @name および @value 属性があります。

したがって、ビルドに必要なあらゆる種類のプロパティを定義できます。

<data name="currentTopNavSection" value="profil"/>

ドキュメントの読者に応じて、いくつかのパス情報を提供する必要があるシナリオがいくつかあります。これには data 要素を使用できます。

<data audience="lifeg" name="active-audience" value="lifeg"/>

これにより、ドキュメントをフィルタリングするときに、アクティブなオーディエンスを知ることができます

別の例は、マップに固有の JavaScript を添付することです。

私は現在、データを特殊化して javascript と css を含める webmap の特殊化に取り組んでいます。

* 更新 2 *

データ要素はネストできます。エリオット・キンバーが投稿でこれを説明しています。どれだか思い出せない。アイデアは、プロパティのコレクションを表すことができるということです

   <data name="parent">
        <data name="chilproperty1" value="abc"/>
        <data name="chilproperty2" value="abc"/>
   </data>

この構造は、特殊化の目的に非常に役立ちます。

私の理解では、データ要素は特定のものではありません。これは、作成者が、専門的であるかどうかにかかわらず、非常に具体的なニーズを文書化する方法です。ビルド プロセスの後半で xsl を使用して値を取得するのは簡単です。

于 2013-03-06T17:32:18.280 に答える