浅谈XML-Schema

 

一、Schema介绍

      Schema是一种用于定义和描述XML文档结构与内容的模式语言,Schema的出现逐步取代了DTD,也很快被接受。

     Schema的优点:

   1、Schema符合XML语法结构。

   2、DOM、SAX、等XML API很容易解析出XML Schema文档中的内容。

   3、XML Schema对名称空间支持得非常好。

   4、XNL Schema定义约束能力非常强大,可以对XML实例文档做出细致的语义限制。

   5、Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。

  注意:

     Schema文件自身就是一个XML文件,但它的扩展名通常为  .xsd。

     一个XML Schema文档通常称为模式文档(约束文档),遵循这个文档书写的xml文件称为实例文档。

    编写一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URL地址上,在 Schema技术中有一个专业术语来描述这个过程,即把XML Schema 绑定到一个名称空间上,XML文件通过URI来解析引擎,xml文档中编写的元素来自哪里,被谁约束。

 

二、Schema入门

1、 Schema的创建

   一个有效的Schema文件的结构如此下:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Schema"
xmlns:tns="http://www.example.org/Schema" elementFormDefault="qualified">

                    <!--这里编写内容-->
</xs:schema>

Schema文件的声明部分。

元素“xs:schema”是整个Schema文件的根元素。

“xmlns”、“elementFormDefault”和“attributeFormDefault”都是Schema文件的属性,对整个Schema文件进行描述。

2、Schema类型的文件属性

  xmlns:xmlns是xhtml namespace的缩写,称为“命名空间” xmlns属性的值是一个URI或URL地址 xmlns属性不可缺少。

  targetNamespace:该属性的值是在xmlns已经定义好的命名空间中选择。该属性可有可无。

  elementFormDefault :用于指示子元素是否放到命名空间中,有“qualified”和“unqualified”两种取值。

   attributeFormDefault :用于指示是否把某个子元素的属性放到命名空间中,有“qualified”和“unqualified”两种取值。

3、Schema类型元素

   简单的类型元素主要有:simpleType、element、attribute、enumeration、pattern、union、list 7种元素类型。

   复杂的类型元素主要有: sequence、complexType、choice、simpleContent、extension、restriction、group、attributeGroup 8种类型元素。

4、名称空间的概念

    在Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间。名称空间用一个唯一的URI来表示。在XML文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。

   举一个简单的例子:

   <itcast:书架 xmlns:itcast="http://www.itcast.cn">

   <itcast:书>........<itcast:/书>

   </itcast:书架>

   说明:此处使用itcast来声明指向名称。

 5、使用名称空间引入Schema

  为了在一个XML文档中声明遵循的Schema文件的具体位置,通常需要在XML文档中的根节点中使用schemaLocation属性来指定,

  例如:

   <itcast:书架 xmlns:itcast=http://www.itcast.cn

         xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

         xsi:schemaLocation="http://www.itcast.cn.book.xsd'>

    schemaLocation此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的XMLschema的位置,两者之间用空格分隔。

    itcast : 解释书架来自itcast,那么itcast来自哪里呢

    itcast来自于: xmlns:itcast=”http://www.itcast.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值