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 文档。 所有值必须加上一对引号(单引号或双引号)。

ms256140.note(zh-cn,VS.100).gif注意:
对于 DTD 中所作的每个 ATTLIST 声明,只需要使用一次 elementNameattributeNamedataTypedefault 参数在列表中定义每个属性,可以根据需要重复使用多次,直到列出并定义了可以与 elementName 一起使用的所有属性。

示例

此示例声明 <book> 元素的以下属性:

  • 只能包含字符数据的可选 publisher 属性。

  • 值设置为 "MyStore". 的固定 reseller 属性。

  • 所需的 ISBN 属性,它必须包含 XML 文档中每个 <book> 元素的唯一的标识值。

  • 必须包含 "yes""no" 值的必选 InPrint 属性。 如果 XML 文档中未明确设置值,默认值将采用 "yes" 值。

另请参见

概念

ELEMENT
ENTITY
NOTATION