zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/ghgyj/p/3991935.html
Copyright © 2011-2022 走看看