2

DITAのsubjectSchemeは、メタデータの分類法を作成するのに適した形式ですが、実際にどのように使用する必要がありますか?具体的には、私の質問は次のことに関するものです。

  1. メタデータ要素を表すために使用できますか、それともメタデータ属性のみを表すために使用できますか?私の知る限り、要素は通常、検索メタデータに使用されます。つまり、フィルタリングに使用されるメタデータではないため、属性に適用されるのを見ただけです。
  2. 要素に使用できる場合でも、値はsubjectdefの「keys」属性に含まれている必要がありますか?
  3. メタデータ値に定義/説明を追加したい場合、どこでそれを行いますか?
  4. subjectSchemesを公開できますか/公開する必要がありますか?リソースのみのデフォルト属性のため、公開を目的としていないことが示唆されているのを見てきました。しかし、それは制限ではありませんか?これを使用して分類法を作成する場合、ユーザーの利益のためにそれを公開する簡単な方法も必要ですか?
4

2 に答える 2

5

私はあなたの最初の質問に対処するために最善を尽くします。全体として、subjectSchemeスペシャライゼーションは、サブジェクトの分類と制御された値を作成するように設計されています。これは、検索に使用できるサブジェクト分類を定義したり、属性値を定義および制御したりするための優れた機能を備えています。現在、DITA-OTは、属性の制御値の領域でのみ機能を提供します。

質問:「メタデータ要素またはメタデータ属性のみを表すために使用できますか?」

回答:その目的が「要素または属性を表す」ことであるとは言いません。これは、主題と制御された値を表すように設計されています。その設計はキーに基づいているため、属性を多用します。

質問:属性値の定義を追加する場合、どこで追加しますか?

回答:これを行うには、いくつかのオプションがあります。

  • 件名または属性値を説明する関連トピックを作成できます。このトピックは、subjectdef要素の@href属性を使用して参照します。これは、コンセンサス定義または条件付き処理値を使用する必要がある場合に関する情報を提供する場合に特に役立ちます。
  • subjectdef要素内にtopicmeta要素をネストできます。topicmeta要素内で、shortdesc要素とnavtitle要素にアクセスできます。
  • subjectdef要素の@navtitle属性にコンテンツを追加します。@navtitle属性は非推奨であり、通常は翻訳できないため、これはお勧めしません。

質問:メタデータ要素でsubjectScheme特殊化を使用できますか?

回答:はい。頭から離れて、HTMLベースの出力形式の1つの直接的な可能性と設計を次に示します。

  • 特定のサブジェクトについて、topicmeta要素をsubjectdef要素に追加します。topicmeta要素内では、すべてのメタデータ要素に完全にアクセスできます。必要な数のメタデータ要素を追加します。
  • DITAトピックを関連する主題に関連付けます。これは、特定の属性と値を使用するか、分類ドメインのsubjectref要素を使用して実行できます。
  • メタデータ要素がDITAトピック自体にある場合と同じように、サブジェクトに関連付けられた各DITAトピックがHTMLに書き込まれるメタデータを持つように出力処理を微調整します。この設計により、一貫性が確保され、キーベースのアーキテクチャにより、メンテナンスが容易になり、抽象化レイヤーが実現します。

質問:サブジェクトスキームを公開できますか?

回答:はい、@href属性を使用してsubjectdef要素のトピックが参照されている場合。デフォルトでは、subjectScheme要素の@processing-role属性は「resource-only」に設定され、@ toc属性は「no」に設定されていますが、これらの値を変更すると、マップ全体にカスケードされ、それが可能になります。出力を生成します。もちろん、これは単にDITA-OTを使用して現在実行できることです。カスタム処理の実装では、可能性は無限大です。

subjectSchemeマップと分類ドメインは、ファセットおよびフィルターされたブラウジング(出力用)やファセット検索(DITAソース用)など、多くのエキサイティングな可能性を提供すると思います。

subjectSchemeと分類を利用する実装を構築する人々が、ストーリーを共有したり、実装のデモを行ったりすることを願っています。そうすることで、DITAアーキテクチャのこの部分でできることがより明確になり、人々にとってよりアクセスしやすくなると思います。

于 2013-03-10T18:21:59.017 に答える
2

DITA-OTに関しては、DITAVALファイルを使用した要素の条件付き処理(フィルタリングとフラグ付け)にのみ使用できると思います。

サブジェクトスキームマップはこれよりはるかに大きな可能性を秘めていると思います。それらはファセットブラウジングに使用できるので、静的トピックマップを省くことができます。静的コンテンツは、Web以前の時代に属しているようです。DITAのやや落ち着いたオーラはこれで解決できます。

とにかく、これがあなた現在できることです:

サブジェクトスキームマップ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE subjectScheme PUBLIC "-//OASIS//DTD DITA Subject Scheme Map//EN" "map.dtd"> 
<subjectScheme>
    <hasInstance>
        <subjectdef keys="all_routes">
            <subjectdef keys="every_route">
                <subjectdef keys="anglia"/>
                <subjectdef keys="east_midlands"/>
                <subjectdef keys="kent"/>
                <subjectdef keys="lne_london_north_eastern"/>
                <subjectdef keys="lnw_london_north_western"/>
                <subjectdef keys="scotland"/>
                <subjectdef keys="wales"/>
                <subjectdef keys="sussex"/>
                <subjectdef keys="wessex"/>
               <subjectdef keys="western"/>
            </subjectdef>
        </subjectdef>
    </hasInstance>

    <enumerationdef>
        <attributedef name="route"/>
        <!-- Above is my new specialized attribute "routes"! -->
     <subjectdef keyref="all_routes"/>
    </enumerationdef>

メタデータを含むトピックテキストは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA General Task//EN" "task.dtd">
<task id="task_ozd_ckn_qh">
  <title>Route specialization test</title>
  <shortdesc route="">This tests the new route attribute!</shortdesc>
  <taskbody>
     <section>
         <title>Lines of text</title>
         <p route="anglia">Anglia text text text text text text.</p>
         <p route="sussex">Sussex text text text text text text.</p>
         <p route="east_midlands">East Midlands text text text text text.</p>
         <p route="kent">Kent text text text text text text.</p>
         <p route="lne_london_north_eastern"NE text text text text text text.</p>
         <p route="lnw_london_north_western">LNW text text text text text text.</p>
         <p route="scotland">Scotland text text text text text text.</p>
         <p route="sussex"Sussex text text text text text text.</p>
         <p route="wales">Wales text text text text text text.</p>
         <p route="western">Western text text text text text text.</p>
         <p route="wessex">Wessex text text text text text text.</p>
         <p route="every_route">Text.</p>
         <p>Not profiled.</p>
     </section>
  </taskbody>

DITAVALフィルターは次のとおりです。

  <prop action="exclude" att="route"/>
  <prop action="include" att="route" val="scotland"/>

これにより、「スコットランド」とマークされたルートを除く他のすべてのルートがノックアウトされます。

基本的にはそれだけです。

次のように、メタデータをサブジェクトスキームマップに追加できます。

   <subjectdef keys="story_attributedef">

       <subjectdef keys="monster">
           <hasKind>
               <subjectdef keys="zarbi" href="glossary/contemporary.dita">
                   <topicmeta>
                       <navtitle>The Zarbi</navtitle>
                       <shortdesc>Ant-like creature</shortdesc>
                   </topicmeta>
               </subjectdef>

サブジェクトスキームマップは「リソースのみ」としてレンダリングされるため(その値があるかどうかに関係なく)、レンダリングには適していません。

于 2013-02-28T13:41:18.340 に答える