ATTLIST (Attribute List)
ATTLIST
声明用于列出并声明可以属于某个元素的每个属性。 先指定将应用属性列表的元素的名称。 然后按名称列出每个属性,指示属性是不是必选属性,并指定允许作为值的字符数据。
语法
<!ATTLIST elementName attributeName dataType default >
参数
- elementName
要应用属性列表的元素的名称。
- attributeName
属性名。 此参数可以根据需要重复多次,列出所有可与elementName
一起使用的属性。
dataType
在attributeName
参数中命名的属性的数据类型,该参数必须是以下值之一:CDATA – 此属性将只包含字符数据。
ID - 该属性的值必须是唯一的。 不能在文档中使用的其他元素或属性中重复使用。
IDREF – 此属性引用文档中属于 ID 类型的另一个属性值。
ENTITY – 此属性值必须与一个外部的未分析 ENTITY 对应,后者也在同一个 DTD 中声明。
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
属性。所需的
ISBN
属性,它必须包含 XML 文档中每个<book>
元素的唯一的标识值。必须包含
"yes"
或"no"
值的必选InPrint
属性。 如果 XML 文档中未明确设置值,默认值将采用"yes"
值。