`
pengwei.daily
  • 浏览: 23305 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

XML - Schema

    博客分类:
  • XML
 
阅读更多

XML Schema的目的类似于DTD(Document Type Definition),它们都是用于验证XML的文档结构的。

 

有关XML文档的正确性,有两个判断依据可供使用:

 

  1. 文档格式是正确的 - 必须遵守XML标记语言的语法规则。大多是基于SAX或DOM标准的XML解析器都可以自动验证测试文档的合法性。
  2. 文档的内容是合法的 - 文档必须以正确的顺序和结构,使用正确的元素类型和属性。

显式地声明AdressType元素可能包含的元素,包括名称、类型以及出现的顺序:
<complexType name="AddressType">
    <sequence>
        <element name="street" type="string" />
        <element name="city" type="string" />
        <element name="state" type="string" />
        <element name="zip" type="string" />
    </sequence>
</conplexType>
因此任何宣称符合该XML Schema的XML文档,都必须包含正确的XML元素,具有正确的数据类型,元素出现的顺序也必须是正确的。

XML Schema支持20多种简单数据类型,我们称其为内建类型(built-in type) 

默认情况下:每个在<complexType声明的元素都必须在XML文档中出现一次。
不过利用occurrence属性,可以指定元素为可选的,或者出现多次。
<element name="street" type="string" maxOccurs="2" minOccurs="1" />
也可以将maxOccurs属性设为unbounded,意指元素可以出现无限多次。
将minOccurs设置为0,意味着元素是可选的,该元素可以被忽略。 

在<sequence>中的元素必须按顺序出现;
但是在<all>中的元素可以以任意顺序出现。

我们也可以创建复杂类型元素,类似于Java类中声明其他Java类型的数据成员:
<complexType name="CustomerType">
    <sequence>
        <element name="last-name" type="string" />
        <element name="first-name" type="string" />
        <element name="address" type="AddressType" />
        <element name="credit-card" type="CreditCardType" />
    </sequence>
</complexType>
可以将AddressType看作是一个自定义类型即可 - 因为它非标准的XSD内建类型。

运行期间:
XML解析器会将文档与相应的Schema进行对比,以确保文档符合Schema定义的规则;如果文档与Schema不符,即被视为非法,解析会给出错误信息。


 





 

分享到:
评论

相关推荐

    Xerces-xml-schema

    Xerces-J 是该项目针对 Java 语言的实现,而 "Xerces-J-tools.2.11.0-xml-schema-1.1-beta.zip" 是这个解析器的一个特定版本,包含了支持 XML Schema 1.1 beta 版本的功能。 **1. XML Schema** XML Schema 是 W3C ...

    Xerces-J-tools.2.11.0-xml-schema-1.1-beta.zip下载

    Xerces-J-tools.2.11.0-xml-schema-1.1-beta.zip为apache开源xml相关,可用于xml解析 Xerces是由Apache组织所推动的一项XML文档解析开源项目,它目前有多种语言版本包括JAVA、C++、PERL、COM等。[1] Xerces是一个...

    xml-schema.ppt

    * 数据类型的标准位于 w3.org/TR/xmlschema-2,它定义了一些常用数据类型以及创建新类型的规则 XML Schema 的软件以及工具支持情况: * Apache 的 Xerces XML 解析器 * XML Spy 的支持情况 * 其他软件实现,包括将...

    JSON Schema 生成库——json-schema-inferrer(java版).rar

    `json-schema-inferrer`是针对Java平台的一个工具库,它的主要功能是从JSON实例数据生成对应的JSON Schema,方便开发者快速构建符合规范的数据模型。 `json-schema-inferrer`库的使用可以分为以下几个关键知识点: ...

    W3C_xml-schema.zip

    XML Schema,全称为XML Schema Definition,是W3C(World Wide Web Consortium)组织制定的一种用于描述XML(eXtensible Markup Language)文档结构和数据类型的规范。它为XML文档提供了强大的验证机制,确保XML文档...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    在给定的压缩包中,`JSON Schema 校验库——json-schema-validator(java版本).pdf`可能是该库的使用指南或API文档,可以帮助开发者深入理解如何在Java项目中有效利用`json-schema-validator`进行JSON数据验证。...

    castor-1.2-xml-schema castor转化XML需要的jar包

    Castor 项目采用 BSD 类型的证书,因此可在任何类型的应用程序(包括完整版权的项目)中使用。 Castor 实际上仅仅有 XML 数据绑定,它还支持 SQL 和 LDAP 绑定

    rust-xml-schema:[WIP](自生成)基于XML模式的XML解析器生成器

    《基于XML模式的XML解析器生成器:rust-xml-schema详解》 在IT行业中,XML(eXtensible Markup Language)作为一种数据交换和存储格式,广泛应用于数据序列化、配置文件以及网络通信等领域。XML Schema(XSD)则是...

    xml-schema

    &lt;root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="xsd 文件的路径"&gt; &lt;!-- XML 内容 --&gt; ``` XML Schema元素是XML Schema文档的核心,它是所有其他定义元素的容器。例如,`&lt;xs:...

    XML - 实验(2) -- Schema

    《XML》实验任务书 【2】 XML Schema [实验目的] 1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素...

    xmlschema-core-2.0.3的jar

    `xmlschema-core-2.0.3.jar` 是一个Java库,专门用于解析和操作XML Schema文档,它支持XML Schema 1.1标准。 在Spring Web服务中,XML Schema Core库扮演着关键角色。Spring Web Service框架是基于合同优先...

    XML详解----Schema(精讲)

    XML_schema_详解 XML Schema是XML文档的约束机制,用于定义XML文档的结构和内容。它是XML 1.0规范的一部分,提供了一个强大的工具来描述和验证XML文档。 XML Schema的优点是: * 强大的描述能力:XML Schema可以...

    xmlschema-core-2.0.3.jar

    xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar;xmlschema-core-2.0.3.jar

    XmlSchema-1.2.jar,xmlschema-1.2.jar,xml.jar

    XmlSchema-1.2.jar,xmlschema-1.2.jar,xml.jar

    XmlSchema-1.4.7 jar包

    好不容易找到的XmlSchema-1.4.7 jar包,需要的同学速度下载吧。不黑心,只要1分~~~

    XmlSchema-1.1.jar

    XmlSchema-1.1.jar XmlSchema-1.1.jar

    XmlSchema-1.4.6.jar

    `XmlSchema-1.4.6.jar` 是一个包含Java绑定的XML Schema API的库,它为处理XML Schema文档提供了支持。在开发Web服务客户端时,尤其是与基于SOAP(简单对象访问协议)的Web服务交互时,这个库扮演了至关重要的角色。...

    xml-apis-1.4.01.jar.zip

    - **XML Schema API**:处理XML Schema定义,用于验证XML文档是否符合指定的模式。 了解并熟练使用这些API,对于Java开发者来说至关重要,因为它们可以帮助我们有效地读取、写入、验证和处理XML数据。在处理XML问题...

    xmlschema-core-2.0.jar

    cxf jar xmlschema-core-2.0.jar

    XmlSchema-1.4.7.jar

    XmlSchema-1.4.7.jar 是一个Java库,它实现了W3C的XML Schema标准,用于处理XML Schema文档。这个版本(1.4.7)可能是该库的一个稳定版本,提供给用户免费使用。XML Schema是XML的一种规范,定义了如何验证XML文档的...

Global site tag (gtag.js) - Google Analytics