`

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文件

    SCL Schema 文件是SCL语言的结构定义,它规定了XML文件的元素、属性、数据类型和约束。这些文件是理解并正确创建符合IEC 61850标准的SCL文件的关键。以下是对压缩包中各个文件的详细解释: 1. **SCL_IED.xsd**:IED...

    手动添加schema文件

    手动添加schema文件是一项重要的数据库管理工作,尤其对于开发者和系统管理员来说。Schema在数据库中可以被理解为一种蓝图,它定义了数据库的结构、表格、列、索引和其他对象。在本篇文章中,我们将深入探讨手动添加...

    XSD根据xml生成schema文件

    你需要为XML文档中的每个元素和属性创建相应的定义,并指定它们的数据类型、是否可选、最大出现次数等属性。 3. **定义命名空间**:如果XML文档中涉及到命名空间,你还需要在XSD中定义相应的命名空间。这通常通过`...

    XML基础实例 Schema

    3. **元素和类型**:在Schema中,可以定义元素的类型,如简单类型(仅包含文本)和复杂类型(包含子元素和属性)。简单类型可以基于内置的数据类型(如字符串、整数、浮点数)或者自定义数据类型。复杂类型允许定义...

    理解XML Schema XML Schema进阶

    目标命名空间扮演了一个非常重要的角色,当我们想去检查一个实例文档是否与一个或者多个模式文档相符合时,我们需要确定在模式定义中声明和定义的哪些元素和属性应该被用来检查在实例文档中的元素和属性。...

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

    命名空间、DTD 文件和 Schema 文件的引入 在 XML 文档中,命名空间...命名空间、DTD 文件和 Schema 文件都是 XML 文档中的重要组成部分,它们可以用于约束 XML 文档的内容,确保 XML 文档的正确性和一致性。

    XMLSchema经典例题

    例如,你可以定义一个元素`book`,它包含`title`和`author`两个属性,且两者都是必需的。 6. **模式和模式组合**:XML Schema支持模式(schema)的组合,可以将多个小的模式组合成一个大的模式,便于管理和重用。...

    XML的schema部分代码

    2. **元素和属性的约束**:XML Schema允许我们定义元素和属性的存在性、顺序、重复次数以及它们的值域,从而控制XML文档的结构。例如,可以指定某个元素是必需的还是可选的,或者限制其内容只能是特定的值。 3. **...

    xmlschema实验及答案.doc

    1. 可扩展性:XML Schema提供了一种灵活的方式来定义XML文档的结构,可以根据需要添加或删除元素和属性。 2. 可读性:XML Schema文件使用XML语法,易于阅读和理解。 3. 可重用性:XML Schema文件可以在多个XML文档中...

    XSD-生成xml schema文件

    在XSD中,每个元素都有一个唯一的名称,并可以定义其类型、是否可重复出现等特性。 2. 属性(Attribute):附属于元素的额外信息,通常用来提供额外的元数据。属性也可以有预定义或自定义的数据类型。 3. 数据类型...

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

    在这个例子中,XSD定义了一个名为`students`的根元素,它包含一个或多个名为`student`的子元素,每个`student`元素包含一个`name`和一个`age`元素。 7. **XML Namespace**: XSD和XML文档都使用了命名空间来避免元素...

    采用MyEclipse创建Schema,并基于Schema生成XML文件

    这些元素和属性的类型都是字符串。 以下是创建Schema文件的步骤: 1. 在MyEclipse中,选择工程,然后右键点击"New" -&gt; "Other"。 2. 在弹出的对话框中,找到"MyEclipse"下的"XML",然后选择"XML Schema",点击...

    XML学习 练习SCHEMA

    2. **XML SCHEMA元素定义**:元素是XML文档的基本构建块,SCHEMA允许定义元素的名称、类型、出现次数(可选、单个或多个)、子元素和属性等。 3. **数据类型**:SCHEMA提供了一套内置数据类型,如字符串、整数、...

    一个简单的schema讲解小例子(源码)

    例如,它可能定义了一个元素`book`,包含子元素如`title`、`author`和`price`,并指定了这些元素的数据类型。通过这种方式,Schema为XML文档提供了验证规则。 接下来,我们可能还会发现一些`.xml`文件,它们是按照...

    根据xml schema生成xml

    XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data type),这些元素和属性规定了XML文档的结构。例如,`&lt;element&gt;`定义了一个命名的XML节点,可以是文档中的一个节点或子节点;`...

    一个简单的XML Schema的例子

    XML Schema中的复杂类型允许包含元素和属性,可以嵌套其他元素,或者与其他元素的属性关联,提供了更丰富的结构描述能力。简单类型则不包含元素和属性,只定义基本的数据类型,如字符串、整数、浮点数等。 总的来说...

    通过Schema验证XML格式是否正确

    XSD文件使用XML语法来创建,可以指定元素、属性、数据类型、顺序和重复性等约束。 2. **XML文档验证**:在处理XML数据时,验证是非常重要的一步,确保数据符合预先设定的规则。通过Schema验证,可以检查XML文档是否...

    XMLSchema.chm

    通过使用命名空间,不同的XML文档或Schema可以共享相同的元素和属性名称,而不会产生混淆。 5. **约束和验证**:XML Schema提供了强大的约束机制,包括最大出现次数、最小出现次数、长度、模式匹配等,这些约束用于...

    swift pain报文schema文件

    Swift PAIN报文是SWIFT(Society for Worldwide Interbank Financial ...不同版本的schema文件可能包含针对新业务需求或监管要求的更新,因此理解和掌握这些文件对于在金融行业中实现高效、安全的支付处理至关重要。

Global site tag (gtag.js) - Google Analytics