# XLink

XLink è un linguaggio XML di markup usato per creare collegamenti ipertestuali nei documenti XML. Xlink è una specifica W3C che delinea metodi per creare collegamenti (link) tra risorse in documenti XML, sia interne che esterne al documento.

## Specifica XLink

La versione corrente di XLink è la 1.0 e ha ricevuto la certificazione W3C il 27 giugno 2001.

## Collegamento con XLink

XLink definisce un insieme di attributi che possono essere aggiunti agli elementi di altri spazi dei nomi XML. XLink fornisce due tipi di collegamenti ipertestuali da utilizzare nei documenti XML. I collegamenti semplici collegano solo due risorse, simili ai collegamenti HTML. I collegamenti estesi possono collegare un numero arbitrario di risorse.

### Link semplici

Un link semplice crea un collegamento ipertestuale unidirezionale da un elemento a un altro tramite un URI. Esempio:

### Link estesi

I link estesi consentono a più risorse, remote o locali, di essere collegate da più archi. Un arco ("arc") è un'informazione sull'origine, la destinazione e il comportamento di un collegamento tra due risorse. Le risorse di origine e destinazione sono definite da etichette. Utilizzando uno o più archi, un collegamento esteso può ottenere set specifici di connessioni tra più risorse.
Ad esempio se a tutte le risorse in un collegamento esteso fosse assegnata l'etichetta A, un arco all'interno di quel collegamento che dichiara formerebbe connessioni tra tutte le risorse: from="A", to="A"
I collegamenti estesi non devono essere contenuti nello stesso documento degli elementi a cui si collegano. Ciò rende possibile associare metadati o altre informazioni supplementari alle risorse senza modificare tali risorse.
XLink supporta anche informazioni più ricche sui tipi di collegamento e sui ruoli di ciascuna risorsa in un arco.

## Supporto per XLink
### All'interno di altre specifiche
#### SVG

I collegamenti ipertestuali in Scalable Vector Graphics possono essere definiti come XLink semplici. La bozza di lavoro di SVG 1.2 propone di utilizzare anche XLink estesi. Nella specifica SVG 2, XLink è stato deprecato a favore di attributi equivalenti senza spazi dei nomi.

#### RDDL

Il Resource Directory Description Language, un'estensione di XHTML Basic utilizzata per descrivere gli spazi dei nomi XML, utilizza XLink semplici.

#### XBRL

L'eXtensible Business Reporting Language ha utilizzato XLink semplici ed estesi sin dalla pubblicazione della specifica XBRL 2.0 nel 2001. La maggior parte delle tassonomie XBRL di grandi dimensioni contiene basi di collegamento estese. A partire dal 2009 XBRL è probabilmente l'uso più esteso di XLink nei sistemi di produzione.

#### METS

Il Metadata Encoding and Transmission Standard, supportato e gestito dalla Library of Congress per descrivere le aggregazioni di file, utilizza XLink semplici per indicare le posizioni dei file e basi di collegamento che descrivono le relazioni tra file esterni (sebbene questi limitino toe gli fromattributi siano di tipo IDREF invece di NMTOKEN).

#### GML

Geography Markup Language utilizza XLink semplici per implementare i riferimenti. In particolare GML utilizza xlink: href per supportare un modello grafico per le informazioni geospaziali. Il modello grafico di GML è essenzialmente lo stesso di RDF, su cui erano basate le prime versioni di GML. La specifica GML vincola la semantica di XLink in modo che sia essenzialmente la stessa di rdf: resource (dalla sintassi RDF/XML) cioè il referente può essere logicamente messo in linea e i dati sono ancora validi.

### Implementazioni
#### Mozilla Firefox

Mozilla Firefox ha supportato XLink semplici dalla versione 1.5, ma solo per i documenti SVG e MathML. Non è supportato in altri documenti XML. Solo xlink:href, xlink:show, xlink:targete xlink:titlesono supportati gli attributi.

#### Prince

Prince (precedentemente Prince XML) è un programma per computer che converte documenti XML e HTML in file PDF applicando i Cascading Style Sheets (CSS). Prince è un prodotto commerciale che può essere scaricato e utilizzato gratuitamente per scopi non commerciali. Prince supporta XLink semplici.

## Attributi e valori

Riferimento agli attributi XLink :
| Attributo | Valore | Descrizione |
| xlink:actuate | onLoad onRequest other none | Definisce quando la risorsa collegata viene letta e visualizzata: onLoad - la risorsa deve essere caricata e visualizzata quando viene caricato il documento onRequest - la risorsa non viene letta o visualizzata prima che venga fatto clic sul collegamento |
| xlink:href | URL | Specifica l'URL a cui collegarsi |
| xlink:show | embed new replace other none | Specifica dove aprire il collegamento. L'impostazione predefinita è "replace" |
| xlink:type | simple extended locator arc resource title none | Specifica il tipo di collegamento |

## XPointer e XLink

XPointer è un sistema per indirizzare i componenti dei media Internet basati su XML. È suddiviso in quattro specifiche: un " framework " che costituisce la base per identificare i frammenti XML, uno schema di indirizzamento degli elementi posizionali, uno schema per gli spazi dei nomi e uno schema per l'indirizzamento basato su XPath. XPointer Framework è una raccomandazione del W3C dal marzo 2003.
In questo esempio sono stati usati XPointer e XLink per puntare a una parte specifica di un altro documento. Il seguente documento XML è quello a cui si collega il documento XML successivo:
Il seguente documento XML contiene collegamenti a ulteriori informazioni sulla razza per ciascuno dei cani, collegandosi al documento di cui sopra: