一個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;|公司名)>