天天看点

schema学习笔记

学习了schema,记录下来,供日后翻看和大家学习交流。

schema文件是约束xml文件格式的约束文档,后缀为.xsd;以schema文件约束的.xml文件为实例文档。

这里先贴上一个例子:

book.xsd:一个schame约束文档

<?xml version="1.0" encoding="UTF-8" ?> 
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"       
            targetNamespace="http://www.itcast.cn" 
            elementFormDefault="qualified">
  <xs:element name='书架' ><!--定义一个标签:书架-->
   <xs:complexType><!--复合类型-->
     <xs:sequence maxOccurs='unbounded'><!--序列,数量没有上限,表示标签书的数量没有上限-->
      <xs:element name='书' >  <!--定义一个标签:书-->
       <xs:complexType><!--复合类型-->
        <xs:sequence><!--序列-->
         <!--类型定义为String,有很多类型int,date...-->
         <xs:element name='书名' type='xs:string' />
         <xs:element name='作者' type='xs:string' />
         <xs:element name='售价' type='xs:string' />
        </xs:sequence>
       </xs:complexType>
     </xs:element>
    </xs:sequence>
   </xs:complexType>
  </xs:element>
 </xs:schema>
           

book.xml实例文档:以book.xsd为约束的xml文件

<?xml version="1.0" encoding="UTF-8"?>
    <书架 xmlns="http://www.itcast.cn"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=“http://www.itcast.cn book.xsd">
        <书>
            <书名>JavaScript网页开发</书名>
            <作者>redarmy</作者>
            <售价>28.00元</售价>
        </书>
    </书架>
           

标签我就不详细说明了,网上太多;主要记录几个重要的属性,这里主要说的是schema规范。

1.对于任何xml文件,都应该有schema文件对其定义;

2.在schame文件中,所有的标签都是w3c定义的;

1.属性targetNamespace:

所有的schema文件都应该有一个id,也就是namespace,用属性targetNamespace来定义,是个url,一般不存在这个url。

2.属性elementFormDefault:

是一个枚举值,qualified所有标签有约束;unqualified只有根标签有约束。

3.属性xmlns:

3.1.用来引入一个schema约束文档;

如果sachema是w3c定义的,属性值固定:http://www.w3.org/2001/XMLSchema;

如果不是w3c定义的,必须指定schema文件的位置,对应的schema文件的namespace值;

3.2.所以,对于book.xsd来说,其schema约束文档时w3c定义的,所以属性值为http://www.w3.org/2001/XMLSchema;

而对于book.xml来说,其schema约束文档是book.xsd文档,所以属性值为book.xsd文档的namespace:http://www.itcast.cn;

3.3.如果xmlns后面跟了别名,比如book.xsd文档的xmlns:xs,则这个xmlns引入的schema文档约束的所有标签都要加这个别名

4.属性schemaLocation:

用来指定schema文件的位置,一般是schema文件的namespace schema约束文件名(注意有个空格)。

5.还需要xmlns引入一个约束属性schemaLocation的文件,地址固定:

http://www.w3.org/2001/XMLSchema-instance

如果这里把xmlns加一个别名,那么book.xml的写法为:

<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=“http://www.itcast.cn book.xsd">
    <itcast:书>
        <itcast:书名>JavaScript网页开发</itcast:书名>
        <itcast:作者>redarmy</itcast:作者>
        <itcast:售价>28.00元</itcast:售价>
    </itcast:书>
</itcast:书架>