schema 学习笔记

下面介绍全部是在eclipse中运行的

 

下面以user.xsd为例子说明

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.example.org/user"
	xmlns:tns="http://www.example.org/user" 
	elementFormDefault="qualified">
	
	<element name="user">
		<complexType>
			<sequence>
				<element name="id" type="int"></element>
				<element name="username" type="string"></element>
				<element name="born" type="date"></element>
			</sequence>
		</complexType>
	</element>
	
</schema>

 

1、如果是创建一个自定义的schema配置文件,则需要指明引入schema,就需要在第一个标签<schema>标签内添加 xmlns="http://www.w3.org/2001/XMLSchema" 这个是不能改变的。

 

2、<schema>标签内有targetNamespace,标示当前这个schema文件的命名空间,类似于java的包,如果其他xml文件需要引入这个schema文件,就是根据它来确定的。

 

3、<schema>标签内有xmlns:tns,指明当前schema文件的命名空间(因为当前schema文件的命名空间和引入的命名空间一致,如果不一致,则是引用其他schema文件)

 

 

eclipse如何让自己写的schema文件能够起作用,给出提示

window ---- preferences ---- xml catalog ---- 选中“user specified entries” --- 点击 add 按钮 ---- 选择 workspace(选择自己创建的schema文件)---- 最终会发现 location 和 key 这两个 "文本框"内有相关的值 ---- 最后点击确定  ---- 重启需要使用这个schema文件的 xml文件。

 

 

创建一个XML文件,引入自己创建的schema文件(如何引入)?

还是以上面的为例子,

<?xml version="1.0" encoding="UTF-8"?>
<user 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xmlns="http://www.example.org/user"
     xsi:schemaLocation="http://www.example.org/user ">
	<id>1</id>
	<username></username>
	<born>1999-9-9</born>
</user>

 

如果想让xml需要用schema来做校验,需要添加如下代码(引入schema):

//下面这个是固定的,引入schema

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

//xsi:schemaLocation是固定的,后面的内容是引入的schema文件的 targetNamespace

xsi:schemaLocation="http://www.example.org/user "

 

因为当前xml文件的命名空间是 xmlns="http://www.example.org/user" ,因此会找到 targetNamespace="http://www.example.org/user" 的schema文件,由于该schema文件的根节点是 user,因此这个xml文件的根节点就是user。

 

通过上面的赘述,基本上就能够完成eclipse利用自己写的schema文件来校验xml文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值