ATTLIST (屬性清單)
ATTLIST
陳述式可用來列示或宣告每個可能屬於某項目的屬性。它會先為屬性清單所適用的一或多個項目指定名稱。接著它會依名稱列出每個屬性,並指出是否為必要屬性,以及指定哪些字元資料可用來做為屬性值。
語法
<!ATTLIST elementName attributeName dataType default >
參數
- elementName
適用屬性清單之項目的名稱。
- attributeName
屬性的名稱。此參數可依需要不限次數重複使用,以列出所有可與elementName
搭配使用的屬性。
dataType
在attributeName
參數中命名之屬性的資料型別必須是下列其中一項:CDATA – 此屬性只會包含字元資料。
ID - 屬性值必須是唯一的。它不可在文件中所使用的其他項目或屬性中重複使用。
IDREF – 此屬性會參考文件中另一個屬性 (ID 型別) 的值。
ENTITY – 此屬性值必須對應於在相同 DTD 中宣告的外部未剖析 ENTITY。
ENTITIES - 此屬性值包含多個在 DTD 中宣告的外部未剖析實體名稱。
NMTOKEN – 此屬性值必須是名稱語彙基元。名稱語彙基元允許字元資料值,但所受限制比 CDATA 多。名稱語彙基元可包含字母、數字,以及某些標點符號,如句號、破折號、底線與冒號。然而,名稱語彙基元值不可包含任何空格字元。
NMTOKENS - 此屬性值含有多個名稱語彙基元。如需詳細資訊,請參閱 NMTOKEN 與 Enumerated 的說明。
Enumerated – 此屬性值限定於列舉清單中的值。只有符合這些列示值的值才會有效地剖析。所有列舉的資料型別都會以一組括號括住,並以 ("|") 垂直線分隔每個值。
default
在attributeName
中命名之屬性的預設值。下表說明可能的預設值。預設值 說明 #REQUIRED
此屬性必須顯示在 XML 文件中,否則會產生剖析錯誤。為避免在某些情況下產生剖析錯誤,您可以選擇性地在此關鍵字之後接著使用
defaultValue
欄位。#IMPLIED
此屬性可顯示在 XML 文件中,但若省略,也不會產生剖析錯誤。在某些情況下,您也可以選擇性地在此關鍵字之後直接使用
defaultValue
欄位。#FIXED
此屬性值已固定於 DTD 中,不可在 XML 文件中加以變更或覆寫。若使用此關鍵字,則必須同時在此關鍵字之後直接使用
defaultValue
欄位,以宣告固定的屬性值。defaultValue
預設值或固定值。當屬性遺失或未在 XML 文件中使用時,剖析器會將此值插入 XML 文件中。所有的值都必須以一組引號 (單引號或雙引號) 括住。
注意: |
---|
對於 DTD 中所建立的每個 ATTLIST 宣告,僅需使用一次 elementName 。attributeName 、dataType 與 default 參數可在清單中定義每個屬性,並可視需要不限次數重複執行,直到您列出及定義所有可與 elementName 搭配使用的屬性為止。
|
範例
此範例會宣告 <book>
項目的下列屬性:
只包含字元資料的選擇性
publisher
屬性。將其值設為
"MyStore".
的固定reseller
屬性。在 XML 文件中,必須包含識別每個
<book>
項目之唯一值的必要ISBN
屬性。必須包含
"yes"
或"no"
值的必要InPrint
屬性。若未在 XML 文件中明確設定此值,預設值就會強制執行"yes"
值。