`
wind_bell
  • 浏览: 290895 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

xml模式(Schema)

    博客分类:
  • xml
XML 
阅读更多
1. 最简单的Schema文档

hello.xml
<?xml version="1.0"?>
<greeting>Hello World!!</greeting>

hello.xsd
<?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="greeting" type="xsd:string"/>
</xsd:schema>

说明:XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间
xmlns:xsd="http://www.w3.org/2001/XMLSchema,用元素<element>定义实例文档中的元素,如greeting。

2、含子元素的Schema文档

customer.xml
<customer>
  <name>teiki</name>
  <address>No.237, Road Waitan, Shanghai</address>
</customer>

customer.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

说明:实例文档customer.xml中,<customer>元素含有两个子元素,所以我们在Schema文档中采用ComplexType来定义该元素。sequence表示子元素依次出现的顺序。

3、含子元素和孙元素的Schema文档

customer.xml
<customer>
  <name>Teiki</name>
  <address>
    <prefecture>Zhejiang</prefecture>
    <city>Hangzhou</city>
    <street>Xilu Road, No.121, 7F</street>
  </address>
</customer>

address.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<!-- 追加子元素address-->
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prefecture" type="xsd:string"/>
<xsd:element name="city" type="xsd:string" />
<xsd:element name="street" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

不过,我们还可以采用ref元素来重新编写这个Schema文档:


address2.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element ref="address"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="prefecture" type="xsd:string"/>
<xsd:element name="city" type="xsd:string" />
<xsd:element name="street" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
使用ref元素可以直接将其指向另一个模块,使文档更加具有可读性。
分享到:
评论
1 楼 fly_ever 2006-09-26  
你好,我是xml的初学者,可以问你一个问题吗?
怎么样使用schema写程序来验证xml文档的正确性啊。
比如

引用
hello.xml
-------------------
<?xml version="1.0"?>
<greeting>Hello World!!</greeting>

hello.xsd
----------
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="greeting" type="xsd:string"/>
</xsd:schema>

如果我的hello.xml写得有问题的话,我怎么知道呢?在hello.xml文件中没看到哪里与hello.xsd相关啊。

相关推荐

    理解XML Schema XML Schema进阶

    XML Schema是目前国际标准的XML建模工具,本文将对XML Schema进行详细的介绍,帮助读者初步掌握XML Schema的使用方法和XML Schema文档实例的具体语义。 1. 命名空间的使用 XML Schema中命名空间的使用是非常重要的...

    XML文件XML Schema.docXML Schema.doc

    在Java中,XML Schema的验证可以使用javax.xml.validation包,提供了独立于模式语言的验证服务接口。该包提供了三个类来验证文档:SchemaFactory、Schema和Validator。 在实际应用中,XML Schema可以用于: 1. ...

    xmlschema-core-2.0.3的jar

    2. **验证XML文档**:通过编译的XSD模型,可以验证XML文档是否符合定义的模式,确保数据的有效性。 3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **...

    XMLSchema经典例题

    6. **模式和模式组合**:XML Schema支持模式(schema)的组合,可以将多个小的模式组合成一个大的模式,便于管理和重用。例如,你可以创建一个通用的`contactInfo`模式,然后在其他多个模式中引用它。 7. **重复组*...

    xml实用教程_XML_Schema结构

    - **模式验证**:通过模式验证工具检查XML文档是否符合定义的模式。 - **继承和重用**:允许定义通用类型,并在此基础上创建更具体的类型。 #### 五、总结 XML Schema作为一种强大的工具,不仅能够精确描述XML文档...

    apache xmlschema api文档

    3. **XSModelGroup**:表示XML Schema中的模式组,用于组合其他模式元素,如选择(`&lt;choice&gt;`)、序列(`&lt;sequence&gt;`)和所有(`&lt;all&gt;`)。 4. **XSComplexTypeDefinition** 和 **XSSimpleTypeDefinition**:这两个...

    xml-schema.ppt

    * 入门位于 w3.org/TR/xmlschema-0,它介绍了 XML 模式文档及其设计用途 * 文档结构的标准位于 w3.org/TR/xmlschema-1,它说明了如何定义 XML 文档的结构 * 数据类型的标准位于 w3.org/TR/xmlschema-2,它定义了一些...

    XMLSchema.chm

    5. **约束和验证**:XML Schema提供了强大的约束机制,包括最大出现次数、最小出现次数、长度、模式匹配等,这些约束用于验证XML文档是否符合Schema的规定。验证过程可以帮助捕获错误,确保数据的准确性和完整性。 ...

    XML Schema初窥

    模式文档是XML Schema的实现,它定义了一组规则来验证XML文档的结构。模式文档通常以`.xsd`为扩展名,根元素是`&lt;xs:schema&gt;`,并需要声明`http://www.w3.org/2001/XMLSchema`名称空间。名称空间的使用使得XML Schema...

    Xerces-xml-schema

    此外,由于 Xerces-J 支持 XML Schema 1.1,开发者可以利用这个版本的新特性,如交替模式、断言、自定义数据类型等,提高 XML 文档处理的灵活性和准确性。 综上所述,Xerces-XML-Schema 是一个强大且灵活的 XML ...

    xml Schema学习

    1. **命名空间**:XML Schema支持命名空间,使得可以在同一文档中定义多个独立的XML模式,避免了元素和属性名的冲突。 2. **数据类型**:XML Schema提供了丰富的内置数据类型,如字符串、整数、浮点数、日期等,还...

    W3C_xml-schema.zip

    4. **模式约束**:XML Schema提供了模式约束,如必须性、最大出现次数、最小出现次数等,可以指定元素或属性是否必需,以及它们可以出现的次数范围。 5. **复杂类型与简单类型**:复杂类型定义可以包含其他元素、...

    xmlschema:适用于Python的XML模式验证器和数据转换库

    XML Schema 1.1引入了一些新特性,如交替模式、断言、多选组和更多数据类型。 ### 5. 错误处理和调试 `xmlschema`库提供了详细的错误报告和调试工具,包括验证失败时的定位信息,这对于开发和调试非常有帮助。 ...

    XML - 实验(2) -- Schema

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

    java根据xml生成schema_xsd_生成javabean2

    在Java开发中,XML(可扩展标记语言)常用于数据交换和配置文件,而XSD(XML Schema Definition)则是用于定义XML文档结构的规范。JavaBean是Java编程中的一种面向对象的设计模式,常用于封装数据并提供易于使用的...

    xml(schema定义)

    ### XML Schema 定义详解 XML Schema是一种用于描述XML文档结构和内容的规范,它提供了比DTD(Document Type Definition)更强大的数据类型和结构控制能力。通过使用XML Schema,开发者可以定义XML文档中的元素和...

    XMLSchema 参考手册

    8. **模式文档的实例化**:阐述如何创建符合XML Schema定义的XML文档实例,以及如何验证这些实例是否有效。 9. **错误处理和警告**:讨论XML Schema验证过程中的错误和警告,以及如何调试和修复问题。 10. **工具...

    xml schema complete reference

    10. **导入和包含(Import and Include)**:XML Schema允许通过`import`引入其他命名空间的定义,`include`则可以在一个模式中包含另一个模式的定义。 《Addison Wesley - The XML Schema Complete Reference ...

    XML Schema

    4. 包含和导入:一个XML Schema可以包含或导入另一个XML Schema,实现模式的模块化。 XML Schema 提供了强大的验证功能,确保XML文档符合业务需求和数据规范。在处理XML数据时,使用XML Schema可以显著提高数据处理...

Global site tag (gtag.js) - Google Analytics