第2章XML命名空间和Schema约束_详解.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
17 DTD书写和理解困难:说明使用的是不同于 XML 的语法,即扩展巴斯科-诺尔范式(EBNF)。与 XML 相比,学习和使用 EBNF 都很难。 不可扩展:假设我们已经定义了一个 DTD。为了在 DTD 中添加一些元素部分以对它做一点点的改动,我们将不得不重写整个 DTD。如果使用模式,就不会感到有这样的缺点。 很难实现元数据的程序化处理:XML 语法是高度结构化的。所以可以实现元素的程序化处理。DTD 遵照 EBNF 中定义的语法。EBNF 不像 XML 那样具有结构特征,这就导致 DTD 中元数据的自动处理有点困难。XML 模式是基于 XML 语法开发的,它可以实现程序化处理。 不支持数据类型:DTD 支持诸如字符数据和可解析字符数据之类的数据类型。没有一种将数据表示为非上下文数据类型的方法。没有一种指定一个特定的标记是否具有数值内容的方法。无法表示一个 DTD 内部的数据内容模型是一个很大的缺陷。 不支持继承:在 DTD 中,我们无法实现继承。例如,我们知道职员是一个人。如果我们已经定义了一个名为 Person 的数据类型,同时我们需要定义一个名为 Employee 的新数据类型,我们不能在 Employee 数据类型中复用为 Person 数据类型定义的 DTD 规范,尽管大多数的属性和结构可能是相同的。 转换说明:XML 模式可以克服 DTD 的这些缺点。以下我们将列出 XML 模式的优点。 18 说明每个文档只可以有一个 DTD。另一方面,根据 XML 中使用的名称空间数,我们可以需要多少模式就有多少个模式定义。XML 模式定义可以强有力地体现内容模型,而 XML DTD 在表现这种模型的能力上则较为逊色。 转换说明:现在,让我们观察第一个 XML 模式定义。 19 转换说明:接下来,我们将看一下 xs:schema 元素。 20 说明我们不必总是使用“xs”作为名称空间标识符。我们可以使用其它任何符号,但是“xs”通常是一个推荐使用的标识符。 转换说明:xs:schema 标记应当包含各种元素和各种约束的声明。这是在 xs:element 标记内声明的。接下来,让我们看一下 xs:element 元素。 21 如何定义一个可以保存字符串的 Message 元素? 做法如下: xs:element name=Message type=xs:string/ 使用这些标记定义的 XML 模式定义应当在 XML 文档内被引用。 转换说明:xs:element 元素具有的一些属性将在下一张幻灯片中列出。 22 转换说明:接下来,我们将学习在 XML 文档内部引用模式。 23 说明语句 xmlns:xsi=/2001/XMLSchema-instance 指示解析器要依据一个 XML 模式来验证文档。模式 xsi:noNamespaceSchemaLocation=externalxsdfile 指定了 XML 模式文档的位置。 转换说明:接下来,让我们看一个示例来更好地理解这个概念。 24 上述给出的示例中有一个 XML 元素,该元素有一个名为 message 的标记和施加了约束的模式定义。 上述代码中给出的模式定义定义了一个名为 Message 的元素,并定义其类型为字符串型。同时还显示了引用该 XSD 文档的相应 XML 文档。上述给出的 XML 文档引用 XSD 文件 Message.xsd。 转换说明:我们已经看到了一个简单元素类型的使用。接下来,我们将详细地讨论用来为 XML 文档定义 XML 模式的模式元素。 25 说明并解释上述幻灯片中列出的各点。XML 模式的真正强大之处在于它可以定义数据类型的方法。XML 模式具有各种数据类型。 转换说明:接下来,我们将看一下 XML 模式中的数据类型。 26 模式是创建结构的强大工具,因为它们支持大量的数据类型。XML 模式提供以下两种基本的数据类型: ·????????基本数据类型 ·????????用户定义的数据类型 XML 模式中可用的数据类型显示在上图中。 转换说明:接下来,让我们看一下基本数据类型。 27 说明并解释上述幻灯片中列出的各点。在模式中可以使用基本数据类型来定义元素的数据类型。 转换说明:接下来,我们将看一下用户定义的数据类型。 28 说明简单定义用来约束那些不包括元素的信息。它们主要一个名称和引用另一个类型定义的说明。复杂定义在 XML 模式中要重要得多,因为如果没有这些定义,为元素组织重要的内容模型将是不可能的。 说明值空间指定了一个数据类型可能具有的值的范围。 词汇空间是一个表示数据类型值的字符串文字的集合。 Facet 是一个数据类型的定义特性之一,它将一个数据类型与其它数据类型区分

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档