<!DOCTYPE 根元素 [元素聲明]>
代碼示例:編碼
1 <!DOCTYPE note [ 2 <!ELEMENT note (to,from,heading,body)> 3 <!ELEMENT to (#PCDATA)> 4 <!ELEMENT from (#PCDATA)> 5 <!ELEMENT heading (#PCDATA)> 6 <!ELEMENT body (#PCDATA)> 7 ]>
代碼解釋:
2 此文檔是 note 類型的文檔
3 note 元素有四個元素:"to、from、heading,、body"
4 to 元素爲 "#PCDATA" 類型code
<!DOCTYPE 根元素 SYSTEM "文件名">xml
<!DOCTYPE note SYSTEM "note.dtd"> //note.dtd <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
構建模塊有以下幾種,全部的XML都是由其構成element
//聲明一個元素 //grammer <!ELEMENT 元素名稱 類別> <!ELEMENT 元素名稱 (元素內容)> //聲明一個空元素 //grammer <!ELEMENT 元素名稱 EMPTY> //eg: <!ELEMENT br EMPTY> //聲明只有 PCDATA 的元素 //grammer <!ELEMENT 元素名稱 (#PCDATA)> //eg: <!ELEMENT from (#PCDATA)> //聲明帶有任何內容元素 //grammer <!ELEMENT 元素名稱 ANY> //eg: <!ELEMENT note ANY> //帶有子元素(序列)的元素 //grammer <!ELEMENT 元素名稱 (子元素名稱 1)> <!ELEMENT 元素名稱 (子元素名稱 1,子元素名稱 2,.....)> //eg: <!ELEMENT note (to,from,heading,body)>//後續子元素出現順序同樣 //聲明只出現一次的元素 //grammer <!ELEMENT 元素名稱 (子元素名稱)> //eg: <!ELEMENT note (message)> //聲明最少出現一次的元素 //grammer <!ELEMENT 元素名稱 (子元素名稱+)> //eg: <!ELEMENT note (message+)> //聲明出現零次或屢次的元素 //grammer <!ELEMENT 元素名稱 (子元素名稱*)> //eg: <!ELEMENT note (message*)> //聲明出現零次或一次的元素 //grammer <!ELEMENT 元素名稱 (子元素名稱?)> //eg: <!ELEMENT note (message?)> //聲明「非.../既...」類型的內容 //eg: <!ELEMENT note (to,from,header,(message|body))> //聲明混合型的內容 //eg: <!ELEMENT note (#PCDATA|to|from|header|message)*>
<!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值>
屬性類型默認值請參考:http://www.w3school.com.cn/dtd/dtd_attributes.asp文檔
實體是用於定義引用普通文本或特殊字符的快捷方式的變量。
實體引用是對實體的引用。
實體可在內部或外部進行聲明。get
//grammer <!ENTITY 實體名稱 "實體的值"> //DTD <!ENTITY writer "Bill Gates"> <!ENTITY copyright "Copyright W3School.com.cn"> //XML <author>&writer;©right;</author>
//grammer <!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>
定義:是基於XML 的 DTD 替代者,描述 XML 文檔的結構。
代碼示例:string
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>