下面介绍全部是在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文件了。