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元素