一個xml文檔需要一個DTD文檔對其進行規範限制
DTD文法細節:元素定義1:
①在DTD文檔中使用ELEMENT聲明一個xml元素,文法格式如下所示:
<!ELEMENT 元素名稱 元素類型>
②元素類型可以是元素内容、或類型
如為元素内容:則需要使用()括起來,如:
<!ELEMENT 書架(書名,作者,售價)>
<!ELEMENT 書名(#PCDATA)>
如為元素類型,則直接書寫,DTD規範定義了如下幾種類型:
EMPTY:用于定義空元素,例如:<br/>
ANY:表示元素内容為任意類型
DTD文法細節:元素定義2:
元素内容可以使用如下方式,描述内容的組成關系
①用逗号分隔,表示内容的出現順序必須與聲明時一緻。
<!ELEMENT MYFILE(TITLE,AUTHOR,EMAIL)>
②用|分隔符,表示任選其一,即多個隻能出現一個
<!ELEMENT MYFILE(TITLE|AUTHOR|EMAIL)>
③在元素内容中也可以使用+、*、?等符号表示元素出現的次數:
+:一次或多次(書+)
?:0次或一次(書?)
*:0次或多次(書*)
④也可以使用圓括号()批量設定,例如:
<!ELEMENT MYFILE ((TITlE*,AUTHOR?,EMAIL)*|COMMENT)>
屬性定義attribute
設定說明:
#REQUIRED:必須設定該屬性
#IMPLIED:可以設定,也可以不設定
#FIXED:說明該屬性的取值為一個固定值,在xml檔案中不能為該屬性設定其他值,但需要為該屬性提供這個值。
直接使用預設值:在xml中也可以設定改值,也可以不設定該屬性值,若沒設定則使用預設值。
舉例:
<!ATTLIST 頁面作者
姓名 CDATA #IMPLIED
年齡 CDATA #IMPLIED
聯系資訊 CDATA #REQUIRED
網站職務 CDATA #FIXED “頁面作者”
個人愛好 CDATA “上網”
>
①xml文檔中的标簽屬性需要通過ATTLIST為其設定屬性,文法格式如下:
<!ATTLIST 元素名
屬性名1 屬性值類型 設定說明
屬性名2 屬性值類型 設定說明
...
>
②屬性聲明舉例:
<!ATTLIST 商品
類别 CDATA #REQUIRED
顔色 CDATA #IMPLIED
>
③對應xml檔案:
<商品 類别=”服裝” 顔色=”黃色”>...</商品>
<商品 類别=”服裝”>...</商品>
屬性值類型→ENUMERATED
屬性的類型可以是一組取值的清單,在xml檔案中設定的屬性值之能是這個清單中的某個值(枚舉)
屬性值類型→ID
表示屬性的設定值為一個為宜指,ID屬性的值隻能由字母,下劃線開始,不能出現空白字元串
實體定義→引用實體
引用實體主要在xml文檔中被應用,
文法格式:
<!ENTITY 實體名稱 “實體内容” >:直接轉變成實體内容
引用方式:
&實體名稱;
舉例:
<!ENTITY copyright “I am a progremmer”>
...
©right;
實體定義→參數實體
參數實體被DTD檔案自身使用
文法格式:
<!ENTITY % 實體名稱 “實體内容”>
引用方式:
%實體名稱;
舉例:
<!ENTITY % TAG_MAMES “姓名|EMAIL|電話|位址”>
<!ENTITY 個人資訊 (%TAG_MAMES;|生日)>
<!ENTITY 客戶資訊 (%TAG_MAMES;|公司名)>