XML , XLink y XPointer
XLink se utiliza para crear hipervínculos en documentos XML.
|
Compatibilidad con el navegador XLink
No hay soporte de navegador para XLink en documentos XML.
Sin embargo, todos los principales navegadores admiten XLinks en SVG .
Sintaxis de enlace X
En HTML, el elemento <a> define un hipervínculo. Sin embargo, no es así como funciona en XML. En los documentos XML, puede usar cualquier nombre de elemento que desee; por lo tanto, es imposible que los navegadores predigan qué elementos de enlace se llamarán en los documentos XML.
A continuación se muestra un ejemplo simple de cómo usar 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="https://www.w3schools.com">Visit W3Schools</homepage>
<homepage xlink:type="simple"
xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>
Para obtener acceso a las funciones de XLink, debemos declarar el espacio de nombres de XLink. El espacio de nombres de XLink es: "http://www.w3.org/1999/xlink".
Los atributos xlink:type y xlink:href en los elementos <homepage> provienen del espacio de nombres XLink.
El xlink:type="simple" crea un enlace simple "similar a HTML" (significa "haga clic aquí para ir allí").
El atributo xlink:href especifica la URL a la que enlazar.
Ejemplo de enlace X
El siguiente documento XML contiene características de 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 explicado:
- El espacio de nombres XLink se declara en la parte superior del documento (xmlns:xlink="http://www.w3.org/1999/xlink")
- El xlink:type="simple" crea un enlace simple "similar a HTML"
- El atributo xlink:href especifica la URL a la que enlazar (en este caso, una imagen)
- El xlink:show="new" especifica que el enlace debe abrirse en una nueva ventana
XLink - Yendo Más Allá
En el ejemplo anterior, hemos demostrado XLinks simples. XLink se está volviendo más interesante al acceder a ubicaciones remotas como recursos, en lugar de páginas independientes.
Si establecemos el valor del atributo xlink:show en "incrustar", el recurso vinculado debe procesarse en línea dentro de la página. Si considera que este podría ser otro documento XML, podría, por ejemplo, crear una jerarquía de documentos XML.
También puede especificar CUÁNDO debe aparecer el recurso, con el atributo xlink:actuate.
Referencia de atributos de XLink
Attribute | Value | Description |
---|---|---|
xlink:actuate | onLoad onRequest other none |
Defines when the linked resource is read and shown:
|
xlink:href | URL | Specifies the URL to link to |
xlink:show | embed new replace other none |
Specifies where to open the link. Default is "replace" |
xlink:type | simple extended locator arc resource title none |
Specifies the type of link |
PunteroX
|
Compatibilidad con el navegador XPointer
No hay soporte de navegador para XPointer. Pero XPointer se usa en otros lenguajes XML.
Ejemplo de puntero X
En este ejemplo, usaremos XPointer junto con XLink para apuntar a una parte específica de otro documento.
Comenzaremos observando el documento XML de destino (el documento al que estamos vinculando):
<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://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="https://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 usa atributos de identificación en cada elemento!
Entonces, en lugar de vincular a todo el documento (como con XLink), XPointer le permite vincular a partes específicas del documento. Para vincular a una parte específica de una página, agregue un signo de número (#) y una expresión XPointer después de la URL en el atributo xlink:href, así: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". La expresión hace referencia al elemento en el documento de destino, con el valor de identificación de "Rottweiler".
XPointer también permite un método abreviado para vincular a un elemento con una identificación. Puede usar el valor de la identificación directamente, así: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
El siguiente documento XML contiene enlaces a más información de la raza canina de 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="https://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="https://dog.com/dogbreeds.xml#FCRetriever">
Fact about flat-coated Retriever
</fact>
</mydog>
</mydogs>