
- XML 教程
- XML - 首頁
- XML - 概述
- XML - 語法
- XML - 文件
- XML - 宣告
- XML - 標籤
- XML - 元素
- XML - 屬性
- XML - 註釋
- XML - 字元實體
- XML - CDATA 區段
- XML - 空格
- XML - 處理
- XML - 編碼
- XML - 驗證
- XML 有用資源
- XML - 快速指南
- XML - 有用資源
XML - DTD
XML 文件型別宣告,通常稱為 DTD,是一種精確描述 XML 語言的方法。DTD 根據相應 XML 語言的語法規則,檢查 XML 文件的詞彙和結構的有效性。
XML DTD 可以寫在文件內部,也可以儲存在單獨的文件中,然後單獨連結。
語法
DTD 的基本語法如下:
<!DOCTYPE element DTD identifier [ declaration1 declaration2 ........ ]>
在上述語法中:
DTD 以 <!DOCTYPE 分隔符開頭。
元素 告訴解析器從指定的根元素開始解析文件。
DTD 識別符號 是文件型別定義的識別符號,可以是系統上檔案的路徑,也可以是網際網路上檔案的 URL。如果 DTD 指向外部路徑,則稱為外部子集。
方括號 [ ] 包含一個可選的實體宣告列表,稱為內部子集。
內部 DTD
如果元素在 XML 檔案中宣告,則 DTD 稱為內部 DTD。要將其稱為內部 DTD,XML 宣告中的standalone 屬性必須設定為yes。這意味著宣告獨立於外部資源工作。
語法
以下是內部 DTD 的語法:
<!DOCTYPE root-element [element-declarations]>
其中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>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address>
讓我們來看一下上面的程式碼:
開始宣告 - 使用以下語句開始 XML 宣告。
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
DTD - 在 XML 頭之後,緊跟著文件型別宣告,通常稱為 DOCTYPE:
<!DOCTYPE address [
DOCTYPE 宣告在元素名稱的開頭有一個感嘆號 (!) 。DOCTYPE 通知解析器此 XML 文件與 DTD 相關聯。
DTD 主體 - DOCTYPE 宣告之後是 DTD 的主體,在其中宣告元素、屬性、實體和符號。
<!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone_no (#PCDATA)>
這裡聲明瞭幾個元素,它們構成了<name>文件的詞彙表。<!ELEMENT name (#PCDATA)> 定義元素name 的型別為“#PCDATA”。這裡 #PCDATA 表示可解析的文字資料。
結束宣告 - 最後,DTD 的宣告部分用右括號和右尖括號 (]>) 關閉。這有效地結束了定義,之後 XML 文件緊隨其後。
規則
文件型別宣告必須出現在文件的開頭(僅在 XML 頭之前) - 不允許出現在文件中的其他任何位置。
與 DOCTYPE 宣告類似,元素宣告必須以感嘆號開頭。
文件型別宣告中的名稱必須與根元素的元素型別匹配。
外部 DTD
在外部 DTD 中,元素在 XML 檔案外部宣告。透過指定系統屬性來訪問它們,這些屬性可以是合法的.dtd 檔案或有效的 URL。要將其稱為外部 DTD,XML 宣告中的standalone 屬性必須設定為no。這意味著宣告包含來自外部資源的資訊。
語法
以下是外部 DTD 的語法:
<!DOCTYPE root-element SYSTEM "file-name">
其中file-name 是副檔名為.dtd 的檔案。
示例
以下示例顯示了外部 DTD 的用法:
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</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" [...]>
如您所見,它包含關鍵字 SYSTEM 和指向文件位置的 URI 引用。
公共識別符號
公共識別符號提供了一種定位 DTD 資源的機制,其編寫方式如下:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
如您所見,它以關鍵字 PUBLIC 開頭,後跟一個專用識別符號。公共識別符號用於標識目錄中的條目。公共識別符號可以遵循任何格式,但是,常用的格式稱為正式公共識別符號,或 FPI。