DTD 元素

2018-09-18 16:23 更新

DTD - 元素

在 DTD 中,元素(ELEMENT)的作用是約束標(biāo)記,用元素聲明來定義一個(gè)標(biāo)記,元素聲明以 “<!ELEMENT” 開始,以 “>” 結(jié)束,具體的使用方法請參考本節(jié)的內(nèi)容!

在一個(gè) DTD 中,元素通過元素聲明來進(jìn)行聲明。


聲明一個(gè)元素

在 DTD 中,XML 元素通過元素聲明來進(jìn)行聲明。元素聲明使用下面的語法:

<!ELEMENT element-name category><!ELEMENT element-name (element-content)>

空元素

空元素通過類別關(guān)鍵詞EMPTY進(jìn)行聲明:

<!ELEMENT element-name EMPTY>

實(shí)例:

<!ELEMENT br EMPTY>

XML example:

<br />

只有 PCDATA 的元素

只有 PCDATA 的元素通過圓括號(hào)中的 #PCDATA 進(jìn)行聲明:

<!ELEMENT element-name (#PCDATA)>

實(shí)例:

<!ELEMENT from (#PCDATA)>

帶有任何內(nèi)容的元素

通過類別關(guān)鍵詞 ANY 聲明的元素,可包含任何可解析數(shù)據(jù)的組合:

<!ELEMENT element-name ANY>

實(shí)例:

<!ELEMENT note ANY>

帶有子元素(序列)的元素

帶有一個(gè)或多個(gè)子元素的元素通過圓括號(hào)中的子元素名進(jìn)行聲明:

<!ELEMENT element-name (child1)>
或
<!ELEMENT element-name (child1,child2,...)>

實(shí)例:

<!ELEMENT note (to,from,heading,body)>

當(dāng)子元素按照由逗號(hào)分隔開的序列進(jìn)行聲明時(shí),這些子元素必須按照相同的順序出現(xiàn)在文檔中。在一個(gè)完整的聲明中,子元素也必須被聲明,同時(shí)子元素也可擁有子元素。"note" 元素的完整聲明是:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

聲明只出現(xiàn)一次的元素

<!ELEMENT element-name (child-name)>

實(shí)例:

<!ELEMENT note (message)>

上面的例子聲明了:message 子元素必須出現(xiàn)一次,并且必須只在 "note" 元素中出現(xiàn)一次。


聲明最少出現(xiàn)一次的元素

<!ELEMENT element-name (child-name+)>

實(shí)例:

<!ELEMENT note (message+)>

上面的例子中的加號(hào)(+)聲明了:message 子元素必須在 "note" 元素內(nèi)出現(xiàn)至少一次。


聲明出現(xiàn)零次或多次的元素

<!ELEMENT element-name (child-name*)>

實(shí)例:

<!ELEMENT note (message*)>

上面的例子中的星號(hào)(*)聲明了:子元素 message 可在 "note" 元素內(nèi)出現(xiàn)零次或多次。


聲明出現(xiàn)零次或一次的元素

<!ELEMENT element-name (child-name?)>

實(shí)例:

<!ELEMENT note (message?)>

上面的例子中的問號(hào)(?)聲明了:子元素 message 可在 "note" 元素內(nèi)出現(xiàn)零次或一次。


聲明"非.../即..."類型的內(nèi)容

實(shí)例:

<!ELEMENT note (to,from,header,(message|body))>

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


聲明混合型的內(nèi)容

實(shí)例:

<!ELEMENT note (#PCDATA|to|from|header|message)*>

上面的例子聲明了:"note" 元素可包含出現(xiàn)零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

提示:以上幾種類型都允許在元素的起始標(biāo)記中使用屬性。
注意:在DTD中有一個(gè)原則,沒有明確聲明就是禁止,并且同名的元素只能聲明一次。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)