要使用DTD進行有效性檢驗,就要使用文檔類型定義聲明指定DTD。文檔類型聲明位於XML聲明之後,根元素之前。如果dtd文檔位於本機,可用路徑名直接指出dtd文檔的位置。
由於XML可自定義標簽,所以每個人定義的標簽集都會不同,如果沒有一套標准來規定標簽的定義原則,則應用程序就不能對XML文檔進行處理。解決該問題的方案采用DTD,DTD(Document Type Definition,文檔類型定義),用於定義XML文檔的編寫規則。如哪些元素可出現在文檔中,及元素的內容和屬性的要求等。應用程序會利用這個DTD對文檔進行檢驗,符合DTD約束規則的XML文檔稱之為有效文檔,可以進行下一步處理,否則會報錯,應用程序可捕獲該錯誤進行相應的異常處理。檢驗過程是可選,這要視具體應用而定。
本文由(http://www.jb51.net)整理發布!轉載請注明出處,謝謝!
文檔類型聲明
要使用DTD進行有效性檢驗,就要使用文檔類型定義聲明指定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文檔位於本機,可用路徑名直接指出dtd文檔的位置。portal.dtd的內容如下:
<!ELEMENT portal (name,email*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
上面的內容也可直接寫到XML文檔內,這種dtd聲明方式叫內部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子集。我們可以結合內外dtd,共同組成一個dtd來為XML文檔作驗證。如:
<!DOCTYPE portal SYSTEM "external.dtd" [
<!ELEMENT portal (name,email*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
注意,使用內外dtd時,這兩個dtd要互相兼容,不能有沖突。