Tutorial de XML

XML INÍCIO Introdução ao XML XML Como usar Árvore XML Sintaxe XML Elementos XML Atributos XML Namespaces XML Exibição XML XML HttpRequest Analisador de XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validador de XML XML DTD Esquema XML Servidor XML Exemplos XML Teste de XML Certificado XML

XML AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

XML DOM

Introdução ao DOM Nós DOM Acesso ao DOM Informações do nó DOM Lista de nós DOM Travessia do DOM Navegação DOM Valores de obtenção do DOM Nós de alteração do DOM Remoção de nós do DOM Substituir nós DOM DOM Criar nós DOM Adicionar nós Nós clones DOM Exemplos de DOM

Tutorial XPath

Introdução ao XPath Nós XPath Sintaxe XPath Eixos XPath Operadores XPath Exemplos de XPath

Tutorial XSLT

Introdução ao XSLT Idiomas XSL Transformação XSLT XSLT <modelo> XSLT <valor-de> XSLT <para-cada> XSLT <classificar> XSLT <if> XSLT <escolha> Aplicar XSLT XSLT no cliente XSLT no servidor XSLT Editar XML Exemplos de XSLT

Tutorial XQuery

Introdução ao XQuery Exemplo de XQuery XQuery FLWOR XQuery HTML Termos de XQuery Sintaxe XQuery Adicionar XQuery Seleção de XQuery Funções XQuery

XML DTD

Introdução DTD Blocos de construção de DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Exemplos de DTD

Esquema XSD

Introdução ao XSD XSD Como fazer XSD <esquema> Elementos XSD Atributos XSD Restrições XSD

Complexo XSD

Elementos XSD XSD vazio Apenas elementos XSD Somente texto XSD XSD Misto Indicadores XSD XSD <qualquer> XSD <qualquer atributo> Substituição XSD Exemplo de XSD

Dados XSD

Cadeia XSD Data XSD XSD Numérico XSD Misc Referência XSD

Serviços da Web

Serviços XML XML WSDL XML SOAP XML RDF XML RSS

Referências

Tipos de nós DOM Nó DOM Lista de nós DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentário DOM DOM XMLHttpRequest Analisador de DOM Elementos XSLT Funções XSLT/XPath

XML , XLink e XPointer


XLink é usado para criar hiperlinks em documentos XML.


XPath
  • XLink é usado para criar hiperlinks em documentos XML
  • Qualquer elemento em um documento XML pode se comportar como um link
  • Com o XLink, os links podem ser definidos fora dos arquivos vinculados
  • XLink é uma recomendação do W3C

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:
  • onLoad - the resource should be loaded and shown when the document loads
  • onRequest - the resource is not read or shown before the link is clicked
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

XPath
  • XPointer permite que links apontem para partes específicas de um documento XML
  • XPointer usa expressões XPath para navegar no documento XML
  • XPointer é uma recomendação do W3C

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>