DTD文檔約束

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章