• 热门标签

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

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

链接:
程序清单8 - 3 2
声明中那些显式链接是由< x l i n k : a r c >元素定义的(参见图8 - 4)。
然而如果我们不包括< x l i n k : a r c >元素,在扩展链接定义的一部分定义的每个定位之间会存在
隐式a r c(参见图8 - 5)。
W 3 C并没有规定识别X L i n k解析器有必要处理隐式链接,或者是不是它们和显式链接的处理
方式不同。另外,XLi n k的实现如何处理这个问题还没有定论。
通过定义一个带有l o c a t o r和a r c的扩展链接,只要有必要可以按照任意复杂的式样,把任何
数量的资源连接在一连。我们稍后看一下扩展链接的几种使用方法,不过首先我们看一下内联
扩展链接和外联扩展链接的区别。
6. 内联扩展链接和外联扩展链接
扩展链接可以嵌入到参与扩展链接的一个资源中(如果这个资源恰好是X M L文档)。这种链
258使用XML 高级编程
下载
接定义对于扩展链接中的任何定位并不意味着什么—它可以通过识别X L i n k处理器来解析,可
以按照处理器显式定位之间的a r c的任何合适的方式来使用它。
图8-4
图8-5
如果采用把扩展链接嵌入到链接中使用的一个位置,这种方法会产生两个问题:
• 如果包含了扩展链接的资源先被读取,那么一个识别X L i n k处理器能够浏览这个链接。但
是如果资源2被首先读取了,将会发生什么呢?这样处理器就无法知道到资源3的合法链接
第8章链接和查询使用259 下载
定位定位
定位定位
定位
定位定位
定位
可以被浏览。这个链接信息可以在每个资源中重复,而这些资源在扩展链接中包含有定位,
然而这样你就会陷入维护的梦魇。
图8-6
• 包含链接的资源必须是一个X M L资源。例如,如果我们想在上面所显示的图案中把四个图
像资源链接在一起,那该如何呢?我们在哪里放置链接信息呢?
7. 外联扩展链接—使用L i n k b a s e s
一类特殊的< x l i n k : e x t e n d e d >元素被用来向识别X L i n k处理器指明一个外联扩展链接存在于
特定文档中。它们的r o l e属性必须设置为x l i n k : e x t e r n a l - l i n k s e t。l o c a t o r子元素定义了外部X M L文
档,这个外部X M L文档中包含了正被处理的文档的XLi n k信息:
程序清单8 - 3 3
当一个识别X L i n k处理器遇到带有x l i n k : e x t e r n a l - l i n k s e t角色的扩展链接,它读取了扩展链接
元素的l o c a t o r子元素指示的文档,来寻找引用了正被处理文档的外部链接。它然后就“记住”
了那个信息,就好像它被包含在原始文档中。这将使维持项目间的链接变得更加容易—实际
上,解决了前面的“ Joe wants to add a pasta menu”问题。
260使用XML 高级编程
下载
链接元素
资源1 资源2
资源3 资源4
定位定位
定位定位
图8 - 7是几个分离的X M L文档,它们包含有连接我们的资源外联链接信息。
图8-7
如果我们把扩展链接x l i n k : e x t e r n a l - l i n k s e t加入到四个链接后的文档中,当其中任何一个文档
变为当前文档时,该扩展链接信息仍可用(参见图8 - 8)。
图8-8
第8章链接和查询使用261 下载
资源1
资源3 资源4
资源1 资源2
资源3 资源4
定位定位
定位定位
链接
元素
链接库
资源2
定位
定位定位
定位
链接
元素
链接库
8. 扩展链接的几个例子
让我们看一下扩展链接如何解决我们前面提到的关于H T M L链接的一些问题:
• HTML链接必须嵌在源文档中。
• HTML链接仅允许沿一个方向浏览。
• HTML链接只链接两个数据源。
• HTML链接并不指定显示引擎的行为。
(1) 链接数据库
利用扩展链接组,我们可以在文档之间维护链接列表。我们会有下面这个链接文档,
m e n u l i n k . x m l:
程序清单8 - 3 4
然后我们将有下面的m e n u 1 . x m l(应用于所有菜单页相同的一般格式):
程序清单8 - 3 5
262使用XML 高级编程
下载
当m e n u 1 . x m l打开时,识别X L i n k处理器将从m e n u l i n k . x m l中读取扩展链接信息,然后将文
档通过一种可以使该文档链接到m e n u 2 . x m l以更加清晰的方式显示出来。一个浏览器可以选择这
种方式表达信息(当然,这仅仅是形式上的—目前情况下还没有浏览器直接支持X L i n k,参见
图8 - 9)。
图8-9
如果现在J o e想添加一个p a s t a菜单,我们所要作的仅仅是修改链接数据库文档:
程序清单8 - 3 6
第8章链接和查询使用263 下载
当我们为这个p a s t a项目创建文档m e n u 5 . x m l时,那么我们就不必返回去修改其他任何菜单
页!我们的浏览器能够自动体现出这个变化(参见图8 - 1 0)。
图8-10
264使用XML 高级编程
下载
如果我们希望改变这些菜单页贯连的次序,可以通过修改链接数据库文档来实现这一点
(不是去修改链接中出现的每一个参与文档,而这正是H T M L所需要的)。你可以看到,从内容
中抽象出链接信息是用来控制和维持文档间链接的很强大的方法,这样就可以使其他没有控制
你的内容的人员链接到该内容,或从该内容链接到其他地方—在下一部分你将会看到这一点。
(2) 标出只读文档
利用外联链接注释来自其他数据源只读文档也是一个很好的方法。从下面的简短的例子可
以看出它是如何做的。
假如我们有下面称为q u o t e l i s t . x m l的只读文档,它包含着引用,这可以通过注释来表明:
程序清单8 - 3 7
我们希望将这个文档加到另一个文档comments, xml中:
程序清单8 - 3 8
我们可以指定一个链接文档, c o m m e n t l i n k . x m l,它在文档c o m m e n t s . x m l和只读文档
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(92)