zoukankan      html  css  js  c++  java
  • xml dtd 定义元素

    ANY

    如果需要定义某个元素的值可以是任意类型,可采用如下语法

    <!ELEMENT 元素名 ANY>

    DTD必须定义XML文档中允许出现的所有元素,所以下面这样是不行的,因为<hellotag>没有在dtd中定义过

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE messages[
        <!ELEMENT messages ANY>
    ]>
    
    <messages>
        <message>
            <hellotag>hello</hellotag>
        </message>
    </messages>

     #PCDATA

    定义元素内容为字符串,不能包含子元素

    实例:

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

    混合元素,即既可以包含字符串也可以包含子元素

    格式:

    (注意 1:#PCDATA只能出现在子元素的最前面

             2:*表示这些子元素可出现0次或多次,如果没有*,则各个子元素互斥,只能出现一个

             3:使用 | 分隔子元素,则子元素的出现是无序的,如果使用逗号","则子元素的出现顺序是严格按照书写顺序 )

    <!ELEMENT 父元素名 (#PCDATA | 子元素1 | 子元素2 |子元素n)*>

    实例:略

    定义元素属性

    格式:

    <!ATTLIST 属性所属的元素 属性名 属性类型 [元素对属性的约束] [默认值]>

    其中,元素对属性的约束 和 默认值 是可选的,但如果没有指定前者,则必须指定后者,

         当元素对属性的约束 是 "#REQUIRED"时,不能指定默认值,

         当元素对属性的约束 是 "#IMPLIED"时,不能指定默认值,

         当元素对属性的约束 是 "#FIXED",时,必须指定默认值

    #REQUIRED:即必需的属性,意味着必须为该元素提供属性

    #IMPLIED:意即该属性是可有可无的

    #FIXED:即该属性是固定的,定义时必须指定固定值。使用该元素时无须为其分配该属性,XML处理器会自动为该属性增加固定值

     实例:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE messages[
        <!ELEMENT messages (message | shortcut)*>
        <!ELEMENT message (content)>
        <!ELEMENT shortcut (#PCDATA)>
        <!ELEMENT content (#PCDATA)>
        <!ATTLIST messages hashcode CDATA #REQUIRED>
    ]>
    
    <messages hashcode="dfsfdsfsdf">
        <message>
            <content>hello</content>
        </message>
        <shortcut>
            hello,world
        </shortcut>
        <shortcut>    
            hello,world
        </shortcut>
    </messages>

    DTD支持的属性列表:

                                                                  

    --

  • 相关阅读:
    软件开发术语
    网络规划与设计
    MPLS LDP协议
    MPLS 基础
    CallAfter
    LongRunningTasks
    Non-blocking GUI
    WorkingWithThreads
    Python: Running Ping, Traceroute and More
    wxPython and Threads
  • 原文地址:https://www.cnblogs.com/heben/p/6080993.html
Copyright © 2011-2022 走看看