Gli ultimi tutorial di sviluppo web
 

XML XLink e XPointer


XLink viene utilizzato per creare collegamenti ipertestuali in documenti XML.


XPath
  • XLink viene utilizzato per creare collegamenti ipertestuali all'interno dei documenti XML
  • Ogni elemento in un documento XML può comportarsi come un link
  • Con XLink, i link possono essere definiti al di fuori dei file collegati
  • XLink è una raccomandazione W3C

Supporto browser XLink

Non vi è alcun supporto del browser per XLink in documenti XML. Tuttavia, tutti i principali browser supportano Xlink in SVG .


XLink Sintassi

In HTML, il <a> elemento definisce un collegamento ipertestuale. Tuttavia, questo non è come funziona in XML. Nei documenti XML, è possibile utilizzare qualunque nome elemento che si desidera - quindi è impossibile per i browser di prevedere quali elementi collegamento sarà chiamata nei documenti XML.

Di seguito è riportato un semplice esempio di come utilizzare XLink per creare collegamenti in 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="http://www.w3ii.com">Visit w3ii</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

Per avere accesso alle funzioni XLink dobbiamo dichiarare il namespace XLink. Lo spazio dei nomi XLink è: "http://www.w3.org/1999/xlink" .

Il xlink: tipo ed il xlink:href attributi nella <homepage> gli elementi provengono dal namespace XLink.

Il xlink: type = "semplice" crea un semplice "HTML-like" collegamento (significa "clicca qui per andare là").

Il xlink:href attributo specifica l'URL a cui collegarsi.


XLink Esempio

Il seguente documento XML contiene funzionalità 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>

Esempio spiegato:

  • Lo spazio dei nomi XLink è dichiarato al all'inizio del documento (xmlns:xlink="http://www.w3.org/1999/xlink")
  • Il xlink: type = "semplice" crea un semplice "HTML-like" collegamento
  • Il xlink:href attributo specifica l'URL di un collegamento a (in questo caso - una immagine)
  • Il xlink: show = "new" specifica che il link dovrebbe aprire in una nuova finestra

XLink - Andando ulteriormente

Nell'esempio precedente abbiamo dimostrato Xlink semplici. XLink è sempre più interessante quando si accede a siti remoti come risorse, invece di pagine indipendenti.

Se si imposta il valore del xlink:show attributo di "embed" , la risorsa collegata deve essere elaborato in linea all'interno della pagina. Se si considera che questo potrebbe essere un altro documento XML si potrebbe, ad esempio, creare una gerarchia di documenti XML.

È inoltre possibile specificare quando si visualizza la risorsa, con il xlink:actuate attributo.


XLink Attributo di riferimento

Attributo Valore Descrizione
xlink:actuateonLoad
onRequest
other
none
Definisce quando la risorsa collegata viene letta e mostrata:
  • onLoad - la risorsa deve essere caricato e mostrato durante il caricamento del documento
  • onRequest - la risorsa non viene letto o visualizzato prima che il link viene cliccato
xlink:href URL Specifica l'URL come link a
xlink:showembed
new
replace
other
none
Specifica dove aprire il link. L'impostazione predefinita è "replace"
xlink:typesimple
extended
locator
arc
resource
title
none
Specifica il tipo di collegamento

XPointer

XPath
  • XPointer permette collegamenti per puntare a parti specifiche di un documento XML
  • XPointer usa espressioni XPath per navigare nel documento XML
  • XPointer è una raccomandazione W3C

Supporto browser XPointer

Non vi è alcun supporto del browser per XPointer. Ma XPointer è utilizzato in altri linguaggi XML.


XPointer Esempio

In questo esempio, useremo XPointer in combinazione con XLink per puntare a una parte specifica di un altro documento.

Inizieremo cercando in documento XML di destinazione (il documento che si collegano 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>

Si noti che il documento XML precedente utilizza attributi id su ogni elemento!

Così, invece di collegare a tutto il documento (as with XLink) , XPointer consente di collegare a parti specifiche del documento. Per creare un collegamento a una parte specifica di una pagina, aggiungere un simbolo di cancelletto (#) e l'espressione XPointer dopo l'URL nella xlink:href attributo, in questo modo: xlink: href = "http://dog.com/dogbreeds.xml #xpointer (id ( 'Rottweiler')) ". L'espressione si riferisce all'elemento nel documento di destinazione, con il valore id di "Rottweiler" .

XPointer permette anche un metodo scorciatoia per il collegamento a un elemento con un ID. È possibile utilizzare il valore della id direttamente, in questo modo: xlink: href = "http://dog.com/dogbreeds.xml#Rottweiler".

Il seguente documento XML contiene collegamenti a ulteriori informazioni della razza del cane per ciascuno dei miei cani:

<?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>