tutoriais mais recente desenvolvimento web
 

XML XLink e XPointer


XLink é usado para criar hyperlinks em documentos XML.


XPath
  • XLink é usado para criar hiperlinks dentro de documentos XML
  • Qualquer elemento em um documento XML pode se comportar como um link
  • Com XLink, as ligações podem ser definidas fora os arquivos vinculados
  • XLink é uma Recomendação W3C

Suporte do navegador XLink

Não há suporte do browser para XLink em documentos XML. No entanto, todos os principais navegadores suportam XLinks em SVG .


XLink Sintaxe

Em HTML, o <a> elemento define um hiperlink. No entanto, isso não é assim que funciona em XML. Em documentos XML, você pode usar qualquer nomes elemento que você quer - portanto, é impossível para os navegadores para prever quais os elementos link será chamado em documentos XML.

Abaixo está um exemplo simples de como usar 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="http://www.w3ii.com">Visit w3ii</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

Para ter acesso aos recursos XLink devemos declarar o namespace XLink. O namespace XLink é: "http://www.w3.org/1999/xlink" .

O xlink: tipo e do xlink:href atributos na <homepage> elementos vêm do namespace XLink.

O xlink: type = "simples" cria um simples "HTML-like" link (significa "clique aqui para ir lá").

O xlink:href atributo especifica o URL para conectar-se a.


Exemplo 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 explicou:

  • O namespace XLink é declarada na parte superior do documento (xmlns:xlink="http://www.w3.org/1999/xlink")
  • O xlink: type = "simples" cria um simples "HTML-like" ligação
  • O xlink:href atributo especifica o URL para conectar-se a (neste caso - uma imagem)
  • O xlink: show = "new" especifica que o link deve abrir em uma nova janela

XLink - indo mais

No exemplo acima, demonstraram XLinks simples. XLink está ficando mais interessante ao acessar locais remotos como recursos, em vez de páginas independentes.

Se definir o valor do xlink:show atribuir a "embed" , o recurso vinculado deve ser processado em linha dentro da página. Quando você considera que este poderia ser um outro documento XML que você poderia, por exemplo, construir uma hierarquia de documentos XML.

Você também pode especificar quando o recurso deve aparecer, com o xlink:actuate atributo.


XLink Atributo Referência

Atributo Valor Descrição
xlink:actuateonLoad
onRequest
other
none
Define quando o recurso vinculado é lido e mostrado:
  • onLoad - o recurso deve ser carregado e mostrado quando as cargas de documentos
  • onRequest - o recurso é não ler ou exibido antes do link é clicado
xlink:href URL Especifica o URL para conectar-se a
xlink:showembed
new
replace
other
none
Especifica onde para abrir o link. O padrão é "replace"
xlink:typesimple
extended
locator
arc
resource
title
none
Especifica o tipo de ligação

XPointer

XPath
  • XPointer permite ligações para apontar para partes específicas de um documento XML
  • XPointer utiliza expressões XPath para navegar no documento XML
  • XPointer é uma Recomendação W3C

Suporte do navegador XPointer

Não há suporte do browser para XPointer. Mas XPointer é usado em outras linguagens XML.


Exemplo XPointer

Neste exemplo, usaremos XPointer em conjunto com XLink para apontar para uma parte específica de outro documento.

Vamos começar por olhar para o documento XML de destino (o documento que está ligando 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>

Note-se que o documento XML acima utiliza atributos id em cada elemento!

Assim, em vez de ligar para o documento inteiro (as with XLink) , XPointer permite que você conectar-se a partes específicas do documento. Para conectar-se a uma parte específica de uma página, adicionar um sinal de número (#) e uma expressão XPointer após o URL na xlink:href atributo, como este: xlink: href = "http://dog.com/dogbreeds.xml #xpointer (id ( "Rottweiler")) ". A expressão refere-se ao elemento no documento de destino, com o valor id de "Rottweiler" .

XPointer também permite um método de taquigrafia para ligar a um elemento com um id. Você pode usar o valor do id diretamente, como este: xlink: href = "http://dog.com/dogbreeds.xml#Rottweiler".

O seguinte documento XML contém links para obter mais informações da raça do cão para 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="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>