首页 百科知识 文件数据类型的基础XM、Schema

文件数据类型的基础XM、Schema

时间:2024-10-15 百科知识 版权反馈
【摘要】:――XML Schema――>03:<file xmlns:xsi=“http://www.ancc.org.cn/2007/”04: xsi:noNamespaceSchemaLocation=“4-5.xsd”>05:<subject number=“1”>firest file</subject>06:<body>hello!表3-7续表除了拥有如此之多的数据类型外,XML Schema还允许使用者自己定义简单的数据类型。上例中的minInclusive和maxInclusive分别限制了定义类型的最小值和最大值。

XM L Schema

1.XM L Schema简介

XML Schema也称XSD(XML Schema Definition),是XML文件的一种验证机制,它的基本结构和XML文件并没有什么不同,同样严格地遵守了XML的语法规则。常用的XML元素如表3-5所示。


表3-5

img28

例3-6

XML文件:4-5.xml

01:<? xml Version=“1.0”encoding=“GB2312”>

02:<!――XML Schema――>

03:<file xmlns:xsi=“http://www.ancc.org.cn/2007/”

04: xsi:noNamespaceSchemaLocation=“4-5.xsd”>

05:<subject number=“1”>firest file</subject>

06:<body>hello!</body>

07:</file>

XSD文件:4-5.xsd

01:<? xml Version=“1.0”encoding=“GB2312”>

02:<!――XML Schema――>

03:<xsi:schema xmlns:xsi=“http://www.ancc.org.cn/2007/”>

04:<xsi:element name=“file”type=“xsd:string”>

05:<xsi:complexType>

06:<xsi:sequence>

07:<xsd: element name=“subject”type=“xsd: string”/>

08:<xsd:attribute name=“number”type=“xsd: string”/>

09:<xsd:element name=“body”type=“xsd:string”/>

10:</xsd:sequence>

11:</xsd:complexType>

12:</xsd:element>

13:</xsd:schema>

2.XM L Schema数据类型

作为一种可扩展的标记语言,XML支持很多数据类型,它的基本数据类型如表3-6所示。


表3-6

img29


续表

img30

除了上述表格中的基本数据类型以外,还有一些派生数据类型,见表3-7。


表3-7

img31


续表

img32

除了拥有如此之多的数据类型外,XML Schema还允许使用者自己定义简单的数据类型。用户可以使用simpleType自定义所需的数据类型,它的基本语法见下面的例子。

例3-7

01<schema xmlns:xs=‘http://www.w3.org/2001/XML Schema’>

02<simpleType name=‘typename1’>

03<restriction base=‘integer’>

04<minInclusive value=‘1’>

05<maxInclusive value=‘3’>

06</ restriction>

07</ simpleType>

08<element name=‘element’type=‘typename1’/>

09</schema>

上例中第2行name属性为用户定义属性的名称,第3行中的retriction元素可以用base属性定义一种simpleType元素的基础数据类型,retriction元素后面是对用户定义类型的一些限制。上例中的minInclusive和maxInclusive分别限制了定义类型的最小值和最大值。

用户定义之后的数据类型可以直接进行使用,如第8行元素element的数据类型就是用户新定义的数据类型。

表3-8中的元素为用户在定义数据类型时可以限定的一些细节。

表3-8

img33

pattern元素应用的例子如下:

例3-8

01<xsd:simpleType name=“phone”>

02<xsd:restriction base=“xsd:string”>

03<xsd:pattern value=“\d(3)-d\(8)”/>

04</ restriction>

05</ simpleType>

上例中定义的phone数据类型,需要符合后面模板即“\ d(3)-d\(8)”的定义。例如: 010—51183056。/d代表数字前段里为3位,后段里为8位,常用的正规语言见表3-9。


表3-9

img34


续表

img35

enumeration元素应用的例子如下:

例3-9

01<xsd:simpleType name=“color”>

02<xsd:restriction base=“xsd:string”>

03<xsd:enumeration value=“red”>

04<xsd:enumeration value=“yellow”>

05<xsd:enumeration value=“blue”>

06</ restriction>

07</ simpleType>

上例中定义的color数据类型的基础类型是string,可以选择的数据为red、yellow、blue中的一个。

3. comp lexType元素的使用

complexType元素用来声明xml文件中子元素或属性的名称和数据类型,它的子元素不能直接是element和attribute元素,而是一些功能指令,这些指令可以用来定义xml文件中的元素的出现顺序和次数,见表3-10。


表3-10

img36


续表

img37

这些指令的使用方法见下面的几个例子。

例3-10

01<xsd:element name=“red”type=“xsd:string”/>

02<xsd:element name=“yellow”type=“xsd:string”/>

03<xsd:element name=“blue”type=“xsd:string”/>

04<xs:complexType name=“color”>

05<xs:all>

06<xs: element ref=“red”minOccurs=“0”maxOccurs=“unbounded”/>

07<xs:element ref=“yellow”minOccurs=“1”maxOccurs=“1”/>

08<xs:element ref=“blue”minOccurs=“1”maxOccurs=“3”/>

09</xs:all>

10</xs:complexType>

上例中的三个子元素可以按任意顺序出现,ref属性指向了其他元素,minOccurs限定了元素出现的最少次数,maxOccurs限定了元素出现的最多次数。red元素可以不出现,也可以出现无穷多次; yellow元素可以且只能出现一次; blue元素最少出现一次,最多出现3次。sequence和choice指令的使用方式与all指令相近。

例3-11

01<xs:group name=“colorGroup”>

02<xs:sequence>

03<xsd:element name=“red”type=“xsd:string”/>

04<xsd:element name=“yellow”type=“xsd:string”/>

05<xsd:element name=“blue”type=“xsd:string”/>

06</xs:sequence>

07</xs:group>

group指令建立了一个名为colorGroup的组,在后面就可以直接对这个组进行引用了。

例3-12

01<xs:complexType name=“color”>

02<xs:sequence>

03<xs:group ref=“colorGroup”minOccurs=“1”maxOccurs=“1”/>

04</xs:sequence>

05</xs:complexType>

group元素使用了ref引用上面建立好的组,并限定了出现的顺序和出现的次数,组的建立必须在引用之前进行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈