Schema 快速入门

定义schema:book.xsd

<xml version="1.0" encoding="UTF-8">
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
	targetNamespace="http://www.wangteng.com/bookSchema"
	elementDefault="qualified"
>
	<elemment name="书架">
		<complexType>
			<sequence maxOccurs="unbounded"> 
				<element name="">
					<complexType>
						<sequence maxOccurs="unbounded">
							<element name="书名" type="string" />
							<element name="作者" type="string" />
							<element name="定价" type="string" />
						</sequence>
					</complexType>
				</element>
			</sequence>
		</complexType>
	</element>
</schema>

引入定义的schema:

<xml version="1.0" encoding="UTF-8">
<书架 xmlns="http://www.wangteng.com/bookSchema"
	xmlns:wang="http://www.w3.org/2001/XMLSchema-instance"
	wang:schemaLocation="http://www.wangteng.com/bookSchema book.xsd"
>
	<>
		<书名>托勒密门扉<书名>
		<作者>(英)乔纳森·史特劳 <作者>
		<定价>32.80<定价>
	</>

</书架>

schema规范中:

  1. 所有的标签和属性都要有schema文件来定义
  2. 所有的schema文件都要有一个id,即namespace
  3. namespace的值由targetNamespace属性来决定,是一个url(很可能不存在)
  4. 如何引入一个schema:xmlns="(namespace值)"
  5. 如果引入的schema不是w3c组织定义,必须指定schema文件位置
  6. schema文件在什么位置由schemaLocation属性决定:schemaLocation="(namespace + 文件位置)"
  7. 如果引入了n个约束,至少要给n-1个取别名

取别名:
schemaLocation 属性由 "http://www.w3.org/2001/XMLSchema-instance" 这个约束文档来定义,所以要引入 xmlns="http://www.w3.org/2001/XMLSchema-instance",因为这个引入要区别于别的引入,所以起别名xmlns:wang="http://www.w3.org/2001/XMLSchema-instance",因为定义schemaLocation属性的文档起了别名,所以schemaLocation也要带上别名wang:schemaLocation=
如果xmlns="http://www.wangteng.com/bookSchema" 起别名改为 xmlns:teng="http://www.wangteng.com/bookSchema",那么由"http://www.wangteng.com/bookSchema"所定义的标签也要加上别名,如<书架> 改为 <teng:书架><书> 改为 <teng:书>

几个重要属性:

  1. namespace:相当于schema文件的id
  2. targetNamespace:用来指定schema文件的namespace的值
  3. xmlns:引入一个约束,它的值是一个schema文件的namespace值
  4. schemaLocation:用来指定引入的schema文件的位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值