一、Schema文件的部分元素及属性说明:
1、targetNamespace
可以使用targetNamespace 属性将默认命名空间中的元素和属性放入不同的命名空间。还可以指定在显示局部声明的架构元素和属性时,是否应由命名空间限定(使用前缀显式限定或默认隐式限定)。
2、elementFormDefault(同样的还有attributeFormDefault)
MSDN中elementFormDefault 属性的解释:
在该架构的目标命名空间中声明的元素的形式。该值必须是下列字符串之一:qualified
或 unqualified。默认值为 unqualified。
如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的元素。
如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的元素。
具体的可以参考下面的贴子:
http://www.xml.org.cn/dispbbs.asp?BoardID=23&id=25672&replyID=17053&star=1&skin=0
3、import
将其他的Schema文件包含进来。其中,schemaLocation要素指明文件相对路径,namespace要素指明目标命名空间。
二、编码建议示例:
Xsd_1.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.temp.com/XSD_1"
xmlns:xsd1="http://www.temp.com/XSD_1"
xmlns:xsd2="http://www.temp.com/XSD_2"
elementFormDefault="qualified">
<xs:import
namespace="http://www.temp.com/XSD_2"
schemaLocation="xsd_2.xsd"
/>
<xs:element name="child">
<xs:complexType>
<xs:sequence>
<xs:element ref="xsd1:child" />
<xs:element ref="xsd1:Field" />
<xs:element ref="xsd1:Value" />
<xs:element ref="xsd2:Field"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Field">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Beautal"
/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Value">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="JD
000000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
Xsd_2.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.temp.com/XSD_2"
xmlns="http://www.temp.com/XSD_2"
elementFormDefault="qualified">
<xs:element name="Field">
<xs:complexType>
<xs:sequence>
<xs:element ref="Value"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Value">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CU
0101757" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
三、总结
在Schema文件编写中,建议使用目标命名空间,即targetNamespace 。如:在xsd_2.xsd中,可以在“xs:schema”节点中这样写:
targetNamespace="http://www.temp.com/XSD_2"
之后在xsd_1.xsd文件中引用xsd_2.xsd文件的时候,可以这样写:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.temp.com/XSD_1"
xmlns:xsd1="http://www.temp.com/XSD_1"
xmlns:xsd2="http://www.temp.com/XSD_2"
elementFormDefault="qualified">
<xs:import namespace="http://www.temp.com/XSD_2" schemaLocation="xsd_2.xsd" />
……
</xs:schema>
其中,xmlns:xsd2="http://www.temp.com/XSD_2"表示引用xsd_2.xsd中的命名空间,同时需要注意的是必须使用<xs:import
/>标签将xsd_2.xsd文件导入。
另外,为了方便的使用所有的命名空间,建议为每个引用的命名空间赋给一个唯一的前缀,如上xmlns:xsd2="http://www.temp.com/XSD_2"的“xsd2”, xmlns:xsd1="http://www.temp.com/XSD_1"中的“xsd1”。这样,在引用其中的元素的时候可以这样调用:
……
<xs:element ref="xsd1:child" />
<xs:element ref="xsd1:Field" />
<xs:element ref="xsd1:Value" />
<xs:element ref="xsd2:Field"
/>
……
由于使用了命名空间,建议将elementFormDefault设为"qualified",原因参考元素介绍。
附件为两个xsd文件
分享到:
相关推荐
数字化变电站标准IEC 61850的变电站描述语言SCL采用XML标准,这是该XML语言的模板(Schema)文件。
XSD根据xml生成schema文件
IEC61850 SCL文件Schema校验 1、支持Schema1.0和Schema2.0版本 2、支持自定义Schema版本 3、支持信息输出,格式包括PDF,CSV,TXT
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
新的XML Schema系统即将成为W3C推荐标准,目的是为了克服DTD的局限性,为XML文档提供丰富的语法结构。本文展示了模式的灵活性...为了说明XML Schema机制的强大功能,本文用三个程序清单简要比较了表示元素的不同方式。
schema简单文件编写 课程资源 简单代码
java中实现xmlschema验证文件借鉴.pdf
1、资源内容:详细描述和解析说明S1000D4.0版本下各类数据中元素和属性标签的使用场景和使用原则方法 2、使用/学习目标:通过学习,可以有效加深和理解各类元素属性标签的使用情况,有助于手册数据编制过程和相关...
定义元素和属性的默认值以及固定值 XML Schema 是 DTD 的继任者 我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。 理由如下: XML Schema 可针对未来的需求进行扩展 XML Schema 更完善,功能更强大 XML...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
REVISION HISTORY FOR THE SCL REVISION "2007B2" (Ed. 2.1) FROM February 1, 2014. BASED on SCL 2007B (released 2014-01-22).
[实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法
这就方便了用户和开发者,因为可以使用相同的工具来处理XML Schema和其他XML信息,而不必专门为Schema使用特殊工具。Schema简单易懂,懂得XML语法、规则的人都可以立刻理解它。Schema 的概念提出已久,但W3C的标准...
一个控制台程序和库,用于从XML Schema文件生成兼容XmlSerializer的C#类。
NULL 博文链接:https://fcxx182.iteye.com/blog/640156
命名空间 dtd文件、Schema文件 (xsd)文件的引入1
schema文件详解: XML Schema 简介 为什么要使用 XML Schema? 如何使用 XSD? XSD 简易元素 XSD 属性 XSD 限定 / Facets XSD 复合元素
dubbo.xsd, dubbo的schema离线文件,添加到本地解决eclipse报错