Los últimos tutoriales de desarrollo web
 

XML XLink y XPointer


XLink se utiliza para crear hipervínculos en documentos XML.


XPath
  • XLink se utiliza para crear hipervínculos dentro de documentos XML
  • Cualquier elemento en un documento XML puede comportarse como un enlace
  • Con XLink, los enlaces pueden definirse fuera de los archivos vinculados
  • XLink es una Recomendación del W3C

Soporte para el navegador XLink

No hay soporte para el navegador XLink en los documentos XML. Sin embargo, todos los navegadores soportan XLinks en SVG .


XLink sintaxis

En HTML, el <a> elemento define un hipervínculo. Sin embargo, esto no es cómo funciona en XML. En los documentos XML, se puede utilizar cualquier elemento que desee nombres - por lo que es imposible para los navegadores para predecir cuáles son los elementos de enlace se denomina en los documentos XML.

A continuación se muestra un ejemplo sencillo de cómo utilizar XLink para crear enlaces en un documento XML:

<?xml version="1.0" encoding="UTF-8"?>

<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="http://www.w3ii.com">Visit w3ii</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

Para obtener acceso a las funciones XLink debemos declarar el espacio de nombres XLink. El espacio de nombres XLink es: "http://www.w3.org/1999/xlink" .

El XLink: tipo y la xlink:href atributos en el <homepage> elementos provienen del espacio de nombres XLink.

El XLink: type = "simple" crea un simple "HTML-like" enlace (significa "clic aquí para ir allí").

El xlink:href atributo especifica el URL para enlazar.


Ejemplo XLink

El siguiente documento XML contiene características XLink:

<?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">
  As his fifth year at Hogwarts School of Witchcraft and
  Wizardry approaches, 15-year-old Harry Potter is.......
  </description>
</book>

<book title="XQuery Kick Start">
  <description
  xlink:type="simple"
  xlink:href="/images/XQuery.gif"
  xlink:show="new">
  XQuery Kick Start delivers a concise introduction
  to the XQuery standard.......
  </description>
</book>

</bookstore>

Ejemplo explicó:

  • El espacio de nombres XLink se declara en la parte superior de los documentos (xmlns:xlink="http://www.w3.org/1999/xlink")
  • El XLink: type = "simple" crea un simple "HTML-like" enlace
  • El xlink:href atributo especifica el URL para enlazar a (en este caso - una imagen)
  • El XLink: mostrar = "nueva" especifica que el vínculo debe abrir en una nueva ventana

XLink - Yendo más lejos

En el ejemplo anterior hemos demostrado XLinks simples. XLink es cada vez más interesante cuando se accede a lugares remotos como los recursos, en lugar de páginas independientes.

Si nos fijamos el valor de la xlink:show atributo de "embed" , el recurso vinculado debe ser procesado en línea dentro de la página. Cuando se considera que esto podría ser otro documento XML que podría, por ejemplo, construir una jerarquía de documentos XML.

También puede especificar cuándo debe aparecer el recurso, con el xlink:actuate atributo.


XLink Atributo de referencia

Atributo Valor Descripción
xlink:actuateonLoad
onRequest
other
none
Define cuando el recurso vinculado se lee y se muestra a continuación:
  • onLoad - el recurso debe cargarse y se muestra cuando se carga el documento
  • onRequest - se lee ni se muestra antes de hacer clic en el enlace del recurso
xlink:href URL Especifica la dirección URL para enlazar a
xlink:showembed
new
replace
other
none
Especifica dónde abrir el enlace. El valor predeterminado es "replace"
xlink:typesimple
extended
locator
arc
resource
title
none
Especifica el tipo de enlace

XPointer

XPath
  • XPointer permite enlaces para apuntar a partes específicas de un documento XML
  • XPointer utiliza expresiones XPath para navegar en el documento XML
  • XPointer es una Recomendación del W3C

Soporte para el navegador XPointer

No hay soporte para el navegador XPointer. Pero XPointer se utiliza en otros idiomas XML.


Ejemplo XPointer

En este ejemplo, vamos a utilizar XPointer en conjunción con XLink para que apunte a una parte específica de otro documento.

Vamos a empezar por mirar el documento XML de destino (el documento que estás enlazando a):

<?xml version="1.0" encoding="UTF-8"?>

<dogbreeds>

<dog breed="Rottweiler" id="Rottweiler">
  <picture url="http://dog.com/rottweiler.gif" />
  <history>The Rottweiler's ancestors were probably Roman
  drover dogs.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  is a popular choice for its ability to protect....</temperament>
</dog>

<dog breed="FCRetriever" id="FCRetriever">
  <picture url="http://dog.com/fcretriever.gif" />
  <history>One of the earliest uses of retrieving dogs was to
  help fishermen retrieve fish from the water....</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  lively dog that loves to play and retrieve....</temperament>
</dog>

</dogbreeds>

Tenga en cuenta que el documento XML anterior utiliza atributos id en cada elemento!

Así, en lugar de vincular a todo el documento (as with XLink) , XPointer permite enlazar a partes específicas del documento. Para enlazar a una parte específica de una página, añadir un signo de número (#) y una expresión XPointer después de la URL en el xlink:href atributo, como esto: xlink: href = "http://dog.com/dogbreeds.xml #xpointer (id ( 'Rottweiler')) ". La expresión se refiere al elemento en el documento de destino, con el valor id de "Rottweiler" .

XPointer también permite un método abreviado para ligarse a un elemento con un id. Se puede utilizar el valor de la ID directamente como aquí: xlink: href = "http://dog.com/dogbreeds.xml#Rottweiler".

El siguiente documento XML contiene enlaces a más información de la raza del perro para cada uno de mis perros:

<?xml version="1.0" encoding="UTF-8"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog>
  <description>
  Anton is my favorite dog. He has won a lot of.....
  </description>
  <fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">
  Fact about Rottweiler
  </fact>
</mydog>

<mydog>
  <description>
  Pluto is the sweetest dog on earth......
  </description>
  <fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">
  Fact about flat-coated Retriever
  </fact>
</mydog>

</mydogs>