信息化 频道

XML Schema与XML DTD的技术比较与分析

    元素顺序的支持 

    XML DTD与XML Schema 都支持对子元素节点顺序的描述,但XML DTD没有提供对于无序情况的描述,也就是如果以XML DTD来描述元素的无顺序出现情况,它必须采用穷举元素各种可能出现的排列顺序的方式来实现,这种方法不仅繁琐,有时甚至是不现实的。例如对于table的a,b子元素,如果希望它们以任意的顺序出现,用XML DTD来描述:

    源码6 a,b子元素任意顺序出现的XML DTD定义 

    <?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT ENTER_NAME_OF_ROOT_ELEMENT_HERE EMPTY>
    <!ELEMENT table ((a,b)|(b,a))>
    <!ELEMENT a  (#PCDATA)>
    <!ELEMENT b (#PCDATA)>

    XML Schema提供了<all>标记来描述这种情况:

    源码7 a,b子元素任意顺序出现的XML Schema定义 

    <xsd:element name="a" type="xsd:string"/>
    <xsd:element name="b" type="xsd:string"/>
    <xsd:element name="table">
    <xsd:complexType>
    <xsd:all>
    <xsd:element ref="a"/>
    <xsd:element ref="b"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>

    可见,用XML Schema来实现子元素的无序描述要简单的多。

0
相关文章