XML , XLink e XPointer
XLink é usado para criar hiperlinks em documentos XML.
|
Suporte ao navegador XLink
Não há suporte de navegador para XLink em documentos XML.
No entanto, todos os principais navegadores suportam XLinks em SVG .
Sintaxe XLink
Em HTML, o elemento <a> define um hiperlink. No entanto, não é assim que funciona em XML. Em documentos XML, você pode usar qualquer nome de elemento que desejar - portanto, é impossível para navegadores prever quais elementos de link serão chamados em documentos XML.
Abaixo está um exemplo simples de como usar o XLink para criar links em um 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 obter acesso aos recursos do XLink, devemos declarar o namespace XLink. O namespace XLink é: "http://www.w3.org/1999/xlink".
Os atributos xlink:type e xlink:href nos elementos <homepage> vêm do namespace XLink.
O xlink:type="simple" cria um link simples "tipo HTML" (significa "clique aqui para ir lá").
O atributo xlink:href especifica a URL para vincular.
Exemplo de XLink
O seguinte documento XML contém recursos 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>
Exemplo explicado:
- O namespace XLink é declarado na parte superior do documento (xmlns:xlink="http://www.w3.org/1999/xlink")
- O xlink:type="simple" cria um link simples "tipo HTML"
- O atributo xlink:href especifica a URL para vincular (neste caso - uma imagem)
- O xlink:show="new" especifica que o link deve abrir em uma nova janela
XLink - Indo além
No exemplo acima, demonstramos XLinks simples. O XLink está ficando mais interessante ao acessar locais remotos como recursos, em vez de páginas independentes.
Se definirmos o valor do atributo xlink:show para "incorporar", o recurso vinculado deverá ser processado em linha dentro da página. Quando você considera que este pode ser outro documento XML, você pode, por exemplo, construir uma hierarquia de documentos XML.
Você também pode especificar QUANDO o recurso deve aparecer, com o atributo xlink:actuate.
Referência de atributo 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 |
XPointer
|
Suporte ao navegador XPointer
Não há suporte de navegador para XPointer. Mas o XPointer é usado em outras linguagens XML.
Exemplo de XPointer
Neste exemplo, usaremos o XPointer em conjunto com o XLink para apontar para uma parte específica de outro documento.
Começaremos examinando o documento XML de destino (o documento ao qual 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>
Observe que o documento XML acima usa atributos id em cada elemento!
Portanto, em vez de vincular a todo o documento (como no XLink), o XPointer permite vincular a partes específicas do documento. Para vincular a uma parte específica de uma página, adicione um sinal de número (#) e uma expressão XPointer após a URL no atributo xlink:href, assim: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". A expressão refere-se ao elemento no documento de destino, com o valor de id de "Rottweiler".
O XPointer também permite um método abreviado para vincular a um elemento com um id. Você pode usar o valor do id diretamente, assim: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
O documento XML a seguir contém links para mais informações sobre a raça de cada um dos meus cães:
<?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>