XML架构
本单元的内容
本单元介绍W3CXML模式语言的基本特性。
你应该具备的能力
完成本单元后,您应该能够:
bull;列出并描述使用XML模式的原因
bull;列出模式的主要新特性
bull;使用XMLSchemas的语法定义XML文档的语法规则
bull;列出并定义使用XML模式时要使用的最佳实践
bull;描述XML模式在行业中的地位
如何检查进度
责任:
bull;检查点
bull;机器练习
学习目标
完成本单元后,你应该能够:
bull;列出并描述使用XML Schema的原因列出Schema的主要新特性
bull;使用XML Schema的语法定义XML文档的语法规则
bull;列出并定义使用XML模式时要使用的最佳实践
bull;描述XML模式在行业中的地位
Figure 7-1. Unit Objectives XM3413.0
笔记:
讲师备注:
目的——
细节——
附加信息——
过渡描述——
为什么我们需要XML模式?
bull;商业
-对提高数据表达能力的渴望。
-希望把不同组织的词汇结合起来。
-通过改进通信降低集成成本。
bull;技术
-根据详细规范验证XML文档。
-XML实例语法。
-数据类型和约束。
-命名空间。
-表示数据元素之间的关系。
Figure 7-2. Why Do We Need XML Schema? XM3413.0
笔记:
bull;商业
- XML作为一种用于应用程序之间数据交换的语言的到来,需要能够为XML文档指定更丰富的语义。
- 类似地,为了促进应用程序之间松散绑定的数据交换,需要能够组合来自不同组织的丰富语法,以便促进数据交换应用程序。
-定义良好的XML词汇表可以改进组织间的数据通信和集成。集成以更低的成本更平稳、更快地进行。
bull;技术
- 需要一种方法根据详细规范验证传入文档的结构。集成的成本可以降低,因为某些验证被转移到验证解析器中,而其他中间层或后端进程不会验证。
- DTD使用的非XML语法使得编写处理语法数据的应用程序变得更加困难。使用XML语法来表示语法信息的对称性允许将所有XML技术应用于语法信息本身。
- 数据类型使得XML处理器能够验证XML文档内容的更多语义约束。约束允许针对规范进行其他验证。
- 最初的XML 1.0建议之后是命名空间功能的建议。不幸的是,这意味着名称空间没有直接与DTD集成。XMLSchema提供了一种协调名称空间和语法的方法。
- 需要一种方法来表示数据元素之间的关系,类似于对数据库表或对象所做的操作。
讲师备注:
目的——帮助学生了解导致创建XMLSchema的业务和技术力量。
详情——见学生笔记。
附加信息——
过渡描述——让我们看看本课程中介绍的XMLSchema的主要特性。
特征
bull;使用XML实例语法定义XML文档的结构。
bull;在表示元素和属性内容的数据类型语义方面比dtd好得多。
bull;支持名称空间。
bull;将数据类型的定义与元素和属性的声明分开。
bull;支持数据之间唯一性和关系的表示。
Figure 7-3. Features XM3413.0
笔记:
bull;XMLSchema使用XML实例语法来描述XML文档的语法规则。
bull;XMLSchema允许使用多种数据类型来约束元素和属性内容。
bull;XMLSchema允许我们指定属于哪个命名空间声明和定义,从另一个命名空间导入声明和定义,以及从其他命名空间通配符导入声明。
bull;在XMLSchema中,类型定义、元素和属性声明彼此分离,允许重用类型定义。
bull;XMLSchema允许我们指定特定类型值的唯一性约束,以及这些唯一值与其他类型值之间的关系。
讲师备注:
目的-描述XMLSchema的主要特性。
详情-见学生笔记。
附加信息-
过渡描述-让我们比较XMLSchema和DTD如何处理一个简单的问题。
DTD与XML方案
考虑一个名为quantity的元素,一些应用程序希望将其作为正整数接收。
DTD对quantity的声明为:
lt;!ELEMENT quantity (#PCDATA)gt;
此声明允许quantity具有任何字符串值。它简单地说明元素存在于文档中。
在架构中,quantity的声明可能如下所示:
lt;xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchemagt;
lt;xsd:element name=quantity type='xsd:nonNegativeInteger'/gt;
lt;xsd:/schemagt;
两个声明都会发现以下XML是有效的:
lt;quantitygt;4lt;/quantitygt;
只有XML架构声明会发现此XML无效:
lt;quantitygt;-5lt;/quantitygt;
lt;quantitygt;lotslt;/quantitygt;
Figure 7-4. DTD versus XML Schema XM3413.0
笔记:
bull;DTD在构思时是一个很好的想法,但对XML的经验以及使用DTD的应用程序数量的不断增长使XML社区得出结论,认为DTD是不够的。
讲师备注:
目的-DTD与XML模式对比.
细节-这是一个简单的例子,但它说了所有的事情。
补充信息-
过渡描述-让我们看看XML Schema的解剖
XML模式剖析
下面的架构声明此结构:
lt;elem1 attr1='hello'gt;
lt;elem2gt;some text herelt;/elem2gt;
lt;/elem1gt;
Figure 7-5. Anatomy of an XML Schema XM3413.0
注释:
您可能会发现这张幻灯片让人无法抗拒,但不要担心,我们将继续讲解本幻灯片上的每个主题。
对于简单的事情来说,XML模式比DTD更详细一些。同一文档的DTD如下所示:
lt;!ELEMENT elem1 (elem2)gt;
lt;!ELEMENT elem2 (#PCDATA)gt;
lt;!ATTLIST elem1 attr1 CDATA #IMPLIEDgt;
对于小的定义来说,多一点打字的成本是一个很小的代价,因为当你用稍微复杂的方式来声明文档时,就可以为你保存的打字付费。
讲师备注:
目的-向学生展示他们将克服的难题
详情-见学生笔记。
附加信息-
过渡描述-让我们简单地开始并查看一个基本元素声明。
简单元素声明
·对于存在类型定义(内置或其他类型)适合于声明元素的性质的情况,使用此声明格式。
·下面是具有预定义类型的元素的声明。它被声明恰好发生一次:
lt;xsd:element name=quantity
type=xsd:nonNegativeInteger minOccurs=1 maxOccurs=1/gt;
·minOccurs and maxOccurs它们用于指示所需/允许的元素数量。
Figure 7-6. Simple Element Declaration XM3413.0
注释:
bull;类型名必须是命名空间限定的。如果类型未与架构的默认命名空间关联,则必须使用表示正确命名空间的命名空间前缀对其进行限定。
注释:
bull;该示例演示如何声明具有简单类型的元素。
bull;使用lt;elementgt;标记声明元素。lt;elementgt;标记上的type属性指定用于元素的类型。
bull;非负整数是一种内置的简单类型。
bull;本单元中的示例假设前缀“xsd”已与XML架构命名空间关联
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[234939],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。