曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
稍后我们将要再回顾一下链接数据库这个主题。
(2) HTML链接只允许在一个方向浏览
如果我们有一系列希望用户能够浏览的页,我们需要明确地定义各页面之间的超链接。例
如我们可以有一个文档叫p a g e 1 . h t m,它包含超链接到p a g e 2 . h t m的单词N e x t。如果我们想定义超
链接(比如说单词P r e v i o u s)以使我们浏览到p a g e 1 . h t m,我们需要明确地在这里定义指向其他
方向的链接。如果一旦我们能够声明两个页是链接过,而不用担心浏览方向,这将是非常好的
事情。
(3) HTML链接只链接两个资源
我们已经在I n t e r n e t上看到站点,那里多个信息页被一系列的链接列表或被P r e v i o u s和N e x t连
接:
程序清单8 - 1 9
当然,菜单的每个页有近似的超链接列表,这就使菜单变得有魔力。如果Joe's Grill决定加
一个意大利面食菜单,每个页将需要有一个链接添加到意大利面食菜单上。如果我们能指定所
有资源被链入一个地方并让浏览器负责在它们之间浏览,这将非常好。
(4) HTML链接不能指定显示引擎的行为
如果能指定引擎显示内容的一些附加概念行为的话将非常好显示引擎应该自动穿越链接,
第8章链接和查询使用251 下载
还是应该在做此之前等待用户的交互?显示引擎应该创建一个新的上下文(对于浏览器是一个
新的窗口)来表现链接内容,还是应嵌入当前内容?通过H T M L链接,只有目标命名的窗口可以
被指定,浏览器将根据它当前的状态做不同的反映(例如,如果一个带有明确名称的窗口已经
打开,它将覆盖内容;否则,它将创建新窗口)。
W 3 C的X M L链接规范正像我们将要看到的,描述了所有这些问题。
8.2.2 W3C规范:XLink
X M L链接规范被称作X L i n k。它现在处在工作草案阶段,这意味着实现的细节可能在它变成
W 3 C推荐书之前改动。这个文档最新的版本可在h t t p : / / w w w. w 3 . o rg / T R / W D - x l i n k上找到(1 9 9 9
年1 2月2 0日为止的最新版本)。
自从X L i n k规范还在工作草案阶段时起,到截稿时止,这里没有任何强大的功能上的变动。
但是现在更好地理解这些概念,在它进入主流时将要使你能够充分利用X L i n k的优点。
1. XLink 声明
命名空间通过W 3 C声明了X L i n k的十二月工作草案:
h t t p : / / w w w. w 3 . o rg / 1 9 9 9 / x l i n k / n a m e s p a c e /
为了从一个X M L文档声明一个链接,命名空间必须被定义成子树,链接在那里被声明。这
里有两种方法声明一个链接:
• 你可以创建一个X L i n k元素。
• 你可以添加X L i n k属性到一个你自己的元素。
一个X M L链接元素就是在< x l i n k : t y p e >中的元素(注意在t y p e位置有两种可能的值,我们将
很快遇到它):
程序清单8 - 2 0
并且一个带有与它相关的X L i n k属性的元素,它带有一个x l i n k : t y p e属性:
程序清单8 - 2 1
当然命名空间应用的正常规则—如果你在上一级定义命名空间,则不用再一次声明链接
元素。
注意如果你选择添加X L i n k属性到你自己的元素,并且你正使用一个D T D,你将需要在
< ! ATTLIST> 里为链接元素定义属性。否则,你的验证处理器将抱怨它不能识别x l i n k : *属性!对
于上面的例子,在D T D里将需要这个元素定义:
252使用XML 高级编程
下载
程序清单8 - 2 2
2. 链接类型
正如我们刚刚说的, x l i n k : t y p e元素和属性中t y p e可以取两个值: s i m p l e或e x t e n d e d。s i m p l e
链接类似于H T M L超链接,而e x t e n d e d链接提供了更多的功能。正如我们后面将要看到的,简单
链接是扩展链接的子集——尽管简单链接采用不同的语法。在本节中,我们将依次介绍每种类
型的链接。首先从简单链接开始。
3. 简单链接
简单链接非常类似于H T M L的<A HREF=...>链接,想必你对此应该非常熟悉。声明简单链
接时,可以使用以下属性:
(1) xlink:type
对于简单链接,该属性总是s i m p l e 。如果你声明简单X L i n k元素,元素名称应该是
x l i n k : s i m p l e。
(2) xlink:href
链接的目标U R I。
(3) xlink:role
它是描述链接内容的功能的字符串。虽然W 3 C没有指定r o l e的用途,但是某些X L i n k的实现
使用r o l e字符串控制文档的显示。
(4) xlink:title
这个用户可读的字符串描述了链接。同样, W 3 C没有指定如何将它应用于支持X L i n k的显示
程序,但是它能够为用户提供可视化的指示,说明元素是一个链接。
(5) xlink:show
该属性定义了如何向用户显示目标内容。它可以取以下三个值:
• new—目标内容应该显示在独立的环境中(对于浏览器,应该是新的浏览器窗口)。
• r e p l a c e—目标内容应该替换原来环境中的源内容(对于浏览器,这是超链接的常规特
征)。
• embedded—内容应该嵌入源文档的链接位置。
(6) xlink:actuate
该属性定义了何时触发链接。它可以取以下两个值:
• o n R e q u e s t—用户必须采取某些操作才能够触发链接。它类似于H T M L超链接的工作方式,
用户必须点击链接的文本才能够激活链接。
• o n L o a d—加载源文档时,链接将自动激活。当x l i n k : s h o w属性为e m b e d d e d时,该属性最
第8章链接和查询使用253 下载
有用,但是当x l i n k : s h o w为n e w时,也可以使用该属性(例如,打开源文档时,自动打开另
一个环境窗口,并加载目的信息)。
简单链接的功能与H T M L超链接基本相当—它以单方向链接两个位置,链接的开始总是链
接本身的声明(参见图8 - 2)。
图8-2
需要注意的是,即使我们将资源显示为不同的,对于两个相同的资源来说也是可以的(参
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程上(90)