FANDOM


XLinkEditar

Volvamos a los ejemplos sencillos:

<?xml version="1.0"?>
<pelicula>
  <titulo>Brazil</titulo>
  <director>Terry Gilliam</director>
</pelicula>

Como ya se ha visto, es posible cambiar el aspecto del documento anterior usando CSS:

pelicula {
  color: #0000ff;
  text-decoration: underline;
  cursor: hand;
}
director {
  display: none;
}

El título de la película aparecerá con el familiar aspecto que tienen los enlaces, pero no funcionará como uno de ellos. La situación cambia si reemplazamos el documento XML anterior por el siguiente:

<?xml version="1.0"?>
<pelicula
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xlink:type="simple"
  xlink:href="http://www.imdb.com/title/tt0088846/"
  xlink:onClick="location.href='http://www.imdb.com/title/tt0088846/'">
  <titulo>Brazil</titulo>
  <director>Terry Gilliam</director>
</pelicula>

Enlaces extendidosEditar

Es posible establecer relaciones bastante más complejas que un enlace entre elementos de un documento XML. El siguiente es un ejemplo de relaciones extendidas:

<?xml version="1.0"?>
<pelicula>
  <titulo>Brazil</titulo>
  <director>Terry Gilliam</director>
  <relaciones xmlns:xlink="http://www.w3.org/1999/XLink"
    xlink:type="extended">
    <director xlink:role="director"
      xlink:href="gilliam_terry.xml"
      xlink:title="Terry Gilliam"/>
    <pelicula xlink:role="pelicula"
      xlink:href="brazil.xml"
      xlink:title="Brazil"/>
    <pelicula xlink:role="pelicula"
      xlink:href="doce_monos.xml"
      xlink:title="Doce Monos"/>
    <pelicula xlink:role="inspiracion"
      xlink:href="1984.xml"
      xlink:title="1984"/>
    <pelicula xlink:role="inspiracion"
      xlink:href="la_jetee.xml"
      xlink:title="La Jetee"/>
    <relacion xlink:type="arc"
      xlink:from="director"
      xlink:to="pelicula"
      xlink:show="replace"
      actuate="onRequest"/>
    <relacion xlink:type="arc"
      xlink:from="pelicula"
      xlink:to="inspiracion"
      xlink:show="replace"
      actuate="onRequest"/>
  </relaciones>
</pelicula>

XPointerEditar

XPointer aumenta las posibilidades de XLink, permitiendo enlazar con elementos que se encuentran dentro de los documentos. Por ejemplo, supongamos que disponemos de un documento XML que describe puntuaciones:

<?xml version="1.0"?>
<frases>
  <cero>Lo peor</cero>
  <uno>Mala</uno>
  <dos>Regular</dos>
  <tres>Buena</tres>
  <cuatro>Imprescindible</cuatro>
  <cinco>Obra maestra</cinco>
</frases>

Ahora, modifiquemos el documento XML que contiene detalles de una película:

<?xml version="1.0"?>
<pelicula>
  <titulo>Brazil</titulo>
  <director>Terry Gilliam</director>
  <puntuacion>4</puntuacion>
</pelicula>

A esta película se le ha dado una puntuación de 4 sobre 5. Es posible enlazar con la descripción de esa nota así:

<?xml version="1.0"?>
<pelicula>
  <titulo>Brazil</titulo>
  <director>Terry Gilliam</director>
  <puntuacion
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xlink:type="simple"
    xlink:href="frases.xml#xpointer(/frases/cuatro)"
    xlink:actuate="onLoad">
  4</puntuacion>
</pelicula>

Enlaces interesantesEditar

Puede que encuentres interesantes los siguientes enlaces relacionados con el tema de este capítulo:

  • libxml2, una biblioteca de funciones que aprovecha estas tecnologías.
  • La mejor información sobre enlaces y XML.
El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.