• DTD


    In a DTD, elements are declared with an ELEMENT declaration.

    Declaring Elements

    In a DTD, XML elements are declared with an element declaration with the following syntax:

    <!ELEMENT element-name category>
    or
    <!ELEMENT element-name (element-content)>

    Empty Elements

    Empty elements are declared with the category keyword EMPTY:

    <!ELEMENT element-name EMPTY>
    
    Example:
    
    <!ELEMENT br EMPTY>
    
    XML example:
    
    <br />
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE br [
    <!ELEMENT br EMPTY>
    ]>
    <br/>

    Elements with Parsed Character Data

    Elements with only parsed character data are declared with #PCDATA inside

    <!ELEMENT element-name (#PCDATA)>
    
    Example:
    
    <!ELEMENT from (#PCDATA)>

    Elements with any Contents

    Elements declared with the category keyword ANY, can contain any combination of parsable data:

    <!ELEMENT element-name ANY>
    
    Example:
    
    <!ELEMENT note ANY>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE content [
    <!ELEMENT content (any+)>
    <!ELEMENT any ANY>
    ]>
    <content>
        <any></any>
        <any>
            <any></any>
        </any>
        <any>&lt;</any>
    </content>

    Elements with Children (sequences)

    Elements with one or more children are declared with the name of the children elements inside parentheses:

    <!ELEMENT element-name (child1)>
    or
    <!ELEMENT element-name (child1,child2,...)>
    
    Example:
    
    <!ELEMENT note (to,from,heading,body)>

    When children are declared in a sequence separated by commas, the children must appear in the same sequence in the document. In a full declaration, the children must also be declared, and the children can also have children. The full declaration of the "note" element is:

    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>

    Declaring Only One Occurrence of an Element

    <!ELEMENT element-name (child-name)>
    
    Example:
    
    <!ELEMENT note (message)>

    The example above declares that the child element "message" must occur once, and only once inside the "note" element.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note [
    <!ELEMENT note (message)>
    <!ELEMENT message (#PCDATA)>
    ]>
    <note>
        <message></message>
    </note>

    Declaring Minimum One Occurrence of an Element

    <!ELEMENT element-name (child-name+)>
    
    Example:
    
    <!ELEMENT note (message+)>

    The + sign in the example above declares that the child element "message" must occur one or more times inside the "note" element.

    Declaring Zero or More Occurrences of an Element

    <!ELEMENT element-name (child-name*)>
    
    Example:
    
    <!ELEMENT note (message*)>

    The * sign in the example above declares that the child element "message" can occur zero or more times inside the "note" element.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note [
    <!ELEMENT note (message*)>
    <!ELEMENT message (#PCDATA)>
    ]>
    <note>
    
    </note>

    Declaring Zero or One Occurrences of an Element 

    <!ELEMENT element-name (child-name?)>
    
    Example:
    
    <!ELEMENT note (message?)>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note [
    <!ELEMENT note (message?)>
    <!ELEMENT message (#PCDATA)>
    ]>
    <note>
    <message></message>
    </note>

    The ? sign in the example above declares that the child element "message" can occur zero or one time inside the "note" element.

    Declaring either/or Content

    Example:
    
    <!ELEMENT note (to,from,header,(message|body))>

    The example above declares that the "note" element must contain a "to" element, a "from" element, a "header" element, and either a "message" or a "body" element.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note [
    <!ELEMENT note (to,from,header,(message|body))>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT header (#PCDATA)>
    <!ELEMENT message (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
    ]>
    <note>
        <to></to>
        <from></from>
        <header></header>
        <body></body>
    </note>

    Declaring Mixed Content

    Example:
    
    <!ELEMENT note (#PCDATA|to|from|header|message)*>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE note [
    <!ELEMENT note (#PCDATA|to|from|header|message)*>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT header (#PCDATA)>
    <!ELEMENT message (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
    ]>
    <note>
        <to></to>
    </note>

    The example above declares that the "note" element can contain zero or more occurrences of parsed character data, "to", "from", "header", or "message" elements.

     

  • 相关阅读:
    Python量化分析,计算KDJ
    Ubuntu16.04安装Python3.6 和pip(python3 各版本切换)
    使用docker加载已有镜像安装Hyperledger Fabric v1.1.0
    Ubuntu 16.04将左侧面板置于底部
    解决Flask局域网内访问不了的问题
    Ubuntu 16.04 安装Go 1.9.2
    Ubuntu16.04下安装Hyperledger Fabric 1.0.0
    Ubuntu 16.04安装Docker-CE
    用Python抓取网页并解析
    图解python中赋值、浅拷贝、深拷贝的区别
  • 原文地址:https://www.cnblogs.com/ghgyj/p/3991926.html
Copyright © 2020-2023  润新知