XML XLink

  • 定义和使用

    xpath
    • XLink 用于在 XML 文档中创建超链接
    • XML 文档中的任何元素都可以充当链接
    • 使用 XLink,可以在链接文件之外定义链接
    • XLink 是 W3C 建议
    XLink 用于在 XML 文档中创建超链接。
  • XLink浏览器支持

    XML 文档中没有对 XLink 的浏览器支持。
    但是,所有主流浏览器都支持 SVG 中的 XLink
  • XLink 语法

    在HTML中,<a>元素定义超链接;但是,这不是XML的工作方式;在XML文档中,您可以使用所需的任何元素名称-因此,浏览器无法预测XML文档中将调用哪些链接元素。
    下面是一个简单的示例,说明如何使用 XLink 在 XML 文档中创建链接:
    <?xml version="1.0" encoding="UTF-8"?>
    <homepages xmlns:xlink="http://www.w3.org/1999/xlink">
        <homepage xlink:type="simple" xlink:href="https://www.w3schools.com">参观W3Schools</homepage>
        <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
    </homepages>
    
    
    要访问 XLink 功能,我们必须声明 XLink 命名空间;XLink 命名空间是:"http://www.w3.org/1999/xlink"。
    <homepage> 元素中的 xlink:type 和 xlink:href 属性来自 XLink 命名空间。
    xlink:type ="simple" 创建一个简单的 “类似于HTML” 的链接(表示“单击此处转到此处”)。
    xlink:href 属性指定要链接的 URL。
  • XLink 示例

    以下 XML 文档包含 XLink 功能:
    下面是一个简单的示例,说明如何使用 XLink 在 XML 文档中创建链接:
    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore xmlns:xlink="http://www.w3.org/1999/xlink">  
        <book title="Harry Potter">
            <description
            xlink:type="simple"
            xlink:href="/images/HPotter.gif"
            xlink:show="new">
            菜鸟教程是一个比较全的IT技术教程网站……
            </description>
        </book>
        <book title="XQuery Kick Start">
            <description
            xlink:type="simple"
            xlink:href="/images/XQuery.gif"
            xlink:show="new">
            XQuery Kick Start提供了简要的介绍符合XQuery标准...
            </description>
        </book>
    </bookstore>
    
    
    示例说明:
    XLink命名空间在文档顶部声明(xmlns:xlink =“http://www.w3.org/1999/xlink”)
    xlink:type="simple" 创建一个简单的 “类似于HTML” 的链接
    xlink:href 属性指定要链接的URL(在本例中为图像)
    xlink:show="new" 指定链接应在新窗口中打开
  • XLink-更进一步

    在上面的示例中,我们演示了简单的 XLink。 当访问远程位置作为资源而不是独立页面时,XLink 变得越来越有趣。
    如果将 xlink:show 属性的值设置为 “embed”,则应在页面内内联处理链接的资源。 当您认为这可能是另一个 XML 文档时,可以例如构建 XML 文档的层次结构。
    您还可以使用 xlink:actuate 属性指定何时显示资源。
  • XLink属性参考

    属性 描述
    xlink:actuate
    onLoad
    onRequest
    other
    none
    定义何时读取和显示链接的资源:
    • onLoad-资源应在文档加载时加载并显示
    • onRequest-单击链接之前未读取或显示资源
    xlink:href URL 指定链接到的URL
    xlink:show
    embed
    new
    replace
    other
    none
    指定在何处打开链接。 默认为“替换”
    xlink:type
    simple
    extended
    locator
    arc
    resource
    title
    none
    指定链接的类型
  • XPointer

    xpath
    • XPointer 允许链接指向XML文档的特定部分
    • XPointer 使用XPath表达式在XML文档中导航
    • XPointer 是W3C建议
    XPointer 没有浏览器支持;但是XPointer用于其他XML语言。
  • XPointer示例

    在此示例中,我们将结合使用 XPointer 和 XLink 指向另一个文档的特定部分。
    我们将从查看目标 XML 文档(我们链接到的文档)开始:
    <?xml version="1.0" encoding="UTF-8"?>
    <dogbreeds>
        <dog breed="Rottweiler" id="Rottweiler">
          <picture url="https://dog.com/rottweiler.gif" />
          <history>罗威纳犬的祖先可能是罗马人
             over狗...</history>
          <temperament>罗威纳犬自信,大胆,机敏,气势磅,
             是其保护能力的热门选择...</temperament>
        </dog>
        <dog breed="FCRetriever" id="FCRetriever">
          <picture url="https://dog.com/fcretriever.gif" />
          <history>最早取回狗的用途之一是
             帮助渔民从水中找鱼...</history>
          <temperament>平涂猎犬是一种甜美,旺盛的食物,
             活泼的狗,喜欢玩耍和找回...</temperament>
        </dog>
    </dogbreeds>
    
    
    请注意,上面的 XML 文档在每个元素上使用 id 属性!
    因此,XPointer 允许您链接到文档的特定部分,而不是链接到整个文档(与XLink一样)。 要链接到页面的特定部分,请在 xlink:href 属性中的 URL 后面添加数字符号(#)和 XPointer 表达式,如下所示:xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。 该表达式引用目标文档中的元素,其id值为 "Rottweiler"。
    XPointer 还允许使用简写方法链接到具有 id 的元素;您可以直接使用id的值,例如:xlink:href =“ https://dog.com/dogbreeds.xml#Rottweiler”。
    以下XML文档包含指向我的每只狗的更多品种信息的链接:
    <?xml version="1.0" encoding="UTF-8"?>
    <mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
        <mydog>
            <description>
              安东是我最喜欢的狗。 他赢得了很多.....
            </description>
            <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
              关于罗威纳犬的事实
            </fact>
        </mydog>
        
        <mydog>
            <description>
              冥王星是地球上最可爱的狗……
            </description>
            <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
              关于平涂猎犬的事实
            </fact>
        </mydog>
    </mydogs>