XML入門教程:文檔類型聲明-XML/XSLT
2024-09-05 20:56:06
供稿:網(wǎng)友
要使用DTD進(jìn)行有效性檢驗(yàn),就要使用文檔類型定義聲明指定DTD。文檔類型聲明位于XML聲明之后,根元素之前。如果dtd文檔位于本機(jī),可用路徑名直接指出dtd文檔的位置。
由于XML可自定義標(biāo)簽,所以每個(gè)人定義的標(biāo)簽集都會(huì)不同,如果沒有一套標(biāo)準(zhǔn)來規(guī)定標(biāo)簽的定義原則,則應(yīng)用程序就不能對(duì)XML文檔進(jìn)行處理。解決該問題的方案采用DTD,DTD(Document Type Definition,文檔類型定義),用于定義XML文檔的編寫規(guī)則。如哪些元素可出現(xiàn)在文檔中,及元素的內(nèi)容和屬性的要求等。應(yīng)用程序會(huì)利用這個(gè)DTD對(duì)文檔進(jìn)行檢驗(yàn),符合DTD約束規(guī)則的XML文檔稱之為有效文檔,可以進(jìn)行下一步處理,否則會(huì)報(bào)錯(cuò),應(yīng)用程序可捕獲該錯(cuò)誤進(jìn)行相應(yīng)的異常處理。檢驗(yàn)過程是可選,這要視具體應(yīng)用而定。
本文由錯(cuò)新站長(zhǎng)站(https://www.jb51.net)整理發(fā)布!轉(zhuǎn)載請(qǐng)注明出處,謝謝!文檔類型聲明
要使用DTD進(jìn)行有效性檢驗(yàn),就要使用文檔類型定義聲明指定DTD。如:
<?xml version="1.0" standalone="no"?><!DOCTYPE portal SYSTEM "http://www.w3c.com/dtd/portal.dtd"><portal> <name>Jims</name> <email>Jims@163.com</email> <email>Jims@21cn.com</email></portal>
文檔類型聲明位于XML聲明之后,根元素之前。如果dtd文檔位于本機(jī),可用路徑名直接指出dtd文檔的位置。portal.dtd的內(nèi)容如下:
<!ELEMENT portal (name,email*)><!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)>
上面的內(nèi)容也可直接寫到XML文檔內(nèi),這種dtd聲明方式叫內(nèi)部dtd子集,如:
<?xml version="1.0" standalone="no"?><!DOCTYPE portal [<!ELEMENT portal (name,email*)><!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)>]><portal> <name>Jims</name> <email>Jims@163.com</email> <email>Jims@21cn.com</email></portal>
如果dtd位于XML文檔外,則叫外部dtd子集。我們可以結(jié)合內(nèi)外dtd,共同組成一個(gè)dtd來為XML文檔作驗(yàn)證。如:
<!DOCTYPE portal SYSTEM "external.dtd" [<!ELEMENT portal (name,email*)><!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)>]>
注意,使用內(nèi)外dtd時(shí),這兩個(gè)dtd要互相兼容,不能有沖突。