Schema约束自定义xml中的标签并xml引用的详解

自定义xml标签:

book.xsd

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.hp.com/bookSchema"
    elementFormDefault="qualified">
    <element name="书架">
        <complexType>
            <sequence maxOccurs="unbounded">
                <element name="书">
                    <complexType>
                        <sequence>
                            <element name="书名" type="string" />
                            <element name="作者" type="string" />
                            <element name="售价" type="string" />
                        </sequence>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.hp.com/bookSchema"
    xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
    dd:schemaLocation="http://www.hp.com/bookSchema book.xsd">
    <书>
        <书名>JavaScript开发</书名>
        <作者>老佟</作者>
        <售价>28.00元</售价>
    </书>
</书架>

几个重要知识:

  1. namespace

相当于schema文件的id

  1. targetNamespace属性

用来指定schema文件的namespace的值

  1. xmlns属性

引入一个约束, 它的值是一个schema文件的namespace

  1. schemaLocation属性

用来指定引入的schema文件的位置

 

schema规范中:

1. 所有标签和属性都需要有schema文件来定义

2. 所有的schema文件都需要有一个id, 但在这里它叫namespace,

3. namespace的值由什么来指定?

targetNamespace属性来指定, 它的值是一个url(很有可能不存在)

4. 如何引入一个Schema约束?

属性? : xmlns属性

属性值: 对应的schema文件的id(namespace)

5. 如果引入的schema不是w3c组织定义, 必须指定schema文件的位置

6. schema文件的位置由什么属性来指定?

属性? : schemaLocation

属性值: namespace path

7. 如果引入了N个约束, 需要给n-1个取别名

   

猜你喜欢

转载自www.cnblogs.com/zxrxzw/p/11076170.html