共用方式為


ELEMENT

ELEMENT 陳述式可用來宣告每個在 DTD 所定義之文件型別內使用的項目。 它首先會依名稱宣告項目,然後再指定該項目所允許的內容。

語法

<!ELEMENT  name  content >

參數

  • name
    項目的名稱。 必須區分大小寫。

  • 內容
    項目所允許的內容模型,必須屬於下列其中一項:

    • ANY - 項目中允許任何內容。 使用在項目宣告時,這個關鍵字可允許項目及其任何子節點中公開而未限制的內容模型。

    • EMPTY - 項目中不允許有內容,必須保留為空白。

    • Declared content rule – 對於此選項,您必須撰寫內容規則,並以一組括號將它括住。

      下列表格所列的保留關鍵字或標點符號,可與 DTD 中已宣告之其他項目的名稱搭配使用,以建構項目內容規則。

      符號

      描述

      #PCDATA

      允許剖析的字元資料做為項目內容的一部分。

      name

      項目的名稱。 這可能是要定義的項目,或其他由 DTD 中的名稱所定義的項目 (使用其他 ELEMENT 宣告)。

      若內容規則中沒有其他標點標記或符號,則只允許產生一次具名項目;事實上,也只需要一次。

      ()

      雖然每當宣告項目的內容模型時都必須使用至少一組括號,但您也可以巢狀化其他括號組。 這項技術可用來為項目定義更複雜的內容模型。

      |

      垂直線可用來分隔兩個具名的項目。 使用時,代表兩種元素 (亦即 垂直線前後的元素) 都有可能顯示為子元素。

      ,

      逗號可用來分隔兩個具名的項目或巢狀規則。 使用逗號時,表示項目或規則必須以指定的順序顯示。

      ?

      問號可當作後置字元或運算元使用。 當使用問號時,表示在問號之前的項目或規則是選擇性項目,但在使用時,只能針對此目的在 XML 文件結構中出現一次。

      +

      加號可當作後置字元或運算元使用。 當使用加號時,表示在加號之前的項目或規則是必要項目;加號可針對此目的在 XML 文件結構中出現多次。

      *

      星號可當作後置字元或運算元使用。 當使用星號時,表示在星號之前的項目或規則是選擇性項目;星號可針對此目的在 XML 文件結構中出現多次。

範例

  • 宣告一個可以含有任何內容的 <test> 項目:

    <!ELEMENT  test  ANY  >
    
  • 宣告一個必須為空的 <Image> 元素 (亦即 不能包含任何內容):

    <!ELEMENT  Image  EMPTY  >
    
  • 宣告一個只能含有字元資料的 <title> 項目 (不含其他標記):

    <!ELEMENT  title  (#PCDATA)  >
    
  • 宣告一個 <fruit> 項目,它可以含有一個 <apple> 項目或一個 <orange> 項目:

    <!ELEMENT  fruit  (apple|orange)  >
    
  • 宣告一個 <book> 項目,它必須含有一個 <author> 項目,後面接著一個 <title> 項目:

    <!ELEMENT  book  (author,title)  >
    
  • 宣告一個 <memo> 項目,它必須含有一個 <body> 項目,而後面可以視情況接著一個 <postscript> 項目:

    <!ELEMENT  memo  (body,postscript?)  >
    
  • 宣告一個 <catalog> 項目,它必須含有一個以上的 <book> 項目:

    <!ELEMENT  catalog  (book+)  >
    
  • 宣告一個 <table> 項目,可以是空的,也可以含有 <rowset> 項目:

    <!ELEMENT  table  (rowset*)  >
    

請參閱

概念

ATTLIST (屬性清單)

ENTITY (XML)

NOTATION