1. 基本属性声明:
属性声明的一般形式如下:
<!ATTLIST element_name attribute_name attribute_type default_value>
其中:
- element_name 是元素的名称。
- attribute_name 是属性的名称。
- attribute_type 定义了属性的数据类型,如 CDATA、ID、IDREF 等。
- default_value 是属性的默认值。
例如,下面的声明表示 <book> 元素有一个 category 属性,类型为 CDATA,没有默认值:
<!ATTLIST book category CDATA #IMPLIED>
2. 属性数据类型:
在属性声明中,可以指定属性的数据类型,常用的数据类型包括:
- CDATA(Character Data): 表示属性可以包含任意字符数据。
<!ATTLIST book title CDATA #REQUIRED>
- ENUM(Enumeration): 表示属性的值必须是预定义的一组值中的一个。
<!ATTLIST button type (submit|reset|button) "submit">
- ID: 表示属性值是唯一标识符。
<!ATTLIST student id ID #REQUIRED>
- IDREF: 表示属性值是其他元素的唯一标识符。
<!ATTLIST book author IDREF #IMPLIED>
- ENTITY: 表示属性值是实体的名称。
<!ATTLIST book author ENTITY #IMPLIED>
3. 默认值:
在属性声明中,可以指定属性的默认值,包括:
- #REQUIRED: 表示属性是必需的,必须在元素中提供。
<!ATTLIST book title CDATA #REQUIRED>
- #IMPLIED: 表示属性是可选的,可以在元素中省略。
<!ATTLIST book category CDATA #IMPLIED>
- #FIXED value: 表示属性的默认值是固定的。
<!ATTLIST button type (submit|reset|button) #FIXED "submit">
- "default_value": 直接指定属性的默认值。
<!ATTLIST book price CDATA "0.00">
4. 多个属性声明:
一个元素可以有多个属性声明,每个属性声明使用逗号分隔:
<!ATTLIST book
title CDATA #REQUIRED,
author CDATA #REQUIRED,
price CDATA #IMPLIED>
在上述例子中,<book> 元素可以包含 title、author 和 price 三个属性。
这些是关于 DTD 属性声明的基本概念和语法。DTD 提供了一种简单但有限的方式来定义 XML 文档的结构和规范,特别适用于较为简单的应用场景。在更复杂的情况下,可能会选择使用 XML Schema 或 Relax NG 这样的替代技术。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12194/XML