xml DTD學習總結
阿新 • • 發佈:2019-01-25
XML 被設計為傳輸和儲存資料,其焦點是資料的內容。
L 被設計用來顯示資料,其焦點是資料的外觀。
X2ML 是獨立於軟體和硬體的資訊傳輸工具。
在 XML 中,一些字元擁有特殊的意義。為了避免這個錯誤,請用實體引用來代替特殊字元
註釋:在 XML 中,只有字元 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。
在 XML 中編寫註釋的語法與 HTML 的語法很相似:
<!-- This is a comment -->
在 XML 中,空格會被保留
XML注意事項:XML 文件必須有根元素
在這些文字中的標籤不會被當作標記來對待,其中的實體也不會被展開。
DTD元素
DTD - 屬性
屬性宣告使用下列語法:
<!ATTLIST 元素名稱 屬性名稱 屬性型別 預設值>
DTD 例項:
<!ATTLIST payment type CDATA "check">
XML 例項:
<payment type="check" />
DTD - 實體
實體是用於定義引用普通文字或特殊字元的快捷方式的變數。
實體引用是對實體的引用。
實體可在內部或外部進行宣告。
< | < | 小於 |
> | > | 大於 |
& | & | 和號 |
' | ' | 單引號 |
" | " | 引號 |
- XML 文件必須有關閉標籤
- XML 標籤對大小寫敏感
- XML 元素必須被正確的巢狀
- XML 屬性必須加引號
宣告一個元素 | <!ELEMENT 元素名稱 類別> | 或者 <!ELEMENT 元素名稱 (元素內容)> |
|
空元素 | <!ELEMENT 元素名稱 EMPTY> | 例子: <!ELEMENT br EMPTY> |
XML例子: <br /> |
只有 PCDATA 的元素 | <!ELEMENT 元素名稱 (#PCDATA)> | 例子: <!ELEMENT from (#PCDATA)> |
|
帶有任何內容的元素 | <!ELEMENT 元素名稱 ANY> | 例子: <!ELEMENT note ANY> |
|
帶有子元素(序列)的元素 | <!ELEMENT 元素名稱 (子元素名稱 1,子元素名稱 2,.....)> | 例子: <!ELEMENT note (to,from,heading,body)> |
當子元素按照由逗號分隔開的序列進行宣告時,這些子元素必須按照相同的順序出現在文件中。在一個完整的宣告中,子元素也必須被宣告,同時子元素也可擁有子元素 |
宣告只出現一次的元素 | <!ELEMENT 元素名稱 (子元素名稱)> | <!ELEMENT note (message)> | 上面的例子聲明瞭:message 子元素必須出現一次,並且必須只在 "note" 元素中出現一次。 |
宣告最少出現一次的元素 | <!ELEMENT 元素名稱 (子元素名稱+)> | 例子: <!ELEMENT note (message+)> |
上面的例子中的加號聲明瞭:message 子元素必須在 "note" 元素內出現至少一次 |
宣告出現零次或多次的元素 | <!ELEMENT 元素名稱 (子元素名稱*)> | 例子: <!ELEMENT note (message*)> |
上面的例子中的星號聲明瞭:子元素 message 可在 "note" 元素內出現零次或多次。 |
宣告出現零次或一次的元素 | <!ELEMENT 元素名稱 (子元素名稱?)> | 例子: <!ELEMENT note (message?)> |
上面的例子中的問號聲明瞭:子元素 message 可在 "note" 元素內出現零次或一次。 |
宣告“非.../既...”型別的內容 | <!ELEMENT note (to,from,header,(message|body))> | 例子: <!ELEMENT note (to,from,header,(message|body))> |
上面的例子聲明瞭:"note" 元素必須包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。 |
宣告混合型的內容 | <!ELEMENT note (#PCDATA|to|from|header|message)*> | 例子: <!ELEMENT note (#PCDATA|to|from|header|message)*> |
上面的例子聲明瞭:"note" 元素可包含出現零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。 |
一個內部實體宣告 | 語法: <!ENTITY 實體名稱 "實體的值"> |
DTD 例子: <!ENTITY writer "Bill Gates"> <!ENTITY copyright "Copyright W3School.com.cn"> |
XML 例子: <author>&writer;©right;</author> |
註釋: 一個實體由三部分構成: 一個和號 (&), 一個實體名稱, 以及一個分號 (;)。 |
一個外部實體宣告 | 語法: <!ENTITY 實體名稱 SYSTEM "URI/URL"> |
DTD 例子: <!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> <!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> |
XML 例子: <author>&writer;©right;</author> |