Il linguaggio HTML gestisce in maniera integrata e nativa i collegamenti tra un documento e l’altro e riferimenti a punti specifici all’interno di altri documenti.
Questo avviene in maniera automatica utilizzando il tag Link.
Questa funzionalità non è presente in XML in modo nativo, ma è possibile ottenere gli stessi risultati utilizzando applicazioni di XML stesso, cioè tecnologie come XLink, XPointer e XPath.
XLink (XML Linking Language)
In HTML, è possibile inserire in un documento un collegamento ipertestuale ad un altro documento, oppure ad una particolare sezione di esso, utilizzando il tag Link che è standard del linguaggio di markup.
Il dispositivo deputato alla visualizzazione del documento HTML visualizzerà il tag in questione in maniera differente perché sia immediatamente identificato dall’utilizzatore, a meno di istruzioni particolari all’interno del codice stesso.
Quando l’utente vorrà passare al documento successivo, quello linkato attraverso il collegamento, non dovrà far altro che effettuare un click sul collegamento stesso. Lo standard, infatti, prevede che l’operazione di base per il salto ipertestuale tra oggetti differenti avvenga effettuando un click sul collegamento.
Nel momento in cui, però, viene richiesto il passaggio al documento collegato, il precedente, cioè il documento contenente il collegamento, viene sostituito, all’interno del dispositivo di visualizzazione, dal documento collegato. Per tornare al documento precedente è necessario utilizzare una specifica funzione del browser che va a ripescare dalla cache, o al limite ricarica via HTTP, il documento precedente.
Il limite di questa architettura, come si può intuire, è l’unidirezionalità dello strumento.
Il link è sempre e comunque in una direzione, dal documento che contiene il link stesso verso il documento collegato.
XLink tenta di porre rimedio a tale limitazione permettendo collegamenti multidirezionali tra i documenti.
Con XLink è possibile avere collegamenti estesi di questo tipo:
- collegamenti bidirezionali, un utente può tornare al documento precedente utilizzando lo stesso link che lo ha portato al documento di destinazione;
- collegamenti a destinazioni multiple in funzione della scelta dell’utente;
- collegamenti ad effetto multiplo, il nuovo documento può essere aperto nella stessa finestra, oppure in una finestra separata oppure, ancora, all’interno del documento stesso, al posto del link;
- collegamento ad eventi, il link può essere attivato al click dell’utente oppure da un qualsiasi evento di sistema.
Vediamo un esempio di XLink:
xlink:type = “simple”
xlink:show = “new”
xlink:href = “http://www.mysite.com/moreinfo.xml”<
Do you need more info?/
Questo è il caso della creazione di un link semplice, che ricorda da vicino l’hyperlink di HTML. Il comportamento è ottenuto dando il valore simple all’attributo type. L’attributo show invece ha il valore new, che identifica la visualizzazione del nuovo documento all’interno di una nuova finestra, un po’ quello che succede inserendo il valore _new nell’attributo target del tag in HTML.
Questo codice è analogo al seguente codice HTML:
/
XLink, però, permette anche altri tipi di collegamento, come abbiamo visto, per capire meglio quali siano le possibilità offerte da XLink, diamo un’occhiata agli attributi che si possono inserire all’interno di un link creato con XLink.
type = (simple | extended | locator | document)
Identifica la tipologia di collegamentoHREF CDATA #REQUIRED
Come in HTML è il documento di destinazioneINLINE (true | false)
Un collegamento può essere inline, cioè portarsi dietro tutto il contenuto dell’elemento di destinazione, oppure offline, cioè essere solo collegamento fisico ad una risorsa.ROLE CDATA
Il significato del collegamentoTITLE CDATA
Testo utilizzato per fornire informazioni supplementari all’utenteSHOW (replace | new | embed)
Indica la destinazione di visualizzazione del collegamentoACTUATE (auto | user)
La modalità di attivazione del collegamentoBEHAVIOR CDATA
Il comportamento da assumere in fase di elaborazione del collegamentoCONTENT-ROLE CDATA
Il significato del collegamento dal punto di vista delle risorse localiCONTENT-TITLE CDATA
Informazioni aggiuntive a livello di utenteUtilizzando XLink è possibile scrivere molte combinazioni di attributi, ognuna delle quali offre funzionalità applicative che non siamo abituati a trovare in HTML.
La scelta di utilizzare un attributo di un qualsiasi tag per identificare il codice di un collegamento, al posto di quello che ci si poteva aspettare, cioè un tag speciale, è stata fatta dal team che ha sviluppato la specifica di XLink, per fare in modo di non vincolare chi scrive codice XML ad utilizzare un particolare tag, ma semplicemente ad utilizzare un nuovo attributo, utilizzabile con qualsiasi tag XML valido.
In questo modo qualsiasi elemento XML sarà in grado di diventare un link semplice oppure un link esteso, a condizione che contenga i parametri giusti.È possibile cioè inserire nel codice XML collegamenti estesi inline oppure estesi offline, fino ad arrivare a gruppi di collegamenti estesi.
Quest’ultima possibilità è particolarmente interessante in quanto è possibile creare strutture informative reticolari e multidimensionali riutilizzando porzioni di codice già
presenti all’interno dei singoli documenti XML.Come vedete la materia si fa complessa.
Mi aspetto dai lettori più volenterosi qualche esempio di codice XLink da pubblicare.
Forse vuoi scoprire come usare XPointer per referenziare parti interne di documenti XML.