XMl Scheme学习地址:http://www.w3school.com.cn/schema/index.asp
XML Scheme示例
targetNamespace=“http://tempuri.org/XMLSchema.xsd",表明当前Scheme文档中定义的标签所在的命名空间
xmlns:xs=“http://www.w3.org/2001/XMLSchema",是XML Scheme标签suozai所在的命名空间
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" > </xs:schema>
Visual Studio 10 XML Scheme命名空间管理
打开Scheme
管理Scheme界面
MyEclipse XMl Scheme命名空间管理器
难以理解的知识点
一个节点比较多的XML Scheme可以定义在多个.xsd文件中。用import和include将多个.xsd中定义的Scheme导入到同一个文件及命名空间中来
import:
import的作用是将具有不同命名空间的Scheme导入进来。
DorisTestBasic.xsd
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://my.doris.net/test1" elementFormDefault="qualified" xmlns="http://my.doris.net/test1" xmlns:mstns="http://my.doris.net/test1" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:complexType name="plant"> <xs:sequence> <xs:element name="plant_name" type="xs:string"></xs:element> <xs:element name="height" type="xs:int"></xs:element> </xs:sequence> </xs:complexType> </xs:schema>
DorisTest.xsd
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://my.doris.net/test" elementFormDefault="qualified" xmlns="http://my.doris.net/test" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:test1="http://my.doris.net/test1" > <xs:import namespace="http://my.doris.net/test1" schemaLocation="DorisTestBasic.xsd"/> <xs:element name="personGroup" type="person"></xs:element> <xs:complexType name="person"> <xs:sequence> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="birth" type="xs:date"></xs:element> <xs:element name="local" type="xs:string"></xs:element> <xs:element name="gender" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> <xs:element name="plantGroup" type="test1:plant"></xs:element> </xs:schema>
text.xml
<?xml version="1.0" encoding="utf-8"?> <plantGroup xmlns="http://my.doris.net/test" xmlns:test1="http://my.doris.net/test1"> <test1:plant_name></test1:plant_name> <test1:height>10</test1:height> </plantGroup>
include:
include的作用是将命名空间相同的Scheme导入进来。
eg:
DorisTestBasic.xsd
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://my.doris.net/test" elementFormDefault="qualified" xmlns="http://my.doris.net/test" xmlns:mstns="http://my.doris.net/test" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:complexType name="plant"> <xs:sequence> <xs:element name="plant_name" type="xs:string"></xs:element> <xs:element name="height" type="xs:int"></xs:element> </xs:sequence> </xs:complexType> </xs:schema>
DorisTest.xsd
plantGroup Element用了DorisTestBasic.xsd中的plant作为type
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="http://my.doris.net/test" elementFormDefault="qualified" xmlns="http://my.doris.net/test" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:include schemaLocation="DorisTestBasic.xsd"/> <xs:element name="personGroup" type="person"></xs:element> <xs:complexType name="person"> <xs:sequence> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="birth" type="xs:date"></xs:element> <xs:element name="local" type="xs:string"></xs:element> <xs:element name="gender" type="xs:string"></xs:element> </xs:sequence> </xs:complexType> <xs:element name="plantGroup" type="plant"> </xs:element> </xs:schema>
text.xml
- 用DorisTestBasic.xsd中定义的元素
<?xml version="1.0" encoding="utf-8"?> <plantGroup xmlns="http://my.doris.net/test"> <plant_name></plant_name> <height>10</height> </plantGroup>
- 用DorisTest.xsd中的元素
<?xml version="1.0" encoding="utf-8"?> <personGroup xmlns="http://my.doris.net/test"> <name></name> <birth>1988-04-26</birth> <local></local> <gender></gender> </personGroup>