XML , XLink e XPointer
XLink viene utilizzato per creare collegamenti ipertestuali in documenti XML.
|
Supporto del browser XLink
Non esiste il supporto del browser per XLink nei documenti XML.
Tuttavia, tutti i principali browser supportano XLink in SVG .
Sintassi XLink
In HTML, l'elemento <a> definisce un collegamento ipertestuale. Tuttavia, non è così che funziona in XML. Nei documenti XML, puoi utilizzare qualsiasi nome di elemento desideri, quindi è impossibile per i browser prevedere quali elementi di collegamento verranno chiamati 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="https://www.w3schools.com">Visit W3Schools</homepage>
<homepage xlink:type="simple"
xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>
Per ottenere l'accesso alle funzionalità di XLink, dobbiamo dichiarare lo spazio dei nomi XLink. Lo spazio dei nomi XLink è: "http://www.w3.org/1999/xlink".
Gli attributi xlink:type e xlink:href negli elementi <homepage> provengono dallo spazio dei nomi XLink.
Il xlink:type="simple" crea un semplice collegamento "simile a HTML" (significa "fai clic qui per andare lì").
L'attributo xlink:href specifica l'URL a cui collegarsi.
Esempio XLink
Il seguente documento XML contiene le funzionalità di 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 all'inizio del documento (xmlns:xlink="http://www.w3.org/1999/xlink")
- xlink:type="simple" crea un semplice collegamento "simile a HTML".
- L'attributo xlink:href specifica l'URL a cui collegarsi (in questo caso, un'immagine)
- Il xlink:show="new" specifica che il collegamento dovrebbe aprirsi in una nuova finestra
XLink - Andare oltre
Nell'esempio sopra abbiamo dimostrato semplici XLink. XLink sta diventando più interessante quando si accede a località remote come risorse, anziché come pagine autonome.
Se impostiamo il valore dell'attributo xlink:show su "embed", la risorsa collegata dovrebbe essere elaborata in linea all'interno della pagina. Se si considera che questo potrebbe essere un altro documento XML, è possibile, ad esempio, creare una gerarchia di documenti XML.
Puoi anche specificare QUANDO dovrebbe apparire la risorsa, con l'attributo xlink:actuate.
Riferimento attributo 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 |
Puntatore XP
|
Supporto del browser XPer
Non è disponibile il supporto del browser per XPointer. Ma XPointer è usato in altri linguaggi XML.
Esempio di XPointer
In questo esempio, useremo XPointer insieme a XLink per puntare a una parte specifica di un altro documento.
Inizieremo osservando il documento XML di destinazione (il documento a cui ci stiamo collegando):
<?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>
Nota che il documento XML sopra usa gli attributi id su ogni elemento!
Quindi, invece di collegare all'intero documento (come con XLink), XPointer ti consente di collegarti a parti specifiche del documento. Per creare un collegamento a una parte specifica di una pagina, aggiungi un segno numerico (#) e un'espressione XPointer dopo l'URL nell'attributo xlink:href, in questo modo: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". L'espressione si riferisce all'elemento nel documento di destinazione, con il valore id di "Rottweiler".
XPointer consente anche un metodo abbreviato per il collegamento a un elemento con un id. Puoi utilizzare direttamente il valore dell'id, in questo modo: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Il seguente documento XML contiene collegamenti a ulteriori informazioni sulla 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="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>