• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

模式有很多方面归功于R D F、XML Data、D C D以及几个其他的提议。当前的成就看起来正倾向
于简单化,尽管它可能在后期很好地被扩展。由于这希望在这本书发行之后很快成为改进的
W 3 C建议书,我们将要深入研究一下草案。
7.6 W3C在XML 模式方面的工作
W3C XML 模式工作组在1 9 9 9年1 2月1 7日约定了两部分关于XML 模式的工作草案。像任何
工作草案一样,特别的属性和语法受到后来的版本的影响。这些模式回答了我们在本章前面提
出的有关D T D的问题。它们用X M L语法写成,允许使用多个命名空间,它提供强大的内容分类。
而且它们是XML1.0 DTD功能的超集。它丰富的表现力超过D C D,但远比R D F精练。简而言之,
这是一个有前途的元数据成就。
1 9 9 9年1 2月1 7日的工作草案被分成两部分:结构和数据类型。
结构部分,XML 模式部分:结构,处理元素和属性的描述和声明。那里提供的材料允许
X M L设计者去指定复杂的元素结构及设定这些元素内容数值的约束。这些描述部分可以从
h t t p : / / w w w. w 3 . o rg / T R / x m l s c h e m a - 1 /上找到。
第二部分,XML 模式部分2:数据类型,提出了标准的数据类型内容集合,就像从它们生
第7章命名空间和模式使用209 下载
成新类型的规则一样。这些描述部分可以从h t t p : / / w w w. w 3 . o rg / T R / x m l s c h e m a - 2 /上找到。
7.6.1 DTD与XML 模式的比较
你目前正充满希望地急于去学习XML 模式的正式语法。只是为了证实一下,在这里让我提
供一个非常简单的D T D和它的翻成X M L模式的形式。对于我谈到过的有关模式和它们的特性,
我还没让你看过一个例子。当前的做法—D T D—和我们希望成为未来做法的模式的对比,
将会让你看到事物是怎样急剧地变化的。它将让你对目前为止所讨论过内容有所领悟。不要过
多担心模式的语法。我们将要在下面几部分详细研究。试着勾画一幅情景,并且用它来作为今
后的参考。
考虑下面给一个人命名的D T D:
程序清单7 - 11
我们最少必须拥有姓和名两部分,但可能随意地拥有一个中间大写字母,敬语( M r. , M s . , D r.
等)和一个后缀(J r. , I I I等)。在模式里这些看起来就像这样:
程序清单7 - 1 2
模式表单有些长,但你将会注意到我们描述了更多的信息。开始,我们有一个< S c h e m a >元
素作为模式的根结点。然后有一个元素叫做“ N a m e”,它的名字在< e l e m e n t >标记“n a m e”属性
里被赋值,于是声明一个< n a m e >元素:
这为了什么?我曾经在最简单的表单里使用它,但是你应该知道它能被赋予一个名字,并
被给予一个声明。在这样的表单里,它适用于在别的地方重用,以及描述< N a m e >元素的内容模
型。注意包含在< N a m e >里的元素是怎样被声明的。因为它们是简单的类型(比如字符串或
210使用XML 高级编程
下载
P C D ATA),我们能在< N a m e >声明实体里去声明它们,而用再做其他处理。你将要看到X M L模
式提供了一个比我们现在D T D里有的更长的基础类型列表。
注意任意的元素是怎样描述的。通过模式,我们能够描述元素出现次数的最小值和最大值。
这能导致比我们能在D T D里描述的更复杂的内容模型。
但是终上所述,很明显的事实是—模式是X M L。你在前几章学到的D O M操作能被用来应
对程序里的这个模式,并能将它拆开。这些在D T D表单里不能实现。
7.6.2 结构
我们能用D T D定义的每一件事在XML 模式的结构部分得到了解释。由于XML 模式是由
X M L语法写成,结构是指我们能用来定义标记的X M L命令。当然,这意味着XML 模式实际上
只是X M L的另一个应用(一个为了定义X M L文档类的词汇表),并且正是如此,拥有了一个模
式可以来描述它自己(事实上,附录里为XML 模式结构部分提供了模式和D T D去描述模式词汇
表)。
于是规范的结构部分是定义模式的元素和属性出现的地方。更重要的是,元素的内容模型
在这里得到了描述。内容模型明确地描述了允许的元素内部结构。结构是XML 模式的核心。于
是让我们详细考虑一下它们。
1. 编写模式
一个模式由导言、不定数量(或没有)的定义和声明组成。下面几部分讨论这些定义,于
是让我们从导言开始。
(1) 导言
在根元素模式可找到导言。这一定至少包含属性的三部分信息:
• targ e t N S,它是正在使用的模式的命名空间和U R I
• version,用来指定模式的版本
• xmlns,为XML 模式规范提供命名空间
• 可选,f i n a l D e f a u l t和/或者e x a c t D e f a u l t,为两种后面将要常涉及的扩展名提供缺省值
它可能包括转出和转入,包括结构,这些我们将在后面讨论它们。这里是一个演示导言的
模式例子:
程序清单7 - 1 3
这里,我们假定的模式驻留在m y s e r v e r,并且叫做m y s c h e m a . x s d,. x s d是XML 模式的文件
扩展名。它保留在第一个版本里。缺省的命名空间声明是XML 模式:结构的引用,并且它是一
个关闭的模型模式,这意味着所有与这个模式一致的文档将要完全由模式来定义,完全不含有
任何外部内容。
第7章命名空间和模式使用211 下载
(2) 简单类型定义
为XML 模式定义的结构紧紧依赖于类型定义。这允许一个模式设计者去声明能在模式里使
用的扩展类型。它们将要被用于说明元素和属性的内容和类型。一个简单类型定义用于限制不
包括元素的信息。它由名称和说明组成,其中的说明既是另一个类型定义的引用,又是一系列
面的集合。面将在本章后部的数据类型部分被详尽描绘。在数据类型元素里可找到独立简单的
类型定义:
程序清单7 - 1 4
我们将要详细讨论数据类型的结构。也能在其他的声明里有一个简单的类型定义,比如属
性。这由t y p e属性完成,例如t y p e = " s m a l l I n t ",它告诉我们声明项的类型。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(77)