DTD 属性

创建于 2024-12-03 / 19
字体: [默认] [大] [更大]

在DTD中,属性是用ATTLIST声明声明的。


声明属性

属性声明具有以下语法:

<!ATTLIST element-name attribute-name attribute-type attribute-value>

DTD 示例:

<!ATTLIST payment type CDATA "check">

XML 示例:

<payment type="check" />

属性类型可以是以下类型之一:

类型 描述
CDATA 值是字符数据
(en1|en2|..) 值必须是枚举列表中的值
ID 该值是唯一的id
IDREF 值是另一个元素的id
IDREFS 该值是其他ID的列表
NMTOKEN 该值是有效的XML名称
NMTOKENS 该值是有效XML名称的列表
ENTITY 值是一个实体
ENTITIES 值是实体列表
NOTATION 值是表示法的名称
xml: 该值是预定义的xml值

属性值可以是以下值之一:

解释
value 属性的默认值
#REQUIRED 属性是必需的
#IMPLIED 属性是可选的
#FIXED value 属性值是固定的


默认属性值

DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

Valid XML:
<square width="100" />

在上面的实例中,"square"元素被定义为具有CDATA类型的"width"属性的空元素。如果未指定宽度,则默认值为0。


#REQUIRED

语法

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

实例

DTD:
<!ATTLIST person number CDATA #REQUIRED>

Valid XML:
<person number="5677" />

Invalid XML:
<person />

如果没有默认值的选项,但仍希望强制属性存在,请使用#REQUIRED关键字。


#IMPLIED

语法

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

实例

DTD:
<!ATTLIST contact fax CDATA #IMPLIED>

Valid XML:
<contact fax="555-667788" />

Valid XML:
<contact />

如果不想强制作者包含属性,并且没有默认值选项,请使用#impliced关键字。


#FIXED

语法

<!ATTLIST element-name attribute-name attribute-type #FIXED "value">

实例

DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">

Valid XML:
<sender company="Microsoft" />

Invalid XML:
<sender company="W3Schools" />

如果希望属性具有固定值而不允许作者更改它,请使用#FIXED关键字。如果作者包含另一个值,XML解析器将返回一个错误。


枚举属性值

语法

<!ATTLIST element-name attribute-name (en1|en2|..) default-value>

实例

DTD:
<!ATTLIST payment type (check|cash) "cash">

XML 示例:
<payment type="check" />

<payment type="cash" />

如果希望属性值是一组固定的合法值之一,请使用枚举属性值。



0 人点赞过