• SCHema


    此处ID值好像要以字符开头,如果只是数字通不过验证。

    学生信息中的性别,我把它定义为实体,然后通过实体引用它的值,要注意实体引用的语法是"&实体名;"。

    下面通过XML Schema方式来验证

    要验证的xml文档

    <?xml version="1.0" encoding="utf-8"?>
    <学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd">
        <学生 学号="A1">
            <姓名>CIACs</姓名>
            <性别></性别>
            <年龄>22</年龄>
        </学生>
    
        <学生 学号="A2">
            <姓名>zhihao</姓名>
            <性别></性别>
            <年龄>23</年龄>
        </学生>
    </学生名册

    XML Schema验证文档

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="学生名册">
            <xs:complexType>
                <xs:sequence minOccurs="1" maxOccurs="unbounded">
                    <xs:element ref="学生"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="学生">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="姓名" type="xs:string"/>
                    <xs:element name="性别">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="男"/>
                                <xs:enumeration value="女"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="年龄">
                        <xs:simpleType>
                            <xs:restriction base="xs:integer">
                                <xs:minExclusive value="0"/>
                                <xs:maxExclusive value="120"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="学号" type="xs:string" use="required"/>
            </xs:complexType>
        </xs:element>
    </xs:schema>

    要验证的xml的文档通过在根元素开始标签中加入下面的信息关联XML Schema文档

     1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd" 

    以上的文档都是放在同一路径下的,所以直接引用文件名就行了。

    从上面的两种验证方式我们可以很清楚的看出DTD跟XML Schema验证的区别,两者同样是进行xml文档验证的,XML Schema提供了比DTD更为强大的功能和更细粒度的数据类型,而且Schema还可以自定义数据类型,其本身就是xml文件,但dtd的语法跟xml的语法不同。虽然从代码量来看Schema大于dtd,但是当你学过Schema后你就会更喜欢用Schema。

    学好xml和它的验证方式,对于后面学习web service编程很重要

  • 相关阅读:
    node设置res.cookie跨域问题解决
    Rails常用插件
    什么是编程基础
    【数学之美】抽屉原理
    时分秒针重合问题
    如何理解【业务逻辑】
    【转】有关环境变量的若干问题?
    关于指针类型转化后在printf输出的问题
    rand * () 之间相互生成总结
    4.14做一个新浪微博的小东东
  • 原文地址:https://www.cnblogs.com/bksqmy/p/4526315.html
Copyright © 2020-2023  润新知