以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XQuery/XLink/XPointer/ 』 (http://bbs.xml.org.cn/list.asp?boardid=14) ---- [转帖]技巧:使用 XML 和 XPointer (http://bbs.xml.org.cn/dispbbs.asp?boardid=14&rootid=&id=6573) |
-- 作者:faly -- 发布时间:4/8/2004 1:36:00 PM -- [转帖]技巧:使用 XML 和 XPointer 技巧:使用 XML 和 XPointer 链接到文档的特定部分 Brett McLaughlin (brett@newinstance.com) Enhydra 策略顾问,Lutris Technologies 2001 年 7 月 本技巧文章介绍 XPointer,并讨论如何将它与 XLink 一起使用,以引用另一篇文档的特定部分。 要引用文档的一部分,首先要看一下将要链接到的目标文档。如果可以,请确保该文档使用 id 属性。这将使链接和定位更容易。“清单 1”显示了吉他工匠 Dana Bourgeois 制造的吉他清单,并包括每种类型的标识。 注:为清晰起见,将 Bourgeois 吉他的 URL 由实际 URL http://www.bourgeoisguitars.com 改成较短的 URL http://bg.com。这使代码清单更易于阅读。如果要实际看到这篇文档,请将对 http://bg.com 的引用改回 http://www.bourgeoisguitars.com。 <?xml version="1.0"?> <guitarTypes xmlns="http://bg.com">
对于本技巧文章,假设此文档位于 http://bg.com/guitars.xml。XPointer 不引用整篇文档 -那没有多大用处,它允许您链接到文档的特定部分。还记得 XLink 文章中的 xlink:href 属性吗?为那个属性提供的值是 XLink 的目标。但是要引用该页面的一部分,可以向这些 URL 中添加一个井号 (#) 和一个 XPointer 表达式。例如,表达式 xpointer(id("slopeD")) 引用文档中带有 ID "slopeD" 的元素。因此,可以使用 http://bg.com/guitars.xml#xpointer(id("slopeD")) 引用“清单 1”中所示的 XML,然后是那个文档中所描述的 Slope D 型号的吉他。很简单,是吗?下面为您显示我在 XLink 技巧文章中引入的描述吉他的 XML 文档修订版,它现在使用一些 XPointer 引用。 清单 2. 在 XML 文档中使用 XPointer <?xml version="1.0"?> <guitars xmlns="http://www.newInstance.com/about/guitars"
现在,我的文档可以引用 Dana Bourgeois 保留的有关他的吉他的 XML 内容。即便他更改了此信息,我也无需担心;我的文档始终是最新的,因为它只链接到他更新过的信息。请注意,在上述代码中,必须使用 & 而不是“和”符号(“&”)来转义 XPointer 表达式中的引号。这会使连接的 URL 相当长,而长 URL 可以导致讨厌的输入错误。对于我们来说幸运的是,在链接到带有 ID 标记的元素时,XPointer 允许使用方便的简写形式。除了使用 xpointer(id("D")) 形式,您还可以使用 ID 的值来定位。在这种情况下,那将是 "D"。这样,我就可以将“清单 2”中的文档简化成“清单 3”中所示的文档,该文档中的连接语法更清晰。 清单 3. 使用 ID 链接的 XPointer 简写形式 <?xml version="1.0"?> <guitars xmlns="http://www.newInstance.com/about/guitars"
除了这种用简化的链接进行比较简单的列示之外,您还可以指向其它元素的 相关元素。举例来说,在清单 4 中,我将 description 元素改成指向 bourgeois.xml 文件中指定的图像。 在“清单 4”中,可以看到第一步是在被引用文档中找到特定元素。那个元素用作附加到它之上的相关表达式的引用点。在本例中,指定了那个元素的子孙(由 descendant 关键字指定),在我们的示例中名为 "picture" 的那个元素。然后,该链接的最终目标是那个元素名为 "url" 的属性的值。我知道,这样说太费口舌,但如果循序渐进地做,就会相当简单。 您应该注意到,我在清单 4 中没有使用上一节所谈论的 ID 链接的简写形式。那是因为使用那种 ID 链接形式只允许直接链接;不使用 ID 链接的较长形式,就无法进行任何进一步的链接(例如“清单 4”中的子代遍历引用)。 有关 XPointer 提供的多种不同选项的更多信息,请查看联机的 XPointer 规范(请参阅参考资料)。有关那个看起来很奇怪的链接语法的完整表述,可以查看 XPath;也可以联机查看 XPath 规范(请参阅参考资料)。 我知道,这只是一篇介绍,但现在,您可以告诉您的朋友和家人:关于 XPointer、XLink 和 XPath,您比他们多了解多少!试用它、阅读规范,并关注即将出现的对这些与 XML 有关的规范的浏览器支持。 |
-- 作者:guiguzi629 -- 发布时间:12/1/2004 11:35:00 PM -- 保存! |
-- 作者:ZZJ8704 -- 发布时间:12/6/2004 12:36:00 PM -- 好好保存 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |