共通デスクトップ環境 プログラマーズ・ガイド (ヘルプ・システム編)

DTD コンポーネント

DTD は、これまでの章で説明したヘルプタグの各要素を定義します。この節では、いくつかの重要な用語を紹介し、要素記述の構文の読み方を説明します。DTD の各セクションを完全に説明するものではありません。

要素宣言

DTD は各要素を要素宣言で定義します。宣言には、要素を説明する詳細な記述、それに必要なコンポーネント、指定できる要素またはできない要素を使用します。要素には属性宣言で定義された特性もあります。特性の詳細は、「属性リスト宣言」のセクションで説明します。

要素宣言の形式は次のとおりです。

<ELEMENT element_type minimization (content model) >
element_type

要素名を指定します。これはタグ名としても使用されます。たとえば、要素型 head のタグは <head> です。

minimization

開始タグまたは終了タグが必要かどうかを示す 2 文字のエントリです。1 番目の文字は開始タグを表します。2 番目の文字は終了タグを表します。その 2 文字の間に 1 つ空白が入ります。文字 o はそのタグがオプションであることを意味します。- (マイナス記号) はタグが必要であることを意味します。たとえば、- - というエントリは、その要素には開始タグと終了タグの両方が必要であるという意味です。ヘルプタグ 1.3 用 DTD ではすべての要素に開始タグと終了タグが必要です。

content model

要素型に含められる必要な要素およびオプションの要素のリストを指定します。要素のシーケンスと、適用可能であれば、要素を指定できる回数を定義します。

コンテント・モデルは次の記述を使用します。

|

「or」という意味です。

+

要素を最低 1 回は指定しなければなりません。繰り返し可能です。

*

要素を 0 回以上指定しなければなりません。

?

要素を 0 回または 1 回指定しなければなりません。

,

カンマはシーケンスを説明します。つまり、要素型の後には、カンマの後に指定された要素が続かなければなりません。

+ (element_ type(s))

+ (プラス記号) は、リストされた 1 つまたは複数の要素が、この要素内か、それを含む要素どの中でも使用できることを示します。これを取り込みと呼びます。 1 つ以上の要素を囲むのに括弧を使用します。

- (element_ type(s))

- (マイナス記号) は、リストされた 1 つまたは複数の要素が、この要素内か、それを含む要素のいずれかの中では使用できないことを示します。これを排他と呼びます。 1 つ以上の要素を囲むには括弧を使用します。

各例には、提供されている要素宣言に対する語の説明があります。必要な開始タグと終了タグが使用されます。

要素宣言のキーワード

要素の中には、要素宣言の中に、要素のデータ内容を説明するキーワードを含むものがあります。DTD には、EMPTYCDATA#PCDATA の 3 つのキーワードがあります。

EMPTY

要素が、オンライン情報で表示されるデータ内容を持たないことを指定します。newline 要素と xref 要素がこの例です。

CDATA

「文字データ」を表します。つまり、その要素のデータ内容はマークアップとして認識されません。

#PCDATA

「構文解析された文字データ」を表します。つまり、そのデータ内容にはヘルプ・システムのパーサが解釈するテキストとマークアップ文字の両方が含まれます。

属性リスト宣言

属性リストは、要素をより詳しく説明する追加の属性を宣言します。属性リスト宣言の形式は次のとおりです。

<!ATTLIST element_type attribute_values default_value> 

たとえば list 要素には、typeordertypespacingcontinue の 4 つの属性があります。それぞれの型の値が宣言されます。最後のカラムはデフォルト値を示しています。continue 属性には値が 1 つしか存在しないので、デフォルト値は省きます。

<!ATTLIST list type      ( order 
                           bullet
                            plain
                            check )       bullet
               ordertype ( ualpha
                            lalpha
                            arabic
                            uroman
                            lroman )      arabic
                spacing   ( tight
                             loose )      tight
                continue  (continue)    #IMPLIED >

上記のマークアップは、リスト項目の間に空白行が入り、番号 (大文字のアルファベット) の付いたリストを作成します。

<list order ualpha loose>
   <item>
      <text>
        <p>
          <partext>Introducing the Front Panel></partext>
        </p>
      </text>
     </item>