1. 程式人生 > >xml DTD學習總結

xml DTD學習總結

XML 被設計為傳輸和儲存資料,其焦點是資料的內容。 L 被設計用來顯示資料,其焦點是資料的外觀。 X2ML 是獨立於軟體和硬體的資訊傳輸工具。 在 XML 中,一些字元擁有特殊的意義。為了避免這個錯誤,請用實體引用來代替特殊字元
&lt; < 小於
&gt; > 大於
&amp; & 和號
&apos; ' 單引號
&quot; " 引號
註釋:在 XML 中,只有字元 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。 在 XML 中編寫註釋的語法與 HTML 的語法很相似: <!-- This is a comment --> 在 XML 中,空格會被保留 XML注意事項:XML 文件必須有根元素
  • XML 文件必須有關閉標籤
  • XML 標籤對大小寫敏感
  • XML 元素必須被正確的巢狀
  • XML 屬性必須加引號
合法的 XML 文件是“形式良好”的 XML 文件,同樣遵守文件型別定義 (DTD) 的語法規則: DTD介紹 文件型別定義(DTD)可定義合法的XML文件構建模組。它使用一系列合法的元素來定義文件的結構。 DTD 可被成行地聲明於 XML 文件中,也可作為一個外部引用。 PCDATA 的意思是被解析的字元資料(parsed character data)。 文字中的標籤會被當作標記來處理,而實體會被展開。 不過,被解析的字元資料不應當包含任何 &、< 或者 > 字元;需要使用 &amp;、&lt; 以及 &gt; 實體來分別替換它們。 CDATA 的意思是字元資料(character data)。 CDATA 是不會被解析器解析的文字。
在這些文字中的標籤不會被當作標記來對待,其中的實體也不會被展開。 DTD元素
宣告一個元素 <!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"。
DTD - 屬性 屬性宣告使用下列語法: <!ATTLIST 元素名稱 屬性名稱 屬性型別 預設值> DTD 例項: <!ATTLIST payment type CDATA "check"> XML 例項: <payment type="check" /> DTD - 實體 實體是用於定義引用普通文字或特殊字元的快捷方式的變數。 實體引用是對實體的引用。 實體可在內部或外部進行宣告。
一個內部實體宣告 語法:
<!ENTITY 實體名稱 "實體的值">
DTD 例子:
<!ENTITY writer "Bill Gates">
<!ENTITY copyright "Copyright W3School.com.cn">
XML 例子:
<author>&writer;&copyright;</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;&copyright;</author>