DTD – 元素概述

大雄45 發表於 2022-01-28
導讀 DTD(文件型別定義)的作用是定義 XML 文件的合法構建模組。在一個 DTD 中,元素通過元素宣告來進行宣告。

DTD – 元素概述DTD – 元素概述

宣告一個元素

在 DTD 中,XML 元素通過元素宣告來進行宣告。元素宣告使用下面的語法:

<!ELEMENT element-name category>
或
<!ELEMENT element-name (element-content)>
空元素

空元素通過類別關鍵詞EMPTY進行宣告:

<!ELEMENT element-name category>
或
<!ELEMENT element-name (element-content)>
只有 PCDATA 的元素

只有 PCDATA 的元素通過圓括號中的 #PCDATA 進行宣告:

<!ELEMENT element-name (#PCDATA)>
例項:
<!ELEMENT from (#PCDATA)>
帶有任何內容的元素

通過類別關鍵詞 ANY 宣告的元素,可包含任何可解析資料的組合:

<!ELEMENT element-name ANY>
例項:
<!ELEMENT note ANY>
帶有子元素(序列)的元素

帶有一個或多個子元素的元素通過圓括號中的子元素名進行宣告:

<!ELEMENT element-name (child1)>
或
<!ELEMENT element-name (child1,child2,...)>
例項:
<!ELEMENT note (to,from,heading,body)>

當子元素按照由逗號分隔開的序列進行宣告時,這些子元素必須按照相同的順序出現在文件中。在一個完整的宣告中,子元素也必須被宣告,同時子元素也可擁有子元素。"note" 元素的完整宣告是:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>
宣告只出現一次的元素
<!ELEMENT element-name (child-name)>
例項:
<!ELEMENT note (message)>
宣告最少出現一次的元素
<!ELEMENT element-name (child-name+)>
例項:
<!ELEMENT note (message+)>

上面的例子中的加號(+)宣告瞭:message 子元素必須在 "note" 元素內出現至少一次。

宣告出現零次或多次的元素
<!ELEMENT element-name (child-name*)>
例項:
<!ELEMENT note (message*)>

上面的例子中的星號(*)宣告瞭:子元素 message 可在 "note" 元素內出現零次或多次。

宣告出現零次或一次的元素
<!ELEMENT element-name (child-name?)>
例項:
<!ELEMENT note (message?)>

上面的例子中的問號(?)宣告瞭:子元素 message 可在 "note" 元素內出現零次或一次。

宣告"非.../即..."型別的內容
例項:
<!ELEMENT note (to,from,header,(message|body))>

上面的例子宣告瞭:"note" 元素必須包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素即 "body" 元素。

宣告混合型的內容
例項:
<!ELEMENT note (#PCDATA|to|from|header|message)*>

上面的例子宣告瞭:"note" 元素可包含出現零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2854360/,如需轉載,請註明出處,否則將追究法律責任。

相關文章