XML Schema 基础

【1】XML Schema  简介: (1)定义可出现在文档中的元素;

(2)定义可出现在文档中的属性;

(3)定义哪个元素是子元素;

(4)定义子元素的次序;

(5)定义子元素的数目;

(6)定义元素是否为空,或者是否可包含文本;

(7)定义元素和属性的数据类型;

(8)定义元素和属性的默认值以及固定值。

【2】初始创建Schema:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/NewSchema"
xmlns:tns="http://www.example.org/NewSchema" 
elementFormDefault="qualified">

(1)<schema> 元素是每一个 XML Schema 的根标签;

(2)"xmlns:xs="http://www.w3.org/2001/XMLSchema" :显示 schema 中用到的元素和数据类型来自命名空间 "xmlns="http://www.w3.org/2001/XMLSchema",同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs。

(3)targetNamespace="http://www.example.org/NewSchema":声明一个我们自己的命名空间。

(4)xmlns:tns="http://www.example.org/NewSchema" :默认的命名空间。

(5)elementFormDefault="qualified":指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

【3】在 XML 文档中引用 Schema: 

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xs
i="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/NewXMLSchema
 NewSchema.xsd"
xmlns="http://www.example.org/NewSchema">

(1)xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance":入我们的shema文档需要使用这个命名空间中的属性.

(2)xsi:schemaLocation="http://www.example.org/NewXMLSchema NewSchema.xsd ":使用上面引入的命名空间xsi中的schemalocation读取我们的schema文档,首先要填入我们的schema文档的命名空间的uri,然后空格,再填入我们的schema文档的名字。

(3)xmlns="http://www.example.org/NewSchema">:引入命名空间的方法,将我们的schema文档的命名空间引入。

【4】对简单元素内容的约束: (1)首先在我们要约束的元素中添加一个simpleType的标签;

(2)然后在simpleType中添加一个restricetion标签,这个标签中有一个重要的属性:base,需要填入我们这个信息类型是基于哪一种类型的;

(3)在restricetion标签中,我们就可以加入我们对信息内容的一个具体的约束了。

(4)在restricetion标签中,可以对信息进行枚举约束——enumeration;

例子:<element name="reason">
<simpleType>
<restriction base="string">
<enumeration value="查询成功"></enumeration>
<enumeration value="查询失败"></enumeration>
</restriction>
</simpleType>
</element>

(5)大小值的限定 mininclusive 设定最小值,这种包含最小值的
     minEnclusive 设定最小值,但是不包含最小值
     maxinclusive 设定最大值,包含最大值
             maxEnclusive 设定最大值,但是不包含最大值

例子:

<element name="root">
<simpleType>
<restriction base="integer">
<minInclusive value="20"></minInclusive>
<maxExclusive value="1000"></maxExclusive>
</restriction>
</simpleType>
</element>

(6)样式约束:
[a-zA-Z]这一位字符,在a-z的大小写中任选一个填入;
male|female这里需要多选一来填入信息内容;
([a-z][0-9])+  这里小写字母+一位数字的格式重复(可以1次可以多次).

【5】复合元素的约束: (1)首先我们在要约束的元素中添加一个complexType的标签;
(2) 然后我们要填入指示器(eq:sequence)。
(3) 添加子元素,子元素可以使复合元素也可以使简单元素。

【6】属性定义:简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的。

       格式:<xs:attribute name="xxx" type="yyy"/>   

xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。

属性的默认值和固定值 :<xs:attribute name="lang" type="xs:string" default="EN"/>——默认值“EN”

<xs:attribute name="lang" type="xs:string" fixed="EN"/>  ——固定值“EN”





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值