`

Schema文件初探(几个重要的元素和属性)

阅读更多

一、Schema文件的部分元素及属性说明:

1targetNamespace

可以使用targetNamespace 属性将默认命名空间中的元素和属性放入不同的命名空间。还可以指定在显示局部声明的架构元素和属性时,是否应由命名空间限定(使用前缀显式限定或默认隐式限定)。

2elementFormDefault(同样的还有attributeFormDefault

MSDNelementFormDefault 属性的解释:

在该架构的目标命名空间中声明的元素的形式。该值必须是下列字符串之一:qualified unqualified。默认值为 unqualified

如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的元素。

如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的元素。

具体的可以参考下面的贴子:

http://www.xml.org.cn/dispbbs.asp?BoardID=23&id=25672&replyID=17053&star=1&skin=0

3import

将其他的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 Schema文件

    数字化变电站标准IEC 61850的变电站描述语言SCL采用XML标准,这是该XML语言的模板(Schema)文件。

    XSD根据xml生成schema文件

    XSD根据xml生成schema文件

    IEC61850 SCL文件Schema校验

    IEC61850 SCL文件Schema校验 1、支持Schema1.0和Schema2.0版本 2、支持自定义Schema版本 3、支持信息输出,格式包括PDF,CSV,TXT

    XML - 实验(2) -- Schema

    掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...

    使用XML Schema定义元素的基本知识

    新的XML Schema系统即将成为W3C推荐标准,目的是为了克服DTD的局限性,为XML文档提供丰富的语法结构。本文展示了模式的灵活性...为了说明XML Schema机制的强大功能,本文用三个程序清单简要比较了表示元素的不同方式。

    schema简单文件

    schema简单文件编写 课程资源 简单代码

    java中实现xmlschema验证文件借鉴.pdf

    java中实现xmlschema验证文件借鉴.pdf

    S10004.0版技术手册Schema元素属性使用详细说明

    1、资源内容:详细描述和解析说明S1000D4.0版本下各类数据中元素和属性标签的使用场景和使用原则方法 2、使用/学习目标:通过学习,可以有效加深和理解各类元素属性标签的使用情况,有助于手册数据编制过程和相关...

    XML Schema简明教程-W3C.rar

    定义元素和属性的默认值以及固定值 XML Schema 是 DTD 的继任者 我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。 理由如下: XML Schema 可针对未来的需求进行扩展 XML Schema 更完善,功能更强大 XML...

    关于Schema

    掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...

    IEC61850 第二版Schema文件

    REVISION HISTORY FOR THE SCL REVISION "2007B2" (Ed. 2.1) FROM February 1, 2014. BASED on SCL 2007B (released 2014-01-22).

    DTD和Schema规范XML文档

    [实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法

    一个简单的XML Schema的例子

    这就方便了用户和开发者,因为可以使用相同的工具来处理XML Schema和其他XML信息,而不必专门为Schema使用特殊工具。Schema简单易懂,懂得XML语法、规则的人都可以立刻理解它。Schema 的概念提出已久,但W3C的标准...

    dotnet-XmlSchemaClassGenerator从XMLSchema文件生成C类

    一个控制台程序和库,用于从XML Schema文件生成兼容XmlSerializer的C#类。

    手动添加schema文件

    NULL 博文链接:https://fcxx182.iteye.com/blog/640156

    命名空间 dtd文件、Schema文件 (xsd)文件的引入1

    命名空间 dtd文件、Schema文件 (xsd)文件的引入1

    Schema教材

    schema文件详解: XML Schema 简介 为什么要使用 XML Schema? 如何使用 XSD? XSD 简易元素 XSD 属性 XSD 限定 / Facets XSD 复合元素

    dubbo schema文件

    dubbo.xsd, dubbo的schema离线文件,添加到本地解决eclipse报错

Global site tag (gtag.js) - Google Analytics