XML-Schema约束

本文详细介绍了XML Schema约束的使用,包括最简单的Schema文档创建、含子元素和孙元素的定义、相同子元素数量的限制、可选项子元素的设置、自定义简单类型以及属性的定义。通过示例和解释,阐述了XML Schema在结构化数据约束和验证中的应用。
摘要由CSDN通过智能技术生成

XML-Schema约束

  1. XML是一种可扩展标记语言,用于标记电子文件使其具有结构性的标记语言
  2. 可以用来标记数据、定义数据类型
  3. 是一种允许用户对自己的标记语言进行定义的源语言
  4. 可扩展标记语言是标准通用标记语言的子集,非常适合 Web 传输。

先从最简单的入手

1.最简单的Schema文档

如何写一个最简单的XML Schema文档呢?
首先,我们写出一个最简单的XML文档。
First.xml


<?xml version="1.0" encoding="UTF-8"?>
<greeting>Hello World</greeting>
<!-- 有一个根元素:greeting;且这个元素不含属性,无子元素,内容是字符串 -->

First.xsd


<?xml version="1.0" encoding="UTF-8"?>
<!-- 命名空间 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="greeting" type="xsd:string"></xsd:element>
</xsd:schema>

XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间xmlns:xsd="http://www.w3.org/2001/XMLSchema,用元素定义实例文档中的元素,如greeting。
所有的属性均作为简易类型来声明。
简易元素指那些仅包含文本的元素。它不会包含任何其他的元素或属性。
简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型

2.含子元素的Schema文档

实例文档如下
First.xml


<?xml version="1.0" encoding="UTF-8"?>
<First2>
	<name>teike</name>
	<address>No.123,Road waitan,Shanghai</address>
</First2>

First.xsd


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="First2">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="name" type="xsd:string"></xsd:element>
				<xsd:element name="address" type="xsd:string"></xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

实例文档customer.xml中,元素含有两个子元素,所以我们在Schema文档中采用ComplexType来定义该元素。sequence表示子元素依次出现的顺序。

3.含子元素和孙元素的Schema文档

比上面复杂点的实例文档
First3.xml


<?xml version="1.0" encoding="UTF-8"?>
<First3>
	<name>Teike</name>
	<address>
		<prefecture>hunan</prefecture>
		<city>changsha</city>
		<street>Meixihu Road,No.123</street>
	</address>
</First3>

First3.xsd


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="First3">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="name" type="xsd:string"></xsd:element>
				<xsd:element name="address">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="prefectrue" type="xsd:string"></xsd:element>
							<xsd:element name="city" type="xsd:string"></xsd:element>
							<xsd:element name="street" type="xsd:string"></xs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值