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*) >