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.