
DTD - 属性
发布日期:2021-05-10 03:50:40
浏览次数:25
分类:精选文章
本文共 860 字,大约阅读时间需要 2 分钟。
在DTD中,属性的声明与内容模型的定义紧密结合,主要通过ATTLIST声明来实现。以下是关于DTD属性声明的详细说明。
属性声明语法
ATTLIST声明用于定义元素的属性,语法格式如下:
- element-name:指定元素名称。
- attribute-name:属性名称。
- attribute-type:属性类型,可能包括:
CDATA
:表示属性值为字符数据。(en1|en2|...)
:表示属性值必须从给定的枚举列表中选择一个。ID
:表示属性值必须是唯一的ID。IDREF
:表示属性值必须是另一个元素的ID。IDREFS
:表示属性值必须是其他ID的列表。NMTOKEN
:表示属性值必须是一个合法的XML名。NMTOKENS
:表示属性值必须是合法的XML名的列表。ENTITY
:表示属性值是一个实体引用。ENTITIES
:表示属性值是实体引用列表。NOTATION
:表示属性值是一个符号名称。xml
:表示属性值是一个预定义的XML值。
默认属性值
默认属性值可以通过以下方式指定:
#REQUIRED
:表示属性值是必需的。#IMPLIED
:表示属性值不是必需的。#FIXED "value"
:表示属性值是一个固定的字符串值。
示例
DTD示例
]>
XML示例
如果没有指定默认值,width
属性的默认值会是0
。
#REQUIRED示例
DTD
]>
XML
如果不使用number
属性,XML解析器会报告错误。
#IMPLIED示例
DTD
]>
XML
如果contact
元素没有fax
属性,属性不会被视为错误。
#FIXED示例
DTD
]>
XML
如果尝试使用company="W3Schools"
,XML解析器会报告错误。
枚举属性值
如果希望属性值只能从预定义的列表中选择,可以使用枚举类型。
DTD
]>
XML
这样可以确保type
属性只能是check
或cash
。
通过以上方法,可以在DTD中有效地声明属性,并对属性的使用规则进行约束。