XML Linking Language (XLink) Laura Papaleo Papaleo@disi.unige.it
Xlink - Introduzione L’XML Linking Language (XLink), è un concetto avanzato di collegamento tra risorse. La specifica XLink introduce una namespace (http://www.w3.org/1999/xlink) Tale namespace contiene gli elementi globali (attributi per la maggior parte) Gli elementi globali possono essere inseriti nel markup XML dei documenti (che permettano estensioni) In questo modo possono essere creati vari tipi di riferimenti a risorse.
Xlink - Tipologie di Link Esistono due tipi di famiglie di link esprimibili con Xlink: Link semplici e unidirezionali, simili agli hyperlink di HTML (Simple Links), Link bidirezionali (Extended Links), comprendenti risorse locali e remote, regole per la navigazione tra esse
Xlink: Simple Links Un XLink simple esprime un link tra due risorse, una locale e una remota, con un arco che collega la prima alla seconda L’XLink simple deve avere un attributo xlink:href che punta alla risorsa remota. La risorsa locale è sempre l’elemento XLink di origine Simile ad HTML <crossReference xmlns:xlink=http://www.w3.org/1999/xlink xlink:type="simple“ xlink:href=“page2.xml#b“ > Vai a pagina xxx </crossReference>
XLink nei documenti XML Ogni elemento XML può essere dichiarato come un elemento di linking Inserendo xlink:type. Nella fase di progettazione di uno Schema di un nuovo linguaggio, L’idea è di marcare tutti quegli elementi che saranno usati come link Si inserisce quindi un attributo con un valore fissato (fixed).
XLink negli Schemi XML <xs:element name=“mionome"> <xs:complexType> <xs:attribute ref="xlink:type" type="xs:string" use="prohibited" fixed="locator"/> <xs:attribute ref="xlink:href" type="xs:string" use="required"/> <xs:attribute ref="xlink:label" type="xs:string" use="required"/> <xs:attribute ref="xlink:role" type="xs:string" use="optional"/> <xs:attribute ref="xlink:title" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name=“tuonome"> <xs:attribute ref="xlink:type" type="xs:string" use="prohibited" fixed="arc"/> <xs:attribute ref="xlink:from" type="xs:string" use="required"/> <xs:attribute ref="xlink:to" type="xs:string" use="required"/> <xs:attribute ref="xlink:show" type="xs:string" use="required"/> <xs:attribute ref="xlink:actuate" type="xs:string" use="required"/>
Xlink: Terminologia Un link viene definito come un generico collegamento tra risorse o parti di risorse (lezione iniziale di XML sugli ipertesti) Utilizzare un link significa attraversare un link. Come attraversare un link sono dette arco la direzione, la reazione dell’applicazione all’attraversamento,
Attributi nel namespace XLink Ecco gli attributi definiti da XLink type, href, role, arcrole, title, show, actuate, label, from, to. La semantica di un elemento XLink è dichiarata in type. I valori per questo attributo sono: simple, extended, locator, arc, resource, title.
Xlink: Extended Links Un oggetto di XLink di tipo extended contiene: title: descrizione testo del link. locator: risorse remote partecipanti. resource: risorse locali partecipanti. arc: regole di attraversamento del link. L’elemento può avere anche gli attributi : role: un URI che descriva la funzione del link. title: un titolo per l’intero link.
Esempio: Extended Links <?xml version="1.0" encoding="UTF-8"?> <casa xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <note xlink:type="resource" xlink:label="r1"> <nome>nome_nome</nome> <cognome>cognome_cognome</cognome> </note> <persona xlink:type="locator" xlink:href="www.pippo.com/lavoranti/p1" xlink:label="p1" xlink:role="www.company.com/dipendenti" xlink:title="Nome1 Cognome1"/> <persona xlink:type="locator" xlink:href="www.pippo.com/lavoranti/p2" xlink:label="p2" xlink:role="www.company.com/dipendenti" xlink:title="Nome2 Cognome2"/> <persona xlink:type="locator" xlink:href="www.pippo.com/capi/p3" xlink:label="p3" xlink:role="www.company.com/capi" xlink:title="Nome3 Cognome3"/> <contatto xlink:type="locator“ xlink:href="www.pippo.com/casa/r2" xlink:label="r2" xlink:title="Acquisti"/> <impiego xlink:type="arc" xlink:from="p1" xlink:to="r1" xlink:show="new" xlink:actuate="onRequest"/> <impiego xlink:type="arc" xlink:from="p2" xlink:to="r1" xlink:show="new" xlink:actuate="onRequest"/> <impiego xlink:type="arc" xlink:from="p3" xlink:to="r1" xlink:show="new" xlink:actuate="onLoad"/> <gerarchia xlink:type="arc" xlink:from="p1" xlink:to="p3" xlink:show="new" xlink:actuate="onRequest"/> <gerarchia xlink:type="arc" xlink:from="p2" xlink:to="p3" xlink:show="new" xlink:actuate="onRequest"/> <rapporto xlink:type="arc" xlink:from="r2" xlink:to="r1" xlink:show="new" xlink:actuate="onRequest"/> </casa>
Extended Links XLink Extended Gerarchia Impiego Impiego Rapporto Persona Nome1 Cognome1 Gerarchia XLink Extended Persona Nome3 Cognome3 Impiego Nome Cognome Contatto --- Impiego Rapporto Impiego Persona Nome2 Cognome2 Gerarchia
Xlink: uso dei Locators Gli elementi locator indirizzano risorse esterne. Devono contenere l’attributo xlink:href che punta alla risorsa remota. Possono contenere anche gli attributi label, role e title. <impiegato xlink:href="www.pippo.com/impiegati/p1" xlink:type="locator" xlink:label="p1“ xlink:role="www.pippo.com/impiegati" xlink:title="Nome1 Cognome1"/>
Xlink: Uso dei Resources Gli elementi resource contengono risorse locali. Rappresentano la risorsa locale che partecipa al link. Tali elementi possono contenere anche gli attributi label, role e title. <note xlink:type="resource“ xlink:label=“t34"> <nome>MiNome</nome> <cognome>MioCognome</cognome> </note>
Xlink: Uso degli Arcs Gli elementi arc contengono le regole di attraversamento del link Gli attributi xlink:from e xlink:to si riferiscono alle label delle risorse agli estremi dell’arco. L’attributo xlink:actuate specifica in che modo deve essere attivato il link. L’attributo xlink:show specifica come debba essere visualizzato il risultato. Gli elementi arc possono contenere anche gli attributi arcrole e title.
XML Pointer Language (XPointer)
Xpointer: Introduzione Il linguaggio XML Pointer (XPointer) serve a costruire fragment identifier nelle URI di documenti text/xml, application/xml, text/xml-external-parsed-entity, application/xml-external-parsed-entity. Un fragment identifier è la parte di una URI che segue il carattere speciale ‘#’ . Ad esempio, nella URI http://mioesempio.it/mio.html#b2 il fragment identifier è b2.
XPointer : legame con XPath XPointer è basato sul linguaggio XPath. Con XPath, è possibile indicare un punto all’interno della struttura gerarchica di una applicazione XML. XPointer estende XPath con alcune funzionalità.
Xpointer: i Tipi Un oggetto XPointer può avere tre forme fondamentali: <B> <C> <D id="pippo"/> </C> </B> <E/> </A> Un oggetto XPointer può avere tre forme fondamentali: Un nome singolo, definisce l’elemento avente un attributo ID come il nome dato. Una sequenza numerica, per individuare un nodo nella struttura “muovendosi” nel documento. Un full XPointer, utilizza XPath per identificare il nodo. /1/2/1 (XPointer sequenza di figli) pippo (XPointer nome) xpointer(/A/B[2]) (XPointer completo)