1 屬性聲明
有時也可以對元素添加一些與其內容有關的補充信息,即聲明該元素的屬性.與元素類似,在XML文檔中使用的屬性必須在DTD中聲明
屬性聲明的語法如下:
<! ATTLIST Element_name Attribute_name Type Default_value>
其中,ATTLIST關鍵字用來定義元素所具有的屬性
Element_name是元素名,
Attribute_name是該元素所具有的屬性名
Type是屬性的類型,最常的是CDATA,Default_value是屬性的默認值
其中,定義屬性的代碼是:
<! ELEMENT year (#PCDATA)>
<! ELEMENT year format CDATA #IMPLIED>
CDATA表示屬性的值由字符數據組成,而不含標記符.
#IMPLIED意味着屬性無默認值,也可以默認.
聲明屬性時應注意以下幾點:
(1)屬性名稱遵循的規則與有效的元素名稱相同
(2)在一個給定的元素中不能有兩個屬性同名
(3)若屬性值中含有雙撇號,則該屬性值應用單撇號括起來.
如<job comments='He said,"I can paint only red doors"'>Door Painter</job>
2 屬性的類型
DTD中可以定義不同類型的屬性
1)CDATA屬性類型
此種類型的屬性值只能是文本串,用CDATA關鍵字進行聲明,它與#PCDATA元素聲明類似.
如
<! ATTLIST AnElement its_attr CDATA #REQUIRED>
這個例子說明元素AnElement的its_attr屬性的值是一個文本串.
2)枚舉屬性類型
枚舉屬性的值爲指定的文本串列表中的某個文本串.聲明時使用括號把這些文本串括起來,
並用豎線分隔開.
如
<! ATTLIST author authorID ID #REQUIRED>
3)ID屬性類型
ID類型的屬性用於標識文檔中的元素.ID屬性的值必須是一個合法的XML名稱,並且該值在文檔
中必須是唯一的.同時,每個元素最多隻能具有一個ID類型的屬性.
例如
<! ATTLIST author authorID ID #REQUIRED>
它爲author元素定義了ID類型的屬性authorID,其屬性值可以唯一地標識每個author元素