最新的Web開發教程
 

DTD - 屬性


在DTD中,屬性聲明與ATTLIST聲明。


聲明屬性

屬性聲明的語法如下:

<!ATTLIST element-name attribute-name attribute-type attribute-value>

DTD example:

<!ATTLIST payment type CDATA "check">

XML example:

<payment type="check" />

attribute-type可以是下列之一:

類型 描述
CDATA 該值是字符數據
( en1 | en2 |..) 該值必須是一個來自枚舉列表
ID 的值是唯一的id
IDREF 的值是另一個元素的id
IDREFS 該值是其它id的列表
NMTOKEN 該值是有效的XML名稱
NMTOKENS 值是有效的XML名稱的列表
ENTITY 該值是一個實體
ENTITIES 值是實體的列表
NOTATION 該值是一個符號的名稱
xml: 該值是一個預定義的XML值

attribute-value可以是下列之一:

說明
value 該屬性的缺省值
#REQUIRED 該屬性是必需的
#IMPLIED 該屬性是可選
#FIXED value 屬性值是固定的

A缺省屬性值

DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

Valid XML:
<square width="100" />

在上面的例子中, "square"的元素被定義為具有一個空元素"width" CDATA類型的屬性。 如果沒有指定寬度,它具有的默認值為0。


#需要

句法

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

DTD:
<!ATTLIST person number CDATA #REQUIRED>

Valid XML:
<person number="5677" />

Invalid XML:
<person />

使用#REQUIRED關鍵字,如果你沒有為默認值的選項,但還是要強制屬性在場。


#默示

句法

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

DTD:
<!ATTLIST contact fax CDATA #IMPLIED>

Valid XML:
<contact fax="555-667788" />

Valid XML:
<contact />

使用#IMPLIED關鍵字,如果你不希望強制作者包含屬性,並且沒有為默認值的選項。


#固定

句法

<!ATTLIST element-name attribute-name attribute-type #FIXED "value">

DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">

Valid XML:
<sender company="Microsoft" />

Invalid XML:
<sender company="w3ii" />

當你想一個屬性有一個固定的值,而不讓筆者去改變它使用#FIXED關鍵詞。 如果作者包括另一個值,XML解析器將返回一個錯誤。


枚舉屬性值

句法

<!ATTLIST element-name attribute-name (en1|en2|..) default-value>

DTD:
<!ATTLIST payment type (check|cash) "cash">

XML example:
<payment type="check" />
or
<payment type="cash" />

當您希望屬性值為一系列固定的合法值之一使用枚舉的屬性值。