曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
定义,第一个定义了一个普遍意义的R o c k e t 类,第二个通过继承将R o c k e t 类细化成
C h e m i c a l R o c k e t类。r d f s和rdf 命名空间是R D F推荐标准的一部分:
程序清单7 - 7
204使用XML 高级编程
下载
(2) 属性
资源用属性来定义和描述它们。约束使它们具有了外形。这些约束限制了可赋给属性数值
的类型,以及可选类型数值的范围。给我们的chemical rocket一些f u e l:
程序清单7 - 8
我们的f u e l属性作为F u e l s类被写入,属性能够具有范围内的数值。为了做这些,与上面某些
别的地方近似,我们将必须在模式里做一个类声明来实现,或者讨论的火箭燃料提供字面上的
数值。这个燃料属性应用于C h e m i c a l R o c k e t类,它的属性域(参见图7 - 2)。
图7-2
(3) 语句
一旦通过资源和属性定义了名称和结构,关于概念域的语句就可以生成了。这可以通过主
语资源、属性谓语和数值宾语来实现。这些值可能是描述具体语句的文字,或者是有关整个类
的强大有力的语句的资源。让我们先做一个在文档里与RDF 模式保持一致的简单、详细的有关
火箭的语句。第一,你开始声明一个C h e m i c a l R o c k e t类的实例,并给它一个名称:
第7章命名空间和模式使用205 下载
子类
子类
子类
程序清单7 - 9
一旦声明了火箭的实例—M o o n s h i p,利用资源的I D属性,进展到RDF Description元素。
对于燃料特性已经提供了一个特别的值—h y d r o g e n(记住, M o o n s h i p是C h e m i c a l R o c k e t的一
个实例,并且这个类用f u e l特性)。这可能使许多事情看起来非常简单,但我们能用同样的办法
去做有关类的语句。若你在模式里做了更多的语句,你将要生成很多有关问题域的明确的知识。
R D F是强大的,允许富有表现力、功能强大的语句。它解决了D T D很强的分类限制。确实是,
强大的分类是R D F模式的核心。遗憾的是,设计一个RDF 模式是一个很费力的过程,它包括很多类
和属性的声明。能够生成有意义的语句比起我们需要定义X M L词汇表的目的,或许是更强大的特性。
这并不是说,它们在其他环境没有用。R D F语句让我们用一种机器可以读懂的格式规范地描
述事实。通常说,我们写的X M L词汇表潜在地依赖于对真实世界概念普遍意义上的理解。通过
R D F语句,至少在理论上能够提供足够的信息,有关一个应用可以发现附加的词汇表的事实。这
将可以使我们更好地使用新词汇表,并决定什么时候它对于手边的问题可用。简而言之, R D F提
供了一个提供描述词汇表环境的工具,其中一个工具可用来将词汇表放在文章合适的位置。
尽管一个设计者努力地致力于定义名称、结构和关系的工作中,这也可能是一项非常繁重
的重担。下面的元数据提议采取了几个步骤,以到达富有表现力并有普遍性的程度。
更多的有关R D F信息可以从站点h t t p : / / w w w. w 3 . o rg / T R / R E C - r d f - s y n t a x(基础模型)和
h t t p : / / w w w. w 3 . o rg / T R / P R - r d f -模式(RDF 模式)。
2. XML Data
比起R D F,XML Data瞄准了更为现代的领域。这个提议已被A r b o r Te x t、D a t a C h a n n e l、I n s o
和M i c r o s o f t提交到W 3 C组织,很显然将重点集中到了自动化文档和处理,但它比D T D更有前景。
X M L - D a t a在语法和概念模式之间有着显著的区别。二者使用相同的语言,但它们却为我们
提供不同的方式去考虑正在标记的语言。
语法模型是一个描述怎样用标记写文档的规则的集合,比如D T D是一个语法模式的例子。
在一个按照我们的目录D T D标记的X M L文档里, < B o o k >元素能够合法地包含< Ti t l e >、
< A b s t r a c t >、< R e c S u b j C a t e g o r i e s >和< P r i c e >元素。这个世界的一个语法XML Data 模式在词汇表
结构上描述了近似的约束规则。
概念模型却描述了概念或对象之间的关系,同时它们对于创建关系数据库模型非常理想。
我们能够使用XML Data 模式用一种脱离任何X M L文档的方式假定一种关系—书包含标题和
价格。在这个意义上, XML Data是用来扩展X M L从关系数据库里很容易包含信息的能力。在关
系数据库里通过关键字获得的主要的关系能正式地在XML Data 模式里得到。我们能够用命名空
间得到比如说特别的连接里的特别关系,这要借助对连接的表声明命名空间,根据所属表验证
206使用XML 高级编程
下载
查询字段。
我们在第1 0章讨论带数据库的模式的用途。
XML Data提供了一些有趣的工具,它们使XML Data比D T D更加强大。这些工具解决了几
个在D T D里发现的问题,于是让我们看一下其中几个问题以及它们是怎样用的。
(1) 用X M L写
XML Data 为了模式结构使用X M L词汇表,它允许用户不用必须去学一种新的语法而去读
写模式。这也意味着我们能够使用D O M和现有的解析器去细读一个模式或者动态创建一个新的。
继续概念上的比喻,我们能够动态创建一个模式给特别的基于查询本身的S Q L查询。数据容
器将拥有数据和正式结构,并且将永远不会知道这是动态创建的。
(2) 数据分类
XML Data添加了强大的元素和属性分类,而且回答了我们最初的对于D T D的异议。这些可
能是有数据类型命名空间定义的基础数据类型,或者复杂的,由设计者提供的模式所提供的用
户自定义类型。这里不再需要应用程序去理解一些元素或属性的数据类型并在使用数据前把文
本串转换成合适的格式。这个信息能隐式地在模式里被描述,并且解析器能按照自己的需要进
行应用的转换。
(3) 允许数值上的约束
XML Data要求在元素和属性数值范围上的约束被定义,比如最小值和最大值。这在很多你
验证X M L文档的环境里特别有所帮助。想象一下订购系统,在那里你只接受了超过最小值1 0 0
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程上(75)