• DTD


    In a DTD, attributes are declared with an ATTLIST declaration.

    Declaring Attributes

    An attribute declaration has the following syntax:

    <!ATTLIST element-name attribute-name attribute-type attribute-value>
    
    DTD example:
    
    <!ATTLIST payment type CDATA "check">
    
    XML example:
    
    <payment type="check" />

    The attribute-type can be one of the following:

    TypeDescription
    CDATA The value is character data
    (en1|en2|..) The value must be one from an enumerated list
    ID The value is a unique id
    IDREF The value is the id of another element
    IDREFS The value is a list of other ids
    NMTOKEN The value is a valid XML name
    NMTOKENS The value is a list of valid XML names
    ENTITY The value is an entity
    ENTITIES The value is a list of entities
    NOTATION The value is a name of a notation
    xml: The value is a predefined xml value

    The attribute-value can be one of the following:

    ValueExplanation
    value The default value of the attribute
    #REQUIRED The attribute is required
    #IMPLIED The attribute is optional
    #FIXED value The attribute value is fixed

    A Default Attribute Value

    DTD:
    <!ELEMENT square EMPTY>
    <!ATTLIST square width CDATA "0">
    
    Valid XML:
    <square width="100" />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE square [
    <!ELEMENT square EMPTY>
    <!ATTLIST square width CDATA "0">
    ]>
    <square width="100"/>

    In the example above, the "square" element is defined to be an empty element with a "width" attribute of  type CDATA. If no width is specified, it has a default value of 0.

    #REQUIRED

    Syntax

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

    Example

    DTD:
    <!ATTLIST person number CDATA #REQUIRED>
    
    Valid XML:
    <person number="5677" />
    
    Invalid XML:
    <person />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE person [
    <!ELEMENT person EMPTY>
    <!ATTLIST person number CDATA #REQUIRED>
    ]>
    <person number="5677"/>

    Use the #REQUIRED keyword if you don't have an option for a default value, but still want to force the attribute to be present.

    #IMPLIED

    Syntax

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

    Example

    DTD:
    <!ATTLIST contact fax CDATA #IMPLIED>
    
    Valid XML:
    <contact fax="555-667788" />
    
    Valid XML:
    <contact />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE contact [
    <!ELEMENT contact EMPTY>
    <!ATTLIST contact fax CDATA #IMPLIED>
    ]>
    <contact fax="555-667788"/>

    Use the #IMPLIED keyword if you don't want to force the author to include an attribute, and you don't have an option for a default value.

    #FIXED

    Syntax

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

    Example

    DTD:
    <!ATTLIST sender company CDATA #FIXED "Microsoft">
    
    Valid XML:
    <sender company="Microsoft" />
    
    Invalid XML:
    <sender company="W3Schools" />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sender [
    <!ELEMENT sender EMPTY>
    <!ATTLIST sender company CDATA #FIXED "Microsoft">
    ]>
    <sender company="Microsoft"/>

    Use the #FIXED keyword when you want an attribute to have a fixed value without allowing the author to change it. If an author includes another value, the XML parser will return an error.

    Enumerated Attribute Values

    Syntax

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

    Example

    DTD:
    <!ATTLIST payment type (check|cash) "cash">
    
    XML example:
    <payment type="check" />
    or
    <payment type="cash" />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE payment [
    <!ELEMENT payment EMPTY>
    <!ATTLIST payment type (check|cash) "cash">
    ]>
    <payment/>

    Use enumerated attribute values when you want the attribute value to be one of a fixed set of legal values.

  • 相关阅读:
    JavaScript基础学习篇
    js,html,css注释大集合
    JS中的专业术语
    BFC给我的帮助以及对hasLayout的认识
    框架
    PHP echo和print语句
    PHP变量
    PHP语法
    PHP入门
    SQLite学习网址
  • 原文地址:https://www.cnblogs.com/ghgyj/p/3991935.html
Copyright © 2020-2023  润新知