DTD(文檔類型定義)可以定義合法的XML文檔結構,它使用一系列合法元素來定義文檔的結構。DTD分為內部DTD和外部DTD,所謂內部DTD是指該DTD在某個文檔的內部,只被該文檔使用。外部DTD是指該DTD不在文檔內部,可以被其他所有的文檔來共享。DTD文檔與XML文檔實例的關系可以看成是類和對象的關系。
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網(wǎng)站、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的阿勒泰網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!(1)外部DTD文件的編寫及引用
新建一個外部family.dtd文件
<!ELEMENT family (father,mother,son+)> <!ELEMENT father (name,age)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT mother (name,age)> <!ELEMENT son (name|wife|grandson)*> <!ELEMENT wife (#PCDATA|name)*> <!ELEMENT grandson (name)> <!ATTLIST son status CDATA #REQUIRED>
編寫XML文件引用DTD文件family.dtd
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE family SYSTEM "file:///E:/Users/小愛愛/Desktop/family.dtd"> <family> <father> <name>張三</name> <age>40</age> </father> <mother> <name>劉麗</name> <age>36</age> </mother> <son status="bigson"> <name>張?zhí)?lt;/name> <wife> <name>王華</name> </wife> <grandson> <name>張曉華</name> </grandson> </son> <son status="smallson"> <name>張帥</name> </son> </family>
(2)內部DTD文件
新建一個內部有DTD文件的XML文件class.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE class[ <!ELEMENT class (student*)> <!ELEMENT student (name,age,sex)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST class classId ID #REQUIRED> <!ATTLIST student stuId IDREF #IMPLIED> ]> <class classId="a01"> <student stuId="a01"> <name>張三</name> <age>18</age> <sex>男</sex> </student> <student stuId="a01"> <name>李四</name> <age>18</age> <sex>女</sex> </student> <student> <name>王五</name> <age>17</age> <sex>女</sex> </student> </class>
由以上的XML文件可以看出
#IMPLIED:表示該屬性可以有也可以沒有。
#REQUIRED:表示該屬性必須有。
還有一種屬性的特征
#FIXED:表示該屬性的屬性值固定。
被聲明為IDREF屬性類型的屬性值必須引用ID屬性類型的屬性值。
(3)ANY的用法規(guī)則
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE company[ <!ELEMENT company ANY> <!ELEMENT worker (name,sex,age)> <!ELEMENT name (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ATTLIST worker workId ID #REQUIRED> ]> <company> <worker workId="a10"> <name>zhangsan</name> <sex>nv</sex> <age>28</age> </worker> <company></company> <name>lisi</name> <age>30</age> <name>wangwu</name> <sex>nan</sex> </company>
ANY類型表示可以包含多個子元素且不受限制,也可包含字符串數(shù)據(jù)。但ANY一般用在對根元素的聲明中。
(4)NMTOKEN和NMTOKENS
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE student[ <!ELEMENT student (#PCDATA)> <!ATTLIST student stuId NMTOKEN #REQUIRED> <!ATTLIST student classId NMTOKENS #REQUIRED> ]> <student stuId="a10" classId=" a10"></student>
以上代碼可以通過編譯,當XML為以下代碼時會出現(xiàn)下圖的錯誤信息
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE student[ <!ELEMENT student (#PCDATA)> <!ATTLIST student stuId NMTOKEN #REQUIRED> <!ATTLIST student classId NMTOKENS #REQUIRED> ]> <student stuId="a 10" classId=" a10"></student>
NMTOKEN類型要求屬性值中不能包含空格且必須以下劃線、數(shù)字或字母開頭。
NMTOKENS類型與NMTOKEN類型類似,NMTOKENS類型要求屬性值必須以下劃線、數(shù)字或字母開頭。但可以包含空格。
(5)枚舉類型
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE people[ <!ELEMENT people (person+)> <!ELEMENT person (#PCDATA)> <!ATTLIST person 性別 (男|女) #IMPLIED> <!ATTLIST person 學歷 (高中|大學|研究生|博士) #IMPLIED> ]> <people> <person 性別="女" 學歷="大學">lily</person> <person ></person> </people>
列舉出要選的項,與下拉列表類似。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章題目:DTD與XML基本語法規(guī)則-創(chuàng)新互聯(lián)
轉載源于:http://jinyejixie.com/article34/cshese.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站策劃、ChatGPT、網(wǎng)頁設計公司、定制網(wǎng)站、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容