DTD – 元素概述
導讀 | DTD(文件型別定義)的作用是定義 XML 文件的合法構建模組。在一個 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上求助,有沒有大佬能講解一波redis 跳躍列表以及跳躍表的curd和元素排名
- HashSet 如何保證元素不重複——hash碼
- 🚀快速掌握vue3新語法(三) - setup中獲取元素引用(ref)
- 畫布就是一切(二) — 實現元素拖拉拽
- 『與善仁』Appium基礎 — 17、元素定位工具(一)
- 『與善仁』Appium基礎 — 18、元素定位工具(二)
- 『與善仁』Appium基礎 — 19、元素定位工具(三)
- 瞭解下RDF 主要元素
- 《手把手教你》系列技巧篇(四十七)-java+ selenium自動化測試-判斷元素是否顯示(詳解教程)
- 瞭解下RDF 容器元素
- 『與善仁』Appium基礎 — 20、Appium元素定位
- 34、在排序陣列中查詢元素的第一個和最後一個位置 | 演算法(leetode,附思維導圖 + 全部解法)300題
- 『與善仁』Appium基礎 — 21、元素的基本操作
- 『與善仁』Appium基礎 — 22、獲取元素資訊的操作(一)
- Cypress 基礎 - 元素的定位
- 使用GraphQL對資料模型和訊息格式實現類似XML的DTD驗證
- HTML行內級元素之間的空格問題
- 深入瞭解標準流以及脫標元素的特點
- Leetcode 演算法題解系列 - 二維陣列快速查詢元素(二叉搜尋樹)