XML文檔類型聲明
XML文檔類型聲明,俗稱DTD,是一種方式來描述XML語言準確。檢查的DTD對詞彙的適當的XML語言的語法規則的XML文檔的結構和有效性.
一個XML的DTD既可以在文檔中指定的,或者它可以被保存在一個單獨的文件中,並且可以分彆連結.
語法
一個DTD的基本語法如下所示:
<!DOCTYPE element DTD identifier
[
declaration1
declaration2
........
]>
在上麵的句法
-
DTD開始<!DOCTYPE分隔符.
-
一個元素告訴解析器來解析從指定的根元素的文檔.
-
DTD標識符是用於文檔類型定義,它可以是路徑到互聯網上的文件係統或URL上的文件。如果DTD是指向外部路徑,它被稱為外部子集.
-
方括號[]括起來的實體聲明稱為內部子集的可選列表.
內部DTD
一個DTD被稱為內部DTD,如果元素的XML文件中聲明。以指它作為內部DTD,XML聲明中的獨立屬性必須設置為yes。這意味著,在聲明的工作獨立於外部源.
句法
內部DTD的句法如下所示:
<!DOCTYPE root-element [element-declarations]>
這是根元素聲明的名稱.
示例
以下是內部DTD的一個簡單例子:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>YiiBai</company> <phone>(011) 123-4567</phone> </address>
讓我們通過上麵的代碼:
開始聲明 - 開始XML聲明與下麵的語句
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
DTD - 緊接在 XML header 文檔類型 聲明如下, 通常被稱為在DOCTYPE:
<!DOCTYPE address [
TDOCTYPE聲明有一個感歎號(!)的元素名稱的開始。在DOCTYPE通知一個DTD與此XML文檔相關聯的解析器.
DTD的內容 - DOCTYPE聲明後麵是DTD的內容,聲明的元素,屬性,實體和符號:
<!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone_no (#PCDATA)>
許多元素都在這裡聲明補<名稱>文檔的詞彙。 <!元素名稱(#PCDATA)>定義的元素名稱是鍵入“#PCDATA”的。這裡#PCDATA是語法分析的文本數據.
結束聲明 - 最後,DTD中的聲明部分使用的是右括號和右尖括號被關閉(]>)。這有效地結束的定義,然後,在XML文檔緊跟.
規則
-
文檔類型聲明必須出現在文件(僅由XML頭之前)的開始 - 它不是在文檔中允許的其他地方。
-
類似的DOCTYPE聲明,該聲明的元素必須以感歎號.
-
在文檔類型聲明的名稱必須與根元素的元素類型相匹配.
外部DTD
在外部DTD元素的XML文件外聲明。它們是通過指定其可以是法律.dtd文件或一個有效的URL,係統的屬性進行訪問。是指它作為外部DTD,XML聲明standalone屬性必須設置為no。這意味著,聲明中包含從外部源信息.
句法
以下是句法外部DTD:
<!DOCTYPE root-element SYSTEM "file-name">
其中filename是.dtd擴展名的文件.
示例
下麵的例子顯示外部DTD用法:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>YiiBai</company> <phone>(011) 123-4567</phone> </address>
DTD文件address.dtd的內容是如圖所示:
<!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)>
類型
您可以通過使用係統標識符和公共標識符引用一個外部DTD.
係統標識符
係統標識符可以指定包含DTD聲明一個外部文件的位置。語法如下:
<!DOCTYPE name SYSTEM "address.dtd" [...]>
正如你可以看到它包含的關鍵字係統和URI引用指向該文件的位置.
公共標識
公共標識符提供了一種機製來定位DTD資源和寫入如下:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
正如你可以看到它開始與關鍵字public,然後由專門的標識。公共標識符被用來標識在一個目錄中的條目。公共標識可以按照任何格式,但是,常用的格式被稱為正式公開標識符,或符,FPI.