使用XLink引用同一文档中的节点

时间:2009-06-09 05:59:45

标签: xml xpath xpointer xlink

简单XLink到同一文档中另一个节点的一般要点似乎是:

<root xmlns:xlink="http://www.w3.org/1999/xlink">
  <firstChild id="ID1" />
  ...
  <ref xlink:href="#ID1" />
</root>

不使用XPointer或XPath,这与XLink一样多吗?你可以做一个XLink,比如提到一个customId,看起来像是这样的东西:

<root xmlns:xlink="http://www.w3.org/1999/xlink">
  <firstChild id="ID1" customId="{1234-5678}" />
  ...
  <ref xlink:href="#customId/{1234-5678}" />
</root>

请不要仅仅引用我W3 spec - 我不了解你,但需要一个特殊的人来解释它们,我今天不是那个人!< / p>

无论如何,据我所知,大多数XLink似乎都是关于引用外部资源,而且我见过的大多数例子都使用http链接到网络资源......我只是好奇你能用XLink做些什么来做什么引用XML文档中的特定部分。

谢谢!

1 个答案:

答案 0 :(得分:5)

我不认为有一种方法可以在不使用XPointer或XPath的情况下运行。我知道你不想参考规范,但是:

来自XLink spec

  

片段标识符的格式   [...]在URI引用中使用的是   由XPointer规范指定。

来自XPointer spec

  

XPointer [...]基于XML Path Language(XPath)

所以我会说它是这样的:

<root xmlns:xlink="http://www.w3.org/1999/xlink">
  <firstChild id="ID1" customId="{1234-5678}" />
  ...
  <ref xlink:href="#xpointer(/root/firstChild[@customId = '{1234-5678}'])" />
</root>