首頁 >後端開發 >XML/RSS教程 >XML文檔類型聲明

XML文檔類型聲明

PHPz
PHPz原創
2017-04-02 11:52:092281瀏覽

由於XML可自訂標籤,所以每個人定義的標籤集都會不同,如果沒有一套標準來規定標籤的定義原則,則應用程式就不能對XML文件進行處理。解決此問題的方案採用DTD,DTD(Document Type Definition,文件類型定義),用於定義XML文件的編寫規則。如哪些元素可出現在文件中,及元素的內容和屬性的要求等。應用程式會利用這個DTD對文檔進行檢驗,符合DTD約束規則的XML文檔稱之為有效文檔,可以進行下一步處理,否則會報錯,應用程式可捕獲該錯誤進行相應的異常處理。檢驗過程是可選,這要視具體應用而定。

文件類型宣告
要使用DTD進行有效性檢驗,就要使用文件類型定義宣告指定DTD。如:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE portal SYSTEM >
<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要互相相容,不能有衝突。

#

以上是XML文檔類型聲明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn