初学XML Schema

前端之家收集整理的这篇文章主要介绍了初学XML Schema前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XML Schema是以Xml语言为基础,用于代替DTD的。一份XML Schema文件描述了XML文档的结构。一份XML Schema用来定义出现在文档里的元素,属性,子元素,子元素数量,子元素的顺序,元素是否能包含文本,还有元素的类型等。

一.Schema以及简单元素

在XML Schema中,新建一个以xsd为结尾的文件,<Schema>是每份XML Schema文件的根标签,在Schema标签添加命名空间,还有很多属性,然后再Schema中添加其它标签来对xml书写约束。我们一般会在<schema></schema>标签中加入一个根元素,规定以及此元素下的数据类型,还有该元素的名字,根元素例如,<element name="one" type="string"></element>,这个根元素的名字叫"one",它下面的数据类型为string。Schema自身有很多的类型,有String(字符),decimal(小数),integer(整数),Boolean(逻辑值),date(日期),time(时间)。在简单元素中如果要设定一个默认值,就用default来设定一个默认值在里面,如果要给这个元素加一个固定值,就用fixed来设定这个固定值。

二.将schema文档引入到需要约束的Xml文档中去。

新建一个xml文档,写一个根标签"one",在根标签"one"中加入<xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">。这是要引入我们的shema文档需要使用这个命名空间中的属性

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

在通过引入命名空间的方法,将我们的schema文档的命名空间引入,xmlns="http://www.feicui.org/feicuischema" 。

三.对简单元素的约束

首先需要在简单元素里添加一个<simpleType></simpleType>标签,再在此标签中加入一个<restricetion></restricetion>标签,需要在该标签中加入一个base属性,来规定此中放入的数据的类型。在<restricetion></restricetion>标签中加入我们所需要设定的约束。

而约束一般有,单个值的约束,可以用minInclusive和maxInclusive来约定该数字的最大和最小是多少。minInclusive是包含了该数,minElusive是不包含该数,这点max也是一样的。

还有枚举约束,在<restriction></restriction>标签中加入<enumerationvalue="值">,有多少个满足的数值就写多少个<enumeration>。

还有一种适合约束某个范围的约束方法,式样约束。在<restriction></restriction>中加入<pattern></pattern>标签,在标签里写value=“范围”。当然也可以用此方法来写或条件,例:<pattern value="male|female"></pattern>,表示输入male或者female的一个都是正确的,输入这两个数值以外的数值就会报错。在value中写"+""?""*"所代表的意思都不一样,例<pattern value="([a-z][0-9])+"></pattern> 这里小写字母+一位数字的格式重复(可以1次可以多次),而?则是0个或者多个,*则是0或者多个。

四.复合条件的约束

我们在要约束的元素中添加一个complexType的标签,然后再添加一个<sequence></sequence>指示器,然后再添加子元素,子元素可以是复合元素也可以是简单元素。依次进行不停的嵌入包裹所需要的子元素,子元素下也可以再嵌套子元素。

五.属性的定义

属性可以定义在<complexType>中,如若要在<simpleType>里面加,则需要在这个标签中使用simplecontent标签,其中使用extension标签,用来扩展我们的简单元素,添加属性

定义属性的格式为<attribute name="xxx" type="yyy" use="zzz"/>,属性的名字和属性的类型。属性定义中use表示这个属性是否需要出现在元素中,optional:可出现可不出现,prohibited:不能出现,required:必须出现。

六.顺序指示器

有三种指示器,sequence,call,choice。sequence:指定了子元素必须出现并且要按照定义的顺序依次出现。例:<sequence><item1></item1><intem2></item2></sequence>,在xml文件中输入的时候,就只能<item1></item1><item2></item2>顺序不能倒,否则出错。call:指定了子元素可以以任意顺序出现,只出现一次。choice:指定子元素中,仅可以出现一个(可以使用maxOccurs修改)。

六.数量指示器

和上面的顺序指示器不同的是,这种数量指示器不是以元素(标签)的形式出现,而是以子元素的方式出现,用minOccurs 设置出现的最次数;maxOccurs设置出现的最次数

猜你在找的XML相关文章