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 nellelemento di collegamento. Questo concetto non è specifico dellXLink: la nozione di risorse è legata al funzionamento del World Wide Web. LXLink 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. LXLink è inoltre più flessibile e consente a un documento di collegarsi a qualsiasi tipo di risorsa raggiungibile sul Web. Come nellHTML, i collegamenti semplici sono collegamenti in linea, ovvero fanno parte dellelemento e funzionano in una sola direzione. Un collegamento semplice ha un solo identificatore di risorsa, o localizzatore. Il localizzatore, ad esempio lattributo HREF nellelemento Anchor, contiene i dati relativi al collegamento. NellXLink, tutte le informazioni sul localizzatore sono contenute allinterno dellelemento di collegamento. Pertanto, lapplicazione 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 nellXML comporta maggiori difficoltà rispetto alla creazione di un elemento Anchor e allassegnazione di un valore HREF. LXML è un metalinguaggio, pertanto la creazione di un nuovo elemento che possa essere utilizzato in un documento richiede la dichiarazione dellelemento e di tutti i relativi attributi. Il linguaggio XML e la specifica XLink forniscono unampia gamma di efficienti opzioni per la creazione di collegamenti. Creiamo adesso un elemento di collegamento semplice, denominato MYLINK. Riportiamo la dichiarazione dellelemento e lelenco 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 dellXLink avrebbero potuto riservare un nome di tag (ad esempio <A> nellHTML), riservare un nome di attributo o lasciare la scelta al software dellapplicazione 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 lelemento di collegamento come parte del collegamento della struttura dellelemento. Il risultato è lattributo XML:LINK, che può avere valore simple o extended. Lesempio precedente assegna il valore simple, poiché il collegamento in fase di creazione è di tipo semplice. Lesempio seguente mostra come apparirà lelemento Mylink in un documento: <MYLINK XML:LINK="simple" HREF="http://www.miosito.com"> My Home Page </MYLINK> Lattributo XML:LINK è incluso nellelemento Mylink precedente, ma in quanto dichiarato con un valore fisso nella dichiarazione dellelemento, non è necessario che lelemento stesso includa lattributo XML:LINK. HREF Ciascun elemento di collegamento nellXML deve avere un localizzatore di risorsa che identifica la risorsa alla quale il collegamento fa riferimento. HREF è lattributo del localizzatore nellXLink e funziona come nellHTML. INLINE Un elemento di collegamento XLink può essere in linea o non in linea. Un collegamento in linea funziona come risorsa propria, ovvero lelemento di collegamento, analogamente alla destinazione del collegamento, fornisce contenuto. Anche in questo caso lelemento Anchor HTML rappresenta perfettamente questo tipo di collegamento. Così come la destinazione del collegamento, lelemento Anchor fornisce anche contenuto. Nellesempio riportato il valore predefinito true fa parte della dichiarazione dellattributo INLINE. Non è pertanto necessario specificare lattributo nellelemento. ROLE Lattributo ROLE indica al software dellapplicazione 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 dallapplicazione e non dagli utenti. Lutilizzo di ROLE consente di fornire allapplicazione 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 Lattributo TITLE, simile al tag <ALT> dellHTML, contiene unetichetta visualizzabile o del testo che può essere utilizzato per fornire informazioni supplementari allutente. Si tratta di un attributo per risorse remote: linformazione TITLE non intende correlarsi al collegamento nel suo insieme, bensì fornire informazioni allutente sulla relazione esistente tra risorsa e collegamento. Mentre lattributo ROLE viene interpretato dal computer, lattributo TITLE si rivolge allutente. SHOW Lattributo SHOW fa parte della semantica per le risorse remote dellXML e rappresenta probabilmente uno dei miglioramenti più rilevanti rispetto ai collegamenti HTML. Lattributo 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 nellHTML dallattributo TARGET dellelemento Anchor: la destinazione del collegamento si apre in un nuovo contesto, in genere unaltra 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 dellorigine del collegamento. Quando lutente fa clic sul collegamento con il valore embed specificato, le informazioni vengono visualizzate nel contesto, direttamente allinterno del documento di origine. ACTUATE Lattributo 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 dallapplicazione. Il valore user specifica che il collegamento deve essere attivato da un meccanismo esterno, ad esempio un clic del mouse. Combinando inoltre lattributo SHOW=embed con lattributo 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 allutente. BEHAVIOR Lattributo BEHAVIOR fornisce allautore del collegamento uno spazio in cui descrivere cosa accadrà allattivazione del collegamento. Al collegamento possono ad esempio essere associati gli stati "precedente" e "successivo". Lo stato precedente corrisponde allaspetto 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 lattivazione del collegamento, ovvero al comportamento del collegamento. Lattributo BEHAVIOR non presenta vincoli e può contenere qualunque tipo di istruzione che possa essere comunicata allapplicazione che elabora il collegamento. CONTENT-ROLE Questo attributo funziona in modo analogo allattributo ROLE, ma è specifico delle risorse locali. Indica allapplicazione lo scopo della risorsa locale come parte del collegamento. Come lattributo ROLE, questa informazione viene utilizzata dallapplicazione e non dagli utenti. CONTENT-TITLE Anche CONTENT-TITLE è un attributo della semantica delle risorse locali che fornisce informazioni allutente relativamente alla parte locale del collegamento. Svolge una funzione simile a quella dellattributo TITLE, ma si rivolge agli utenti. |