eXtensible Markup Language Tutorial - by Marco Giannì
Capitolo IV: Ampliare i documenti XML

Collegamenti semplici nell'XML

I collegamenti XML dovrebbero più opportunamente essere considerati risorse di connessione. Questo significa che l'XLink è in grado di fornire il collegamento a qualunque risorsa raggiungibile tramite un localizzatore nell'elemento di collegamento. Questo concetto non è specifico dell'XLink: la nozione di risorse è legata al funzionamento del World Wide Web. L'XLink fornisce tuttavia una sintassi più sofisticata per la definizione degli elementi e del comportamento dei collegamenti, ad esempio la capacità di un collegamento di funzionare in più direzioni. L'XLink è inoltre più flessibile e consente a un documento di collegarsi a qualsiasi tipo di risorsa raggiungibile sul Web.

Come nell'HTML, i collegamenti semplici sono collegamenti in linea, ovvero fanno parte dell'elemento e funzionano in una sola direzione. Un collegamento semplice ha un solo identificatore di risorsa, o localizzatore. Il localizzatore, ad esempio l'attributo HREF nell'elemento Anchor, contiene i dati relativi al collegamento. Nell'XLink, tutte le informazioni sul localizzatore sono contenute all'interno dell'elemento di collegamento. Pertanto, l'applicazione di elaborazione non avrà bisogno di recuperare altre informazioni sul localizzatore.

Il primo esempio di collegamento riportato contiene un collegamento XML semplice. La creazione di un elemento di collegamento semplice nell'XML comporta maggiori difficoltà rispetto alla creazione di un elemento Anchor e all'assegnazione di un valore HREF. L'XML è un metalinguaggio, pertanto la creazione di un nuovo elemento che possa essere utilizzato in un documento richiede la dichiarazione dell'elemento e di tutti i relativi attributi. Il linguaggio XML e la specifica XLink forniscono un'ampia gamma di efficienti opzioni per la creazione di collegamenti. Creiamo adesso un elemento di collegamento semplice, denominato MYLINK. Riportiamo la dichiarazione dell'elemento e l'elenco degli attributi così come potrebbe comparire in una dichiarazione del tipo di documento (DTD).

<!ELEMENT MYLINK ANY>
<!ATTLIST MYLINK
 XML:LINK CDATA #FIXED "simple"
 HREF CDATA #REQUIRED
 INLINE (true|false) "true"
 ROLE CDATA #IMPLIED
 TITLE CDATA #IMPLIED
 SHOW (replace|new|embed) #IMPLIED
 ACTUATE (auto|user) #IMPLIED
 BEHAVIOR CDATA #IMPLIED
 CONTENT-ROLE CDATA#IMPLIED
 CONTENT-TITLE CDATA #IMPLIED
>

XML:LINK

Gli sviluppatori dell'XLink avrebbero potuto riservare un nome di tag (ad esempio <A> nell'HTML), riservare un nome di attributo o lasciare la scelta al software dell'applicazione per riconoscere un elemento come elemento di collegamento. Decisero di adottare un nome di attributo, ritenendo che questo avrebbe consentito agli autori di definire elementi personalizzati e contemporaneamente mantenere l'elemento di collegamento come parte del collegamento della struttura dell'elemento. Il risultato è l'attributo XML:LINK, che può avere valore simple o extended.

L'esempio precedente assegna il valore simple, poiché il collegamento in fase di creazione è di tipo semplice. L'esempio seguente mostra come apparirà l'elemento Mylink in un documento:

<MYLINK XML:LINK="simple"  HREF="http://www.miosito.com">
 My Home Page
</MYLINK>

L'attributo XML:LINK è incluso nell'elemento Mylink precedente, ma in quanto dichiarato con un valore fisso nella dichiarazione dell'elemento, non è necessario che l'elemento stesso includa l'attributo XML:LINK.

HREF

Ciascun elemento di collegamento nell'XML deve avere un localizzatore di risorsa che identifica la risorsa alla quale il collegamento fa riferimento. HREF è l'attributo del localizzatore nell'XLink e funziona come nell'HTML.

INLINE

Un elemento di collegamento XLink può essere in linea o non in linea. Un collegamento in linea funziona come risorsa propria, ovvero l'elemento di collegamento, analogamente alla destinazione del collegamento, fornisce contenuto. Anche in questo caso l'elemento Anchor HTML rappresenta perfettamente questo tipo di collegamento. Così come la destinazione del collegamento, l'elemento Anchor fornisce anche contenuto. Nell'esempio riportato il valore predefinito true fa parte della dichiarazione dell'attributo INLINE. Non è pertanto necessario specificare l'attributo nell'elemento.

ROLE

L'attributo ROLE indica al software dell'applicazione il significato del collegamento. Con questo attributo si intende fornire informazioni sul collegamento considerato come insieme e non solo come risorsa remota del collegamento. Queste applicazioni devono essere comprese dall'applicazione e non dagli utenti. L'utilizzo di ROLE consente di fornire all'applicazione informazioni dettagliate sui collegamenti che vanno oltre la semplice indicazione della risorsa a cui rimandano. Ad esempio, alcuni collegamenti potrebbero condurre a voci di glossario, altri a informazioni generali su un determinato argomento, altri ancora a informazioni sulle proprietà di una risorsa, tra cui informazioni sulla versione. Le applicazioni possono ora ottenere questo tipo di informazioni direttamente dal collegamento e agire di conseguenza.

TITLE

L'attributo TITLE, simile al tag <ALT> dell'HTML, contiene un'etichetta visualizzabile o del testo che può essere utilizzato per fornire informazioni supplementari all'utente. Si tratta di un attributo per risorse remote: l'informazione TITLE non intende correlarsi al collegamento nel suo insieme, bensì fornire informazioni all'utente sulla relazione esistente tra risorsa e collegamento. Mentre l'attributo ROLE viene interpretato dal computer, l'attributo TITLE si rivolge all'utente.

SHOW

L'attributo SHOW fa parte della semantica per le risorse remote dell'XML e rappresenta probabilmente uno dei miglioramenti più rilevanti rispetto ai collegamenti HTML. L'attributo SHOW accetta valori come replace, new ed embed, che descrivono il modo in cui il collegamento dovrà funzionare. Il valore replace indica che la risorsa locale viene sostituita da una risorsa remota. Questa tecnica è tra le più comunemente utilizzate dai collegamenti HTML. Il valore new specifica che la risorsa di destinazione deve essere aperta in un contesto nuovo. Una funzionalità simile è fornita nell'HTML dall'attributo TARGET dell'elemento Anchor: la destinazione del collegamento si apre in un nuovo contesto, in genere un'altra finestra del browser. Il valore embed indica la nuova tecnica relativa al funzionamento di un collegamento. Se viene specificato il valore embed, il contenuto della destinazione del collegamento viene incorporato nel contenuto dell'origine del collegamento. Quando l'utente fa clic sul collegamento con il valore embed specificato, le informazioni vengono visualizzate nel contesto, direttamente all'interno del documento di origine.

ACTUATE

L'attributo ACTUATE specifica il modo in cui il collegamento deve essere attivato. Questo attributo può accettare il valore auto o user. Il valore auto indica che il collegamento deve essere attivato automaticamente quando il collegamento viene elaborato dall'applicazione. Il valore user specifica che il collegamento deve essere attivato da un meccanismo esterno, ad esempio un clic del mouse. Combinando inoltre l'attributo SHOW=embed con l'attributo ACTUATE=auto è possibile creare un documento contenente molti collegamenti incorporati. Quando un utente apre il documento, tutti i collegamenti vengono automaticamente attivati e incorporati direttamente nel documento. Il documento composto che ne deriva contiene informazioni raccolte da varie origini invisibili all'utente.

BEHAVIOR

L'attributo BEHAVIOR fornisce all'autore del collegamento uno spazio in cui descrivere cosa accadrà all'attivazione del collegamento. Al collegamento possono ad esempio essere associati gli stati "precedente" e "successivo". Lo stato precedente corrisponde all'aspetto del collegamento prima che venga attivato e può includere tipo di carattere, colori e altri elementi di formattazione. Lo stato successivo rimanda a quanto si verifica dopo l'attivazione del collegamento, ovvero al comportamento del collegamento. L'attributo BEHAVIOR non presenta vincoli e può contenere qualunque tipo di istruzione che possa essere comunicata all'applicazione che elabora il collegamento.

CONTENT-ROLE

Questo attributo funziona in modo analogo all'attributo ROLE, ma è specifico delle risorse locali. Indica all'applicazione lo scopo della risorsa locale come parte del collegamento. Come l'attributo ROLE, questa informazione viene utilizzata dall'applicazione e non dagli utenti.

CONTENT-TITLE

Anche CONTENT-TITLE è un attributo della semantica delle risorse locali che fornisce informazioni all'utente relativamente alla parte locale del collegamento. Svolge una funzione simile a quella dell'attributo TITLE, ma si rivolge agli utenti.

<indietro home page avanti>

Copyright © 2000-2005. Tutti i diritti sono riservati. Per informazioni: mgianni@infinito.it