DTD 属性
-
定义和使用
在 DTD 中,属性用 ATTLIST 声明。属性声明具有以下语法:<!ATTLIST element-name attribute-name attribute-type attribute-value> DTD example: <!ATTLIST payment type CDATA "check"> XML example: <payment type="check" />
属性类型可以是以下之一:类型 描述 CDATA 该值为字符数据 (en1|en2|..) 该值必须是枚举列表中的一个 ID 该值是唯一的ID IDREF IDREF该值是另一个元素的ID IDREFS 该值是其他ID的列表 NMTOKEN 该值是有效的XML名称 NMTOKENS 该值是有效XML名称的列表 ENTITY 该值是一个实体 ENTITIES 该值是实体列表 NOTATION 该值是符号的名称 xml: 该值是预定义的xml值 该属性值可以是以下之一:值 描述 value 属性的默认值 #REQUIRED 该属性为必填项 #IMPLIED 该属性是可选的 #FIXED value 属性值是固定的 -
默认属性值
空元素用类别关键字 EMPTY 声明:示例: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" /> Invalid XML: <contact />
如果您不想强迫作者包括属性,并且没有默认值选项,请使用#IMPLIED关键字。
-
#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 example: <payment type="check" /> or <payment type="cash" />
当您希望属性值是一组固定的合法值之一时,请使用枚举属性值。