- 浏览: 513078 次
- 性别:
- 来自: 长沙
-
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
今天学习了XML的schema,感觉schema的功能可以对文本进行相应的校验, 功能较dtd强大很多,但是难度也大很多。
首先将dtd与XML做一个简单的比较:
1. dtd不遵循xml语法
2. dtd数据类型有限
3. dtd不可扩展
4. dtd不支持命名空间。
刚完成的一个XML schema的习题
综合练习:书藉信息表
字段名
数据类型和约束
书藉编号
唯一 二个数字开头-三个字母结尾 /必需 作为属性
书藉名称
1---30个字符/必需
名称类型
作为书藉名称的属性 中文名、英文名 枚举/必需
书藉类型
武侠小说、言情小说、软件编程、数据库入门 枚举/必需
书藉价格
1-10000 必需
价格类型
作为书藉价格的属性 人民币、美元、欧元、日元
作者
原著
1---100个字符/必需可以多个
翻译
1---100个字符/可以多个
性别
作为原著和翻译的属性 男、女 枚举/必需
国籍
作为原著和翻译的属性 中国、美国、荷兰
枚举/必需
做题思路步骤如下:
1、 根据题意对所有的元素进行分类,分为简单类型元素与复杂类型元素两大类。 简单元素类型
是指元素开始之间只有文本而没有属性的元素。
2、 再将简单类型元素分成对文本没有限制于对文本有限制的两类。 对文本类型有限制的简单元素类型
要通过自定义简单类型做相应的限制约束。
3、 对复杂类型的元素进行分类, 分为含有子元素的元素; 含有属性、子元素的元素; 含有属性
、文本的元素; 含有属性的空元素共四类。
最后对照上述分类再分别进行相应的处理即OK。建议构造schema的xsd文件时按从小到大,从简单到复杂的
顺序进行构造。
现在草纸上画好结构草图,然后编码.xsd文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--名称类型-->
<xs:attribute name="nameType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="中文名"/>
<xs:enumeration value="英文名"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:simpleType name="bookNameRistriction">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<!--书籍名称元素定义-->
<xs:element name="bookName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="bookNameRistriction">
<xs:attribute ref="nameType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义书籍类型-->
<xs:element name="bookType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="武侠小说"/>
<xs:enumeration value="言情小说"/>
<xs:enumeration value="软件编程"/>
<xs:enumeration value="数据库入门"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!--定义价格类型属性-->
<xs:attribute name="priceType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="日元"/>
<xs:enumeration value="美元"/>
<xs:enumeration value="人民币"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!--定义书籍价格-->
<xs:simpleType name="priceRestriction">
<xs:restriction base="xs:float">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="10000"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="bookPrice">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="priceRestriction">
<xs:attribute ref="priceType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义属性组-->
<xs:attributeGroup name="authorAttribute">
<xs:attribute name="sex" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="男"/>
<xs:enumeration value="女"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="national" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="中国"/>
<xs:enumeration value="美国"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:simpleType name="authorNameLength">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
<!--定义原著-->
<xs:element name="originalAuthor">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="authorNameLength">
<xs:attributeGroup ref="authorAttribute"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义翻译-->
<xs:element name="translator">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="authorNameLength">
<xs:attributeGroup ref="authorAttribute"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义作者-->
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element ref="originalAuthor" maxOccurs="unbounded"/>
<xs:element ref="translator" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--定义书籍编号属性-->
<xs:attribute name="bookId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2}[a-zA-Z]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="bookName"/>
<xs:element ref="bookType"/>
<xs:element ref="bookPrice"/>
<xs:element ref="author"/>
</xs:sequence>
<xs:attribute ref="bookId" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="books">
<xs:complexType>
<xs:sequence>
<xs:element ref="book" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueBook">
<xs:selector xpath="book"></xs:selector>
<xs:field xpath="@bookId"></xs:field>
</xs:unique>
</xs:element>
</xs:schema>
最后再新建一个.xml文件,并在其中导入.xsd文件, 写好相应的xml文件OK!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JAVAZHICHIZHE/archive/2009/04/25/4123672.aspx
首先将dtd与XML做一个简单的比较:
1. dtd不遵循xml语法
2. dtd数据类型有限
3. dtd不可扩展
4. dtd不支持命名空间。
刚完成的一个XML schema的习题
综合练习:书藉信息表
字段名
数据类型和约束
书藉编号
唯一 二个数字开头-三个字母结尾 /必需 作为属性
书藉名称
1---30个字符/必需
名称类型
作为书藉名称的属性 中文名、英文名 枚举/必需
书藉类型
武侠小说、言情小说、软件编程、数据库入门 枚举/必需
书藉价格
1-10000 必需
价格类型
作为书藉价格的属性 人民币、美元、欧元、日元
作者
原著
1---100个字符/必需可以多个
翻译
1---100个字符/可以多个
性别
作为原著和翻译的属性 男、女 枚举/必需
国籍
作为原著和翻译的属性 中国、美国、荷兰
枚举/必需
做题思路步骤如下:
1、 根据题意对所有的元素进行分类,分为简单类型元素与复杂类型元素两大类。 简单元素类型
是指元素开始之间只有文本而没有属性的元素。
2、 再将简单类型元素分成对文本没有限制于对文本有限制的两类。 对文本类型有限制的简单元素类型
要通过自定义简单类型做相应的限制约束。
3、 对复杂类型的元素进行分类, 分为含有子元素的元素; 含有属性、子元素的元素; 含有属性
、文本的元素; 含有属性的空元素共四类。
最后对照上述分类再分别进行相应的处理即OK。建议构造schema的xsd文件时按从小到大,从简单到复杂的
顺序进行构造。
现在草纸上画好结构草图,然后编码.xsd文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--名称类型-->
<xs:attribute name="nameType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="中文名"/>
<xs:enumeration value="英文名"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:simpleType name="bookNameRistriction">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<!--书籍名称元素定义-->
<xs:element name="bookName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="bookNameRistriction">
<xs:attribute ref="nameType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义书籍类型-->
<xs:element name="bookType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="武侠小说"/>
<xs:enumeration value="言情小说"/>
<xs:enumeration value="软件编程"/>
<xs:enumeration value="数据库入门"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!--定义价格类型属性-->
<xs:attribute name="priceType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="日元"/>
<xs:enumeration value="美元"/>
<xs:enumeration value="人民币"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!--定义书籍价格-->
<xs:simpleType name="priceRestriction">
<xs:restriction base="xs:float">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="10000"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="bookPrice">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="priceRestriction">
<xs:attribute ref="priceType" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义属性组-->
<xs:attributeGroup name="authorAttribute">
<xs:attribute name="sex" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="男"/>
<xs:enumeration value="女"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="national" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="中国"/>
<xs:enumeration value="美国"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:simpleType name="authorNameLength">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
<!--定义原著-->
<xs:element name="originalAuthor">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="authorNameLength">
<xs:attributeGroup ref="authorAttribute"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义翻译-->
<xs:element name="translator">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="authorNameLength">
<xs:attributeGroup ref="authorAttribute"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!--定义作者-->
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element ref="originalAuthor" maxOccurs="unbounded"/>
<xs:element ref="translator" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--定义书籍编号属性-->
<xs:attribute name="bookId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{2}[a-zA-Z]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="bookName"/>
<xs:element ref="bookType"/>
<xs:element ref="bookPrice"/>
<xs:element ref="author"/>
</xs:sequence>
<xs:attribute ref="bookId" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="books">
<xs:complexType>
<xs:sequence>
<xs:element ref="book" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueBook">
<xs:selector xpath="book"></xs:selector>
<xs:field xpath="@bookId"></xs:field>
</xs:unique>
</xs:element>
</xs:schema>
最后再新建一个.xml文件,并在其中导入.xsd文件, 写好相应的xml文件OK!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JAVAZHICHIZHE/archive/2009/04/25/4123672.aspx
发表评论
-
性能问题
2013-09-04 20:13 0<SERVICE CLASS=" ... -
ant中使用svn检出代码
2011-05-14 21:33 2966[size=large][size=large][size=l ... -
Ant与批处理(win环境)学习3
2011-04-10 23:48 1223此篇主要讲实践,大多数情况下是直接贴的代码了 ... -
VNC之代理
2011-03-27 22:48 2787[size=large] 背景:使用VNC客户端去连接DC上 ... -
1号~15号工作日志
2011-01-16 22:23 8961、 Flex的includeInLayout属 ... -
JAVA异常处理
2011-01-11 22:51 712在je上看到一篇有关异常处理的文章,觉得还不错... . ... -
Java配置项
2011-01-11 20:44 918背景:项目中有许多可选参数,这时如果采取硬编码的方式将非 ... -
offLineMap2工作日记之getBoolean
2011-01-06 23:25 7971、如字段不是get**开头的boolean 如: boole ... -
开发常用小工具集
2011-01-06 22:26 2030毕业也有半年了,我有幸能加入一家知名IT公司并从事时下最 ... -
Eclipse中阅读开源项目代码
2010-12-25 22:57 2725[size=large] 背景:由于最近较为系统地学习了 ... -
Eclipse调试深入
2010-12-25 18:59 1324背景:我个人的调 ... -
Java打包总结
2010-12-19 22:35 1417背景:最近下载了一 ... -
Ant与批处理(win环境)学习笔记(2)
2010-12-19 22:01 1240在《Ant与批处理(win环境)学习笔记》中学习了Ant的一些 ... -
Ant与批处理(win环境)学习笔记
2010-12-19 10:27 1451背景:最近个人附 ... -
JDK工具学习
2010-12-18 22:14 1036[size=large] 起因:在 ... -
Eclipse插件安装总结
2010-12-18 12:29 1212大学时一直使用的 ... -
使用Ant和Maven构建时出现OOM异常
2010-12-14 23:14 1759今日更新测试环境时报OOM错误(工程中使用了Ant和Ma ... -
JAVA技术见识集
2010-12-12 09:34 884[size=large] 将网上看到的一些适用于指定场景的 ... -
Eclipse异常集
2010-12-08 19:52 22961、 Eclipse异常说An internal Error ... -
将批处理文件注册成服务
2010-11-15 19:49 3535前两天完成了将java程序注册成win服务,如今本人有一 ...
相关推荐
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...因此,学习和理解XML Schema及其在生成XML文档中的应用,对于IT从业者来说是非常有价值的。
通过"XML学习 练习SCHEMA"的教程,你将深入理解这些概念,并通过实际操作掌握如何编写和应用XML SCHEMA。这将有助于你创建和维护结构清晰、符合规范的XML文档,提升数据的可靠性和互操作性。在进行练习时,可能会...
压缩包里详细介绍了如何利用XML Spy这个软件新建一个XML Schema文档,内容非常充实,在网上找了很久自己整理好的,只要按照文档的步骤就可以很快学会如何使用XML Spy了,非常适合初次接触XML知识和XML Spy这个软件的...
通过学习和实践,你可以熟练地根据XML文件生成XSD schema,从而更有效地管理和维护你的XML数据。这是一项基础但至关重要的IT技能,对于处理XML相关的项目和任务至关重要。同时,不断更新和优化XSD文件,以适应业务...
为了学习 XML Schema,需要具备的基础知识包括 HTML、XHTML、XML 以及 XML 命名空间和对 DTD 的基本了解。 XML Schema 的主要作用是定义 XML 文档的合法构建模块,类似 DTD。它可以: * 定义可出现在文档中的元素 ...
这个“XMLSchema.chm”文件很可能是一个帮助文档,旨在为学习XML Schema的用户提供详细的指导和参考资料。下面我们将深入探讨XML Schema的相关知识点。 1. **XML Schema的作用**:XML Schema的主要功能是规范XML...
8. **第二章 Schema**:这个文件名可能指的是学习XML Schema的一个章节,该章节可能详细讲解了Schema的某一部分,如数据类型的扩展、限制、枚举值、模式匹配等。 总之,XML基础实例和Schema是XML编程中的核心概念。...
本篇文章将深入探讨XML Schema的学习要点,包括其基本概念、语法、优势以及如何在实际工作中应用。 XML Schema的主要目的是提供比DTD更强大且类型化的数据描述能力。它引入了数据类型系统,允许开发者定义复杂的...
在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...
XML Schema教程 XML Schema是一种基于XML的文档类型定义(DTD)替代方案,它提供了更为强大且灵活的方式来描述...通过学习和使用XML Schema,开发者可以创建更规范、更易于维护的XML文档,提高数据的准确性和一致性。
而`Research.rar`可能是一个包含更多示例代码或XML文档的压缩文件,供学习者参考和实践。 总结,利用Java和XML Schema解析XML涉及的关键步骤包括:创建JAXBContext、获取Unmarshaller和Marshaller对象、反序列化XML...
XML Schema,全称为XML Schema Definition (XSD),是一种用于描述XML文档结构和数据类型的规范,它是W3C...通过学习和理解这些例子,你将能够更好地掌握XML Schema的使用,从而更有效地设计和验证XML文档的结构。
"XML Schema 学习笔记" XML Schema 是一种基于 XML 的语言,用于定义 XML 文档的结构和约束。它可以描述 XML 文档的格式、元素、属性、数据类型、默认值、固定值等信息。XML Schema 的作用类似于 DTD,但它具有更多...
【XML Schema初窥】 XML Schema 是一种XML文档结构定义语言,由W3C于1998年开始制定,2001年5月2日发布1.0版...通过学习和熟练掌握XML Schema,开发者能够更好地控制和管理XML文档的规范性,确保数据的准确性和一致性。
XML Schema 是一种基于 XML 的规范,用于定义 XML 文档的结构和数据类型。它是 Document Type Definition (DTD) 的现代替代品,提供了更多功能和灵活性。XML Schema 的主要目标是为 XML 文档提供一种严格的形式化...
**基础知识需求**:在深入学习XML Schema之前,建议读者具备以下基础知识: - HTML/XHTML - XML及其命名空间 - 对DTD有基本理解 **XML Schema 功能**: - **元素定义**:明确哪些元素可以在文档中出现。 - **属性...
标题"XML 验证器 - C#中的Schema验证XML"着重强调了使用C#来验证XML文档是否符合预定义的XML Schema。XML Schema是W3C标准,用于定义XML文档的结构和数据类型,确保数据的一致性和准确性。 描述中提到的"博文链接:...
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...