zoukankan      html  css  js  c++  java
  • 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元素

  • 相关阅读:
    面试题-酷家乐面试准备
    英语学习-第一次申请试译的小透明(未完待续)
    操作系统educative版本-笔记1
    周末日记-第一次相对正规的技术教学
    资料推荐-一个神奇的网站educative.io
    面试题-持续集成
    每天5分钟玩转容器技术-读书笔记-第六章
    每天5分钟玩转容器技术-读书笔记-第四章到第五章
    工作日记-文件柜驱动层开发总结
    DP套题练习1
  • 原文地址:https://www.cnblogs.com/nolonely/p/3496657.html
Copyright © 2011-2022 走看看