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

Gav*_*vin 2 xml xpath xlink xpointer

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

<root xmlns:xlink="http://www.w3.org/1999/xlink">
  <firstChild id="ID1" />
  ...
  <ref xlink:href="#ID1" />
</root>
Run Code Online (Sandbox Code Playgroud)

不使用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>
Run Code Online (Sandbox Code Playgroud)

请不要仅仅参考我的W3规范 - 我不了解你,但需要一个特殊的人来解释它们,我今天不是那个人!

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

谢谢!

Tom*_*lak 5

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

来自XLink规范:

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

XPointer规范:

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>
Run Code Online (Sandbox Code Playgroud)