`

XML Schema的定义

阅读更多

XSDLXML Schema定义语言由元素、属性、命名空间和XML文档种的其他节点构成的。

一、XSD中的元素

 

XSD文档至少要包含:schema根元素和XML模式命名空间的定义、元素定义。

 

1schema根元素

 

语法如下:

<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>

</xsd:schema>

 

XSD中必须定义一个且只能定义一个schema根元素。根元素中包括模式的约束、XML模式命名空间的定义,其他命名空间的定义、版本信息、语言信息和其他一些属性。

 

2、元素

 

语法如下:

<xsd:element name=”user” type=”xsd:string” />

 

XSD中的元素是利用element标识符来声明的。其中name属性是元素的名字,type属性是元素值的类型,在这里可以是XML Schema中内置的数据类型或其他类型。

 

例子:

<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”user” type=”xsd:string” />

</xsd:schema>

以上文档对应的有效XML文档如下:

<?xml version=”1.0”?>

<user>string</user>

 

在元素的定义中还有2个属性:minOccursmaxOccurs。其中minOccurs定义了该元素在父元素中出现的最少次数(默认为1,值为大于等于0的整数),maxOccurs定义了该元素在父元素中出现的最多次数(默认为1,值为大于等于0的整数)。在maxOccurs中可以把值设置为unbounded,表示对元素出现的最多次数没有限制。

 

例子:

<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema>

    <xsd:element name=”user” type=”xsd:string” minOccurs=”0” maxOccurs=”unbounded” />

</xsd:schema>

 

表示为元素user的类型为string,出现的次数最少为0(也就是可选),最多不限制。

 

3、引用元素和替代

 

语法如下:

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”user” type=”xsd:string” />

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:sequence>

                <xsd:element ref=”user” />

            </xsd:sequence>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

引用是利用element标记符的ref属性实现的。主要适用于避免在文档中多次定义同一个元素,应当将经常使用的元素定义为根元素的子元素,以便在文档的任何地方引用它。

 

在这里还可以为某个定义的元素起一个别名(偶的理解^o^),方法如下:

 

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”yonghu” type=”xsd:string” substitutionGroup=”user” />

    <xsd:element name=”user” type=”xsd:string” />

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:sequence>

                <xsd:element ref=”user” />

            </xsd:sequence>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

以上文档对应的有效XML文档如下:

 

<?xml version=”1.0”?>

<name>

    <user>string</user>

</name>

或者:

<?xml version=”1.0”?>

<name>

    <yonghu>string</yonghu>

</name>

 

主要是利用element标识符中的属性substitutionGroup实现的。

 

4、设置默认值和固定值

 

语法如下:

<xsd:element name=”city” type=”xsd:string” default=”xian” />

<xsd:element name=”country” type=”xsd:string” fixed=”china” />

 

通过default属性的设置,可以在XML文档中没有对city元素定义时赋予默认值。而使用fixed属性,可以给元素country设定一个固定的值china,并且不允许改变!

 

5、利用组合器控制结构

 

sequence组合器,定义了一列元素必须按照模式中指定的顺序显示(如果是可选的,也可以不显示)。语法如下:

 

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:sequence>

                <xsd:element name=”first” type=”xsd:string” />

                <xsd:element name=”middle” type=”xsd:string” />

                <xsd:element name=”last” type=”xsd:string” />

           </xsd:sequence>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

all组合器,允许所定义的元素可以按照任意顺序显示,all元素的子元素在默认情况下是必须的,而且每次最多显示一次。语法如下:

 

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:all minOccurs=”0”>

                <xsd:element name=”first” type=”xsd:string” />

                <xsd:element name=”middle” type=”xsd:string” />

                <xsd:element name=”last” type=”xsd:string” />

            </xsd:all>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

choice组合器,允许指定多组声明中的一个,用于互斥情况。语法如下:

 

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:choice>

                <xsd:element name=”first” type=”xsd:string” />

                <xsd:element name=”middle” type=”xsd:string” />

                <xsd:element name=”last” type=”xsd:string” />

            </xsd:choice>

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

二、定义属性

 

XML Schema文档中可以按照定义元素的方法定义属性,但受限制的程度较高。它们只能是简单类型,只能包含文本,且没有子属性。可以应用在attribute元素定义中的属性如下:

default    初始默认值

fixed      不能修改和覆盖的属性固定值

name     属性的名称

ref         对前一个属性定义的引用

type      该属性的XSD类型或者简单类型

use        如何使用属性

form      确定attributeFormDefault的本地值

id          模式文档中属性唯一的ID

 

Defaultfixednamereftype属性与在element标记中定义的对应属性相同,但type只能是简单类型。Use属性的值可以是:optional(属性不是必须的,此为默认属性)、prohibited或者required(属性是强制的)。

 

1、创建属性

 

语法如下:

<xsd:attribute name=”age” type=”xsd:integer” />

 

该语句定义了一个名为age的属性,它的值必须是一个整数。把它添加到模式中时,它必须时schema元素、complexType元素或者attributeGroup元素的子元素。

 

例子:

<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <xsd:element name=”name”>

        <xsd:complexType>

            <xsd:sequence>

                <xsd:element name=”first” type=”xsd:string” />

            </xsd:sequence>

            <xsd:attribute name=”age” type=”xsd:integer” use=”optional” />

        </xsd:complexType>

    </xsd:element>

</xsd:schema>

 

以上文档对应有效的XML文档如下:

 

<?xml version=”1.0”?>

<name age=”27”>

    <first>string</first>

</name>

 

如上所示,要把属性附加在元素上,属性应该在complexType定义中的组合器之后定义或引用。

分享到:
评论

相关推荐

    XML Schema简明教程-W3C.rar

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML ...

    XML应用开发(软件品牌)-1期 第3单元 单元项目实践-使用XML Schema定义描述网上订单信息的XML标签.doc

    XML应用开发(软件品牌)-1期 第3单元 单元项目实践-使用XML Schema定义描述网上订单信息的XML标签.doc 学习资料 复习资料 教学资源

    XML应用开发(软件品牌)-1期 第3单元 单元案例-使用XML Schema定义描述图书馆藏书信息的XML标签.doc

    XML应用开发(软件品牌)-1期 第3单元 单元案例-使用XML Schema定义描述图书馆藏书信息的XML标签.doc 学习资料 复习资料 教学资源

    XmlSchema标准参考手册.chm

    XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义). -------------------------------------------------------------------------------- What You Should Already Know 你应该已经掌握的...

    XML Schema教程

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强 大,以及如何在您的应用程序中使用 XML ...

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

    本文展示了模式的灵活性,说明如何使用XML Schema系统来定义最基本的XML文档构造块——元素。XML Schema比DTD更强大。为了说明XML Schema机制的强大功能,本文用三个程序清单简要比较了表示元素的不同方式。

    XML Schema 教程(word版本)

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML ...

    XML Schema

    XML Schema是以XML语言为基础的,它用于可替代DTD。 一份XML schema文件描述了XML文档的结构。 XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义).

    XML - 实验(2) -- Schema

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

    xml(schema定义)

    总结了使用schema定义xml文档的大部分内容。

    《XML》实验(2) -- Schema

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

    JSON-Schema定义规范

    熟悉XML的开发人员都知道,对XML文档的定义有一个XML Schema。同样,对于JSON文件的定义,也应该有一个JSON Schema以规范JSON文件内容。IETF负责起草相关规范最新版本是2018年3月19日发布的Draft 7。JSON Schema用以...

    论文研究-一种Schema驱动生成用户界面的技术和实现.pdf

    由于XML Schema定义了用户输入数据的类型和结构,所以利用Schema自动生成用户界面,可以减少工程开发量,提高系统的灵活性。但是Schema所能表达的数据结构非常灵活和复杂,同时界面开发涉及大量人机交互细节和数据...

    XML Schema初窥

    • 了解XML Schema推荐标准 • 掌握XML Schema和DTD的区别 • 掌握元素和属性的声明 • 理解元素和属性的类型 • 掌握简单类型和复杂类型的定义 • 掌握模式与名称空间 • 掌握在实例中引用模式文档 • 了解注解 • ...

    xml实用教程_XML_Schema结构

    XML schema是DTD(文件类型定义)之后第二代用来描述XML文件的标准。是用来对XML文档的类型定义的语言,用来规定XML文档的数据类型及组织方式,同时还是丰富的元数据资源。

    武汉大学软工xml上机第二次作业Schema

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

    xmlbeans-3.0.1.jar【说明:JAVA、XML文档处理、数据绑定、数据解析、数据操作、Java对象转换】

    1. 基于XML Schema:xmlbeans-3.0.1.jar基于XML Schema定义,可以从XML Schema生成Java类,实现XML数据和Java对象之间的映射。 2. 灵活性:库提供了多种处理XML数据的方法,开发者可以根据需求选择最适合的方法。

    《XML》实验任务书 XML Schema 答案 解答

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

Global site tag (gtag.js) - Google Analytics