DTD - 語法



XML DTD 可以指定在文件內部,也可以儲存在單獨的文件中,然後將文件連結到 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

廣告

© . All rights reserved.