ELEMENT

ELEMENT ステートメントは、DTD によって定義されるドキュメント型で使用される要素を宣言するために使用されます。 名前で要素を宣言した後、その要素で許可されるコンテンツを指定します。

構文

<!ELEMENT  name  content >

パラメーター

  • name
    要素の名前。 大文字と小文字を厳密に区別する必要があります。
  • content
    要素で許可されるコンテンツ モデル。次のいずれかを指定する必要があります。

    • ANY - すべてのコンテンツが要素内で許可されます。 要素宣言内でこのキーワードを使用すると、要素および要素のすべての子ノードで、無制限のオープンなコンテンツ モデルが許可されます。

    • EMPTY - 要素はコンテンツを持つことができません。要素を空にしておく必要があります。

    • 宣言済みのコンテンツ規則 - このオプションを使用する場合、コンテンツ規則を作成し、それを一対のかっこで囲む必要があります。

      要素コンテンツ規則を作成するときに DTD 内で宣言される他の要素の名前と共に使用できる予約済みキーワードまたは句読記号を次の表に示します。

      シンボル 説明

      #PCDATA

      解析された文字データが要素のコンテンツの一部として許可されます。

      name

      要素の名前。 現在定義中の要素、または追加の ELEMENT 宣言を使って DTD 内で名前で定義される他の要素を指定できます。

      コンテンツ規則内に他の句読記号またはシンボルがない場合は、名前付き要素の出現が 1 回だけ許可され、必要とされます。

      ()

      要素のコンテンツ モデルを宣言するときは、必ず少なくとも一対のかっこを使用する必要がありますが、他のかっこの対を入れ子にすることもできます。 この手法は、要素に対して複雑なコンテンツ モデルを定義するときに利用できます。

      |

      縦棒を使って 2 つの名前付き要素を区切ることができます。 いずれの要素 (縦棒の前にある要素または後にある要素) も 子要素として出現できることを示します。

      ,

      コンマを使って、2 つの名前付き要素または入れ子になった規則を区切ることができます。 コンマは、要素または規則が指定された順序で出現する必要があることを示します。

      ?

      疑問符は、サフィックスまたはオペランドとして使用できます。 疑問符は、疑問符の前の要素または規則が省略可能であり、XML ドキュメント構造内のその位置に 1 回しか出現できないことを示します。

      +

      プラス記号は、サフィックスまたはオペランドとして使用できます。 プラス記号は、プラス記号の前の要素または規則が必須条件であり、XML ドキュメント構造内のその位置に複数回出現できることを示します。

      *

      アスタリスクは、サフィックスまたはオペランドとして使用できます。 アスタリスクは、アスタリスクの前の要素または規則が省略可能であり、XML ドキュメント構造内のその位置に複数回出現できることを示します。

  • 任意のコンテンツを含めることができる <test> 要素を宣言します。

    <!ELEMENT  test  ANY  >
    
  • 空にする必要がある (コンテンツを持つことができない) <Image> 要素を宣言します。

    <!ELEMENT  Image  EMPTY  >
    
  • 文字データしか含めることができない (他のマークアップは含めることができない) <title> 要素を宣言します。

    <!ELEMENT  title  (#PCDATA)  >
    
  • <apple> 要素または <orange> 要素のいずれかが含まれる <fruit> 要素を宣言します。

    <!ELEMENT  fruit  (apple|orange)  >
    
  • <author> 要素に続けて <title> 要素を含める必要がある <book> 要素を宣言します。

    <!ELEMENT  book  (author,title)  >
    
  • <body> 要素を含める必要があり、それに続けて <postscript> 要素を含めてもよい <memo> 要素を宣言します。

    <!ELEMENT  memo  (body,postscript?)  >
    
  • 1 つ以上の <book> 要素を含める必要がある <catalog> 要素を宣言します。

    <!ELEMENT  catalog  (book+)  >
    
  • 空にすることも、<rowset> 要素を含めることもできる <table> 要素を宣言します。

    <!ELEMENT  table  (rowset*)  >
    

参照

概念

ATTLIST (属性リスト)
ENTITY
NOTATION