天天看點

DTD文檔限制一個xml文檔需要一個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;|公司名)>