**:
a、b、c 和 d 是在下例中代表元素的變數。
元素必須有正好乙個a
、至少乙個b
(由加號表示)、零個或多個c
(由星號表示)以及零個或乙個d
(由問號表示):
元素可能有a
或b
或c
之一:
元素不包含任何內容:
元素可以包含在 dtd 中列出的任何元素:
元素可能包含經過語法分析的字元資料或另乙個元素(element2
)。星號(*)表示混合內容模型 — 其中元素可以包含不同型別的屬性。
下例將文字 "entity reference" 插到文件中它出現的任何地方:
可以看到在 xml 文件中該實體引用元素如下:
&element;
下例表明其元素是乙個包含三個屬性的空標記:屬性 1(att1
)是乙個可選屬性,屬性 2(att2
)是帶有固定值"a"
的屬性,屬性 3(att3
)是必需的文字屬性。
可以看到在 xml 文件中使用的這個元素如下:
屬性cdata
表示包括的資訊應該是文字。id
屬性表明必須填入唯一的標識。每個元素只能有乙個id
屬性。另外,cdata
表示att2
和att3
可能包含任何字串。
回頁首
工作示例
可以使用 microsoft internet explorer 5 或更高版本檢視清單 4 中顯示的 xml 文件 ― 前面示例中使用的 people.xml 檔案的擴充套件版本。如果在 ie5 中開啟 people.xml,應該看到乙個樹結構。這是因為 ie5 帶有能夠將 xml 文件語法分析成元素樹的 xml 語法分析器。
還可以在參考資料中找到這個檔案及其 dtd。
清單 4. people.xml 的完整清單
<?xml version="1.0"?>
jane
fung
good-looking
civic
&ibm;
g.i.
jane
tough
5000]]>
she has a car
關於 xml 的幾點說明
對 xml 的深入**主要考慮的是文件頭中的幾個元素,從以下開始:
<?xml version="1.0"?>
每個 xml 文件都必須包含這樣的乙個頭,向 xml 語法分析器表示它是乙個 xml 文件。頭中的下一行告訴 xml 語法分析器該文件是使用什麼字元編碼來建立的:
在 unix 系統上建立的 xml 文件和在 windows 系統上建立的 xml 文件可能有不同的編碼。
還可以為第一行設定可選的standalone
屬性。standalone 的預設值是no。no值表示該 dtd 定義是在另乙個檔案中描述的。yes值表明該 dtd 應該在 xml 文件內部定義。我沒有為示例設定這個屬性;如果想設定,它應該看起來如下:
<?xml version="1.0" standalone='yes'?>]>
還應該注意使這個文件格式正確的方法。例如,所有空標記都用乙個右斜槓結束,如下所示:
還請注意cdata
用於對所有若不進行轉義就會以 xml 語言解釋的任何資料進行轉義,例如:
5000]]>
如果適當的格式化,這一行將以文字內容顯示:
5000
可以從 xml 檔案的進一步研究中獲益,甚至可能從對您自己的檔案執行 xml 語法分析器獲益(請參閱參考資料)。但是現在,讓我們看一下 people.xml 檔案的 dtd。
清單 5. people.dtd 的完整清單
關於 dtd 的幾點說明
使用快速指南作為參考,通過比較 xml 檔案及其 dtd,您應該能夠方便地定義 dtd 和 xml 檔案中各元素之間的關係。不過,還有兩個剩下的元素,您可能感興趣。
清單 4 包含了對實體的引用。
&ibm;
實體引用用於代替在 dtd 文件中定義的特定字元或字串。進行了語法分析後,該實體引用將讀作:
proud to work for ibm
還應該注意,標記的內容型別是
any
。這表示可能包含所有以前已在 dtd 中宣告過的元素。因此,
other
元素可能包含car
和house
元素,如下:
she has a car
DTD 語法快速指南
a b c 和 d 是在下例中代表元素的變數。元素必須有正好乙個a 至少乙個b 由加號表示 零個或多個c 由星號表示 以及零個或乙個d 由問號表示 元素可能有a或b或c之一 元素不包含任何內容 元素可以包含在 dtd 中列出的任何元素 元素可能包含經過語法分析的字元資料或另乙個元素 element2...
快速入門dtd
今天我們來學習一下dtd的使用以及約束。我們來說一下什麼是有效的xml文件?內容結構嚴謹遵守自身標記,能通過自身的語法檢查,通過dtd驗證的xml文件稱為有效的xml文件。dtdschema 兩者都可以用來約束xml文件,schema 比dtd強大同時難度也比dtd高一點,我們只要學習好dtd然後去...
DTD快速入門
1.dtd宣告型別 內部的 doctype 宣告 xml version 1.0 doctype note element note to,from,heading,body element to pcdata element from pcdata element heading pcdata e...