• xml学习总结(二)


    XML Schema

    (1)Schema内置类型

    ->字符串类型

    <strlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:noNamespaceSchemaLocation="string.xsd">
    </strlist>

    ->数值类型

    <numberlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:noNamespaceSchemaLocation="number.xsd">
    </numberlist>

    ->日期时间类型

    <date_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:noNamespaceSchemaLocation="date.xsd">
    </date_list>

    ->boolean类型

    <boolean_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:noNamespaceSchemaLocation="boolean.xsd">
    </boolean_list>

    ->anyURI类型

    <url_list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:noNamespaceSchemaLocation="uri.xsd">
    </url_list>

     ->二进制

    <binaryList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:noNamespaceSchemaLocation="binary.xsd">
    </binaryList>

    (2)使用限制派生新类型

    方式一(base.xsd)

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:simpleType name="age_Type">
            <xs:restriction base="xs:int">
                <xs:maxInclusive value="100"/>
                <xs:minInclusive value="0"/>
            </xs:restriction>
        </xs:simpleType> 
        <xs:element name="age" type="age_Type"/>
    </xs:schema>

    方式二

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:simpleType name="price_Type">
            <xs:restriction>
                <xs:simpleType>
                    <xs:restriction base="xs:decimal">
                        <xs:fractionDigits value="2"/>
                        <xs:totalDigits value="5"/>                    
                    </xs:restriction>
                </xs:simpleType>            
                <xs:maxInclusive value="100"/>
                <xs:minInclusive value="0"/>
            </xs:restriction>
        </xs:simpleType> 
        <xs:element name="price" type="price_Type"/>
    </xs:schema>

    (base.xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <age xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="base.xsd">
        34
    </age>

     (3)指定类型的两种方式

    ->指定type类型

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="books" type="xs:string"/>
        <xs:element name="开始日期" type="xs:date"/>
        <xs:attribute name="price" type="xs:double"/>
        <xs:attribute name="islast" type="xs:boolean"/>    
    </xs:schema>

    ->使用子元素

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="books">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:enumeration value="疯狂Java讲义"/>
                    <xs:enumeration value="轻量级Java EE企业应用实战"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
    </xs:schema>

    (4)长度约束

    <xs:length value="5" />
    <xs:maxLength value="20" />
    <xs:minLength value="0" />

    (5)精度约束

    <xs:simpleType name="price_Type">
            <xs:restriction base="xs:decimal">
                <!-- 最多5位数,小数点后最多2位数 -->
                <xs:fractionDigits value="2"/>
                <xs:totalDigits value="5"/>
                <!-- 最大值500 -->
                <xs:maxInclusive value="500"/>
            </xs:restriction>
        </xs:simpleType> 

    (6)枚举约束

    <xs:simpleType name="地址_Type">
            <xs:restriction base="xs:token">
                <!-- 列出多个有效的枚举值 -->
                <xs:enumeration value="广州"/>
                <xs:enumeration value="上海"/>
            </xs:restriction>
        </xs:simpleType>

    (7)正则表达式

    <xs:simpleType name="price_Type">
            <xs:restriction base="xs:decimal">
                <!-- 必须匹配1XX.X的格式 -->
                <xs:pattern value="1d{2}.d"/>
            </xs:restriction>
        </xs:simpleType> 

    (8)空白处理

    <!--whiteSpace可以接受的值
    presver:保留值里边的空白
    replace:将值里出现的所有的空白都替换成空格
    collpase:先执行replace,在去掉前后的空格,并将中间的多个连续的空格压缩成一个
    -->
    <xs:simpleType name="price_Type">
            <xs:restriction base="xs:decimal">
                <!-- 下面的whiteSpace约束的值只能是collapse -->
                <xs:whiteSpace value="collapse"/>
            </xs:restriction>
        </xs:simpleType> 
        <!-- 定义price元素,其类型是price_Type -->
        <xs:element name="price" type="price_Type"/>    
        <xs:element name="简要介绍">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <!-- 为string类型增加collapse约束,相当于token -->
                    <xs:whiteSpace value="collapse"/>
                    <!-- 指定字符串长度只能为5 -->
                    <xs:length value="5"/>
                </xs:restriction>
            </xs:simpleType>    
        </xs:element>

    (9)使用list派生列表类型

    <xs:simpleType name="age_list_Type">
            <xs:list>
                <xs:simpleType>
                    <xs:restriction base="xs:int">
                        <xs:minExclusive value="0"/>
                        <xs:maxExclusive value="100"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:list>
        </xs:simpleType>
        <!-- 定义age_list_Type类型的元素 -->
        <xs:element name="age_list" type="age_list_Type"/>

    (10)限制列表约束

    ---长度约束:Length。maxLength。minLength

    ---枚举约束:enumeration

    ---正则表达式约束:pattern

    ---空白处理:whiteSpace(约束值只能是collapse)

    (11)使用union派生联合类型

    <xs:simpleType name="price_Type">
            <xs:restriction base="xs:decimal">
                <xs:maxExclusive value="100"/>
                <xs:minExclusive value="0"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="publish_date_Type">
            <xs:restriction base="xs:date">
                <xs:minExclusive value="2007-01-01"/>
                <xs:maxExclusive value="2009-12-31"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="price_publish_Type">
            <!--此时price_name的值可以是price_Type也可以是publish_date_Type-->
            <xs:union memberTypes="price_Type publish_date_Type"/>
        </xs:simpleType>
        <xs:element name="price_name" type="price_publish_Type"/>

    (12)阻止派生新的简单类型

    --->使用final属性

    --->为约束指定fixed属性

    (13)合并多个Schema

    ---->使用include元素

    ---->使用redefine元素

    ---->使用import元素

  • 相关阅读:
    UIAutomator简介
    初识Anrdiod SDK
    Andriod App类型简介
    Mybatis之collection嵌套查询mapper文件写法
    Ubuntu16.04 启动纯文本界面方法
    Ubuntu16.04网络不能访问解决办法
    JavaScript之简易http接口测试工具网页版
    SpringBoot之修改单个文件后立刻生效
    JavaScript之Json的使用
    Ajax之Jquery封装使用举例2(Json和JsonArray处理)
  • 原文地址:https://www.cnblogs.com/nolonely/p/3496657.html
Copyright © 2020-2023  润新知