`

xsd(XML Schema Definition)

    博客分类:
  • W3C
 
阅读更多

 

XSD(XML Schema Definition)是DTD(Document Type Definition)替代者的原因,

一是据将来的条件可扩展,

二是比DTD丰富和有用,

三是用XML书写,使用XML语法,结构比DTD简单的多,

四是支持数据类型,更容易地定义数据约束(data facets),验证数据 

五是支持命名空间。

 

XSD用途:

文档设计者可以通过XSD指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。

XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。

 

XSD例子:

<?xml version="1.0"?>

//<schema>是每一个XSD的根元素

//显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。

//同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

//被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: "http://www.w3school.com.cn"。

targetNamespace="http://www.w3school.com.cn"

//默认的命名空间是 "http://www.w3school.com.cn"。

xmlns="http://www.w3school.com.cn"

//任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定

elementFormDefault="qualified">

...

...

</xs:schema>

XML引用XSD例子://也可以只保留<note>,使用时通过JAXB来指定XSD

<?xml version="1.0"?>

//指定了默认命名空间的声明

<note xmlns="http://www.w3school.com.cn"

//指定XSD实例命名空间

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

//XSD位置

xsi:schemaLocation="http://www.w3school.com.cn note.xsd">

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

内建的数据类型

xs:string 

xs:decimal 

xs:integer 

xs:boolean 

xs:date 

xs:time 

XSD 简易元素:只包含文本的元素。它不会包含任何其他的元素或属性。

<xs:element name="lastname" type="xs:string"/>

<xs:element name="age" type="xs:integer"/>

<xs:element name="dateborn" type="xs:date"/> 

<xs:element name="color" type="xs:string" default="red"/>

<xs:element name="color" type="xs:string" fixed="red"/>

 

<lastname>Smith</lastname>

<age>28</age>

<dateborn>1980-03-27</dateborn>

 

XSD 属性

<xs:attribute name="lang" type="xs:string"/>

<lastname lang="EN">Smith</lastname>

XSD 限定(restriction)用于为 XML 元素或者属性定义可接受的值。对 XML 元素的限定被称为 facet。

对值的限定

<xs:element name="age">

<xs:simpleType>

 <xs:restriction base="xs:integer">

   <xs:minInclusive value="0"/>

   <xs:maxInclusive value="120"/>

 </xs:restriction>

</xs:simpleType>

</xs:element> 

对一组值的限定:枚举约束(enumeration constraint)。

<xs:element name="car">

<xs:simpleType>

 <xs:restriction base="xs:string">

   <xs:enumeration value="Audi"/>

   <xs:enumeration value="Golf"/>

   <xs:enumeration value="BMW"/>

 </xs:restriction>

</xs:simpleType>

</xs:element> 

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType"> //carType可以被共享使用。

 <xs:restriction base="xs:string">

   <xs:enumeration value="Audi"/>

   <xs:enumeration value="Golf"/>

   <xs:enumeration value="BMW"/>

 </xs:restriction>

</xs:simpleType>

对一系列值的限定:正则/模式约束(pattern constraint)。

<xs:simpleType>

 <xs:restriction base="xs:string">

   <xs:pattern value="[a-z]"/>

   //<xs:pattern value="[A-Z][A-Z][A-Z]"/>3个字母

   // <xs:pattern value="([a-z])*"/>

   //<xs:pattern value="male|female"/>

 </xs:restriction>

</xs:simpleType>

 

restriction的其他一级子元素

<xs:length value="8"/>

<xs:minLength value="5"/>

<xs:maxLength value="8"/>

//将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格)

<xs:whiteSpace value="collapse"/>

//移除所有空白字符(换行、回车、空格以及制表符):

<xs:whiteSpace value="replace"/>

//"XML处理器"不会移除任何空白字符--------"XML处理器",browser-HTML处理器------------

<xs:whiteSpace value="preserve"/>

XSD复合元素:

<xs:element name="employee" type="personinfo"/>

<xs:complexType name="personinfo">

 <xs:sequence>

   <xs:element name="firstname" type="xs:string"/>

   <xs:element name="lastname" type="xs:string"/>

 </xs:sequence>

</xs:complexType>

在已有的复合元素之上以某个复合元素为基础,然后添加一些元素:

<xs:element name="employee" type="fullpersoninfo"/>

<xs:complexType name="personinfo">

 <xs:sequence>

   <xs:element name="firstname" type="xs:string"/>

   <xs:element name="lastname" type="xs:string"/>

 </xs:sequence>

</xs:complexType>

<xs:complexType name="fullpersoninfo">

 <xs:complexContent>

   <xs:extension base="personinfo">

     <xs:sequence>

       <xs:element name="address" type="xs:string"/>

       <xs:element name="city" type="xs:string"/>

       <xs:element name="country" type="xs:string"/>

     </xs:sequence>

   </xs:extension>

 </xs:complexContent>

</xs:complexType>

XSD 复合类型指示器

<xs:complexType>

   <xs:sequence>

     <xs:element name="full_name" type="xs:string"/>

     <xs:element name="child_name" type="xs:string" maxOccurs="10" minOccurs="0"/>

   </xs:sequence>

  </xs:complexType>

 

 

Order 指示器:

All //子元素可以按照任意顺序出现,且每个子元素必须只出现一次

Choice //只能出现一个子元素 

Sequence 

Occurrence 指示器:

maxOccurs //某个元素可出现的最大次数

minOccurs 

Group 指示器:

Group name 

attributeGroup name 

XML例子:

<person>

<full_name>David Smith</full_name>

<child_name>Jogn</child_name>

<child_name>mike</child_name>

<child_name>kyle</child_name>

<child_name>mary</child_name>

</person>

Group例子:

<xs:group name="persongroup">

 <xs:sequence>

   <xs:element name="firstname" type="xs:string"/>

   <xs:element name="lastname" type="xs:string"/>

   <xs:element name="birthday" type="xs:date"/>

 </xs:sequence>

</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">

 <xs:sequence>

   <xs:group ref="persongroup"/> //与复合元素功能类似<xs:extension base="personinfo">

   <xs:element name="country" type="xs:string"/>

 </xs:sequence>

</xs:complexType>

 

 

XML Schema 

        描述 XML 文档的结构。DTD 替代者。同DTD一样,主要是为了约束xml格式,验证是否非法,规范读写xml。

        2001年成为 W3C 标准。也称作 XML Schema 定义(XML Schema Definition,XSD)。

        由 XML 编写。使用 XML 语法。不必学习新的语言 

                可使用 XML 解析器来解析 Schema 文件 

                可通过 XML DOM 来处理 Schema 

                可通过 XSLT 来转换 Schema

        web.xml,spring.xml采用schema

 

spring头文件schema示例解释        

        <beans xmlns="http://www.springframework.org/schema/beans" 

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"

                xsi:schemaLocation="        

                http://www.springframework.org/schema/beans 

                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        

                http://www.springframework.org/schema/aop 

                http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">        

 

        xmlns:声明默认的命名空间

                xmlns="http://www.springframework.org/schema/beans" 

                xmlns:aop="http://www.springframework.org/schema/aop"

        xmlns:xsi:声明XML Schema实例命名空间,并将xsi前缀与该命名空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。XML Schema实例命名空间的前缀通常使用xsi。

                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

        xsi:schemaLocation:关联:命名空间与模式位值

                xsi:schemaLocation="        

                http://www.springframework.org/schema/beans 

                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        

                http://www.springframework.org/schema/aop 

                http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" 

0
2
分享到:
评论

相关推荐

    XML Schema xsd XML Schema xsd

    &lt;note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/note.xsd"&gt; &lt;to&gt;George &lt;from&gt;John &lt;heading&gt;Reminder &lt;body&gt;Don't forget the meeting! ``` 对应的 ...

    XSD(XML Schemas Definition)

    XML Schema语言也就是XML Schema Definition (XSD)。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档...

    XML Schema简明教程-W3C.rar

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

    XML Schema教程

    XML Schema 的完整名称为 XML Schema Definition (XSD)。 - **XML Schema 与 DTD 的区别**:XML Schema 被认为是 Document Type Definition (DTD) 的继承者。与 DTD 相比,XML Schema 提供了更多的灵活性和功能,...

    XML文件XML Schema.docXML Schema.doc

    XML Schema语言也被称为XML Schema Definition(XSD)。XML Schema的作用是定义一份XML文档的合法组件群,就像DTD的作用一样。 XML Schema的主要功能包括: 1. 定义可以出现在文档里的元素 2. 定义可以出现在文档...

    XmlSchema-1.4.7.jar

    XML Schema(XSD)标准是用来定义XML文档的结构和数据类型的,它比早期的DTD(Document Type Definition)提供了更强大的功能,例如支持复杂数据类型、命名空间和更复杂的约束。XmlSchema库则为Java开发者提供了处理...

    XSD根据xml生成schema文件

    XSD(XML Schema Definition)则是用来定义XML文档结构和数据类型的规范,它为XML提供了严格的语法规则,确保了数据的一致性和有效性。本篇文章将深入探讨如何根据XML文件生成对应的XSD schema文件,以便更好地管理...

    xmlschema-1.4.5.jar.zip

    "xmlschema-1.4.5.jar.zip"是一个包含XML Schema相关实现的Java类库,主要用于处理和验证XML文档是否符合特定的XSD规范。 在Java环境中,`xmlschema-1.4.5.jar`是一个关键组件,它提供了一系列API供开发者使用,...

    xsd生成xml工具

    在IT行业中,XML(eXtensible Markup Language)是一种用于标记数据的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。"xsd生成xml工具"是一个实用程序,它允许开发者根据XSD...

    XmlSchema标准参考手册.chm

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

    XMLSchema经典例题

    XML Schema,全称为XML Schema Definition (XSD),是一种用于描述XML文档结构和数据类型的规范,它是W3C(World Wide Web Consortium)所制定的标准。XML Schema的出现是为了替代早期的DTD(Document Type ...

    XSD(Schema)教程

    XSD,全称为XML Schema Definition,是W3C(World Wide Web Consortium)制定的一种XML文档结构定义语言,用于规范和验证XML文档的结构和数据类型。它提供了比DTD(Document Type Definition)更为强大和灵活的XML...

    xml Schema 例子(C#写的验证程序)

    1. **XmlSchema**: 这是XML Schema的根对象,用于表示整个XML Schema文档。 2. **XmlSchemaSet**: 用于存储和加载多个XML Schema,并进行验证。可以使用Add方法添加新的XML Schema。 3. **XmlSchemaValidator**: ...

    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 schema complete reference

    XML Schema,全称为XML Schema Definition (XSD),是XML(可扩展标记语言)的一个关键组成部分,用于定义XML文档的结构和数据类型。2002年出版的《Addison Wesley - The XML Schema Complete Reference》是对XML ...

    Introduction to XML Schema

    XML Schema语言通常也被称作XML Schema Definition (XSD)。 #### 应具备的基础知识 在深入学习XML Schema之前,建议读者具备以下基础知识: - 对XML有基本的理解。 - 对XML Namespaces有一定的了解。 - 对DTD有...

Global site tag (gtag.js) - Google Analytics