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" />
    当您希望属性值是一组固定的合法值之一时,请使用枚举属性值。