Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Internet


Qdidactic » stiinta & tehnica » informatica » internet
XLink: crearea de hiperlegaturi flexibile si puternice - rolul XLink-ului



XLink: crearea de hiperlegaturi flexibile si puternice - rolul XLink-ului



Abstract


The World Wide Web Consortium specification (W3C) defines the XML Linking Language (XLink), which allows elements to be inserted into XML documents in order to create and describe links between resources. XLink provides a framework for creating both basic unidirectional links and more complex linking structures. As well as more sophisticated links, we may use XML syntax to create structures that can describe links, similar to the simple unidirectional hyperlinks of today's HTML. In the next pages, there are presented: how XML Link works, what are the requested terms, concepts, elements and atributes for a proper understanding and used of XLink syntax, how we build this XLink construction.


XML Linking Language (XLink) promite un salt urias inainte referitor la legaturile hipertext pe Internet, un plus fata de ceea ce ofereau ele pana acum. Un fost membru marcant al grupului de lucru Xlink (W3C) facea remarca: “XLink-ul este hipertextul anilor 1970”. El aduce un avans semnificativ, o flexibilitate si o maleabilitate peste tipurile de legaturi hipertext pe care le avem astazi in HTML. 


XML Linking, cunoscut inainte ca simplu XLink, este un concept in lucru al Consortiului Web (W3C). Acesta este strans legat de Recomandarea XML, dar adauga functionalitate functiilor hipertext si hipermedia. Specificatia legaturilor in XML, denumita XLL (The eXtensible Linking Language), prezinta un model standard pentru realizarea hiperlegaturilor. Aceasta foloseste sintaxa XML pentru a crea structuri ce pot descrie hiperlink-urile unidirectionale simple ale HTML-urilor existente, dar si link-urile mai sofisticate.


XLL da posibilitati de a defini semantica unei legaturi, nu doar sintaxa ei, introducand si notiunea de legaturi extinse in care sunt implicate mai mult de doua resurse (nu doar o sursa si o destinatie) – directia XLink.




Munca grupului de lucru XML Linking este concretizata in doua componente majore:

XLink-ul propriu-zis – ofera capacitati avansate de realizare a hiperlegaturilor intre fisiere XML, cum ar fi cele multidirectionale si externe.

XPointer-ul – pointeri extinsi – furnizeaza un mod convenabil si usor de inteles prin descrierea locatiilor din documentele XML. XPointer-ul este sintaxa folosita pentru a realiza legaturi cu anumite parti ale unui fisier XML, compus dintr-o serie de termeni de localizare relativi la alte locatii. XPointer-ul este un nivel superior al XPath-ului, care ofera o metoda sofisticata de localizare a resurselor. Stratul XPointer furnizeaza pentru locatie alte tipuri de date, selectii, care nu sunt in intregime noduri si corespund indeaproape constructiei “DOM range”. XML
XPointer-ul imprumuta concepte din HyTime si TEI, oferind o sintaxa ce permite localizarea unei resurse prin traversarea arborelui de elemente al documentului continuand acea resursa.


XLL (The eXtensible Linking Language) este format dintr-un set al mecanismelor, standardelor si sistemelor hipermedia. Urmatoarele standarde au influentat in mod special design-ul XLL-ului:

HTML – defineste cateva tipuri de elemente care reprezinta link-uri;

HyTime – defineste structuri liniare, structuri de legatura si structuri terte de legatura si alte cateva structuri semantice, inclusiv controlul transversal si prezentarea obiectelor;

Text Encoding Initiative Guidelines – furnizeaza structurile pentru crearea link-urilor, obiecte agregate si colectii de link-uri.


XLink este editat de catre Steve DeRose, iar co-editori sunt James Clark (XPath), Ron Daniel (XPointer), David Orchard si Ben Trafford (XLink).


XLink adauga tipuri avansate de functionalitati hipertext legaturilor ce se gasesc pe Web (si in alte medii unde poate fi gasit):

Link-uri care conduc catre destinatii multiple;

Link-uri bidirectionale – unde butonul “Back” din HTML nu inseamna deloc acelasi lucru: un link bidirectional poate fi traversat in ambele directii indiferent daca ai parcurs celalalt sens mai intai;

Link-uri care adnoteaza documentele read-only. Poti crea link-uri care vor demasca momentul in care anumiti oameni vor vedea un document, chiar daca nu detii acel document. Aceasta presupune, bineinteles, un proces de decizie: ce link-uri doresti sau nu sa le vezi prin acest mod; prin aceasta se poate construi o valoroasa infrastructura de adnotari, comentarii, evaluari si discutii pe Web;

Un mod standard de atasare a rolurilor si a titlurilor descriptive carora le sunt atasate link-urile, precum si declararea conexiunilor intre sfarsiturile de documente;

Link databases – cu toate posibilitatile normale pentru realizarea filtrarilor, sortarilor, analizelor si procesarea colectiilor de link-uri (legaturi intre baze de date);

Link-uri cu un anumit comportament, cum ar fi extinderea in loc (expand-in-place), o noua fereastra versus alta si tot asa, cu toate ca aceste comportamente pot fi programate acum cu Java sau cu alte limbaje, furnizand semantica adecvata. Specificatiile complete necesita elemente de stil cum ar fi XSL-ul, dar pentru multe aplicatii simple sugestiile constructive ale XLink-ului sunt suficiente.


Rolul XLink-ul


XLink reprezinta protocolul ce a fost propus pentru a se ocupa de legaturile dintre fisierele XML. Aceste specificatii sunt mai complicate decat un link obisnuit din HTML, care se facea doar de la sursa catre destinatie.


XLink permite definirea link-urilor care stabilesc conexiuni ce sunt multidirectionale si multidimensionale. Link-urile pot merge doar intr-o directie dorita (forward sau backward) sau se pot deplasa atat inainte, cat si inapoi si pot face lucrul acesta pentru mai multe resurse. Link-urile HTML definesc o cale de miscare inainte, dintr-o anume portiune a unui document, cu o foarte mica flexibilitate in ceea ce priveste modul de determinare al link-ului. Hiperlink-urile in HTML apar prin click-ul utilizatorilor, in timp ce imaginile apar prin incarcarea aplicatiilor si incapsularea imaginilor fara interventia utilizatorului. Hiperlink-urile din XLink sunt intr-o mare varietate in ceea ce priveste modul de interactionare cu utilizatorii, aplicatiile si resursele.


XLink permite definirea unor seturi de resurse – nu doar puncte dintr-un document – si definirea conexiunilor dintre resurse. Aplicatiile XLink au nevoie de mai mult decat de un buton “Back”; ele au nevoie sa fie amintite ce link-uri vin de unde, sa fie adaugate link-uri potrivite care sa arate catre un document anterior sau catre alte documente. Aplicatiile suport pentru XLink-uri trebuie sa fie capabile sa retina link-urile si sa le foloseasca in scopuri care permit utilizatorilor sa stabileasca legaturi catre documente pe care ei nu le controleaza. Cel de-al doilea standard, XPointer, face posibil sa fie identificat cu precizie link-ul resursa (locator) fara sa fie controlate documentele originale.


De ce este folositor XLink-ul? El inseamna o economie imensa pe care programatorii o pot face pentru gestionarea sutelor de mii de link-uri imprastiate catre miile de documente. Aceasta inseamna ca functionalitatea principala a legaturilor poate fi definita intr-un singur loc si distribuita mai multor clienti. Inseamna ca oamenii pot lega sau se pot lega la documente pe care nu le controleaza. De asemenea, programatorii pot construi noi tipuri de interfete cu utilizatorii care furnizeaza diferite conexiuni cu utilizatori cu cerinte diferite aflate in cadrul aceleiasi aplicatii.


Referinta XLink


Avand acum o prima idee despre XLink, sa incercam sa declaram cateva structuri simple de link-uri, atributele necesare in marcarea link-urilor, precum si nivelurile de legaturi din XML Linking, cu exemple adecvate.


XLink-ul lucreaza furnizand atributele globale care pot fi folosite pentru a marca elementele ce devin legaturi (linking elements). Pentru a putea sa introducem un XLink este obligatoriu sa declaram numele XLink-ului:


<elementul_meu xmlns:xlink='https://www.w3.org/1999/xlink'> .


Utilizand atribute globale oferite de XLink, unul dintre ele poate specifica daca un anumit element este un element de legatura, precum si proprietatile lui (cand se incarca resursele de legatura, cum le vedem de indata ce se incarca etc). Atributele globale oferite de XLink sunt urmatoarele (Tabelul 1):


Tabelul 1

Tipurile de definitie
ale atributelor

type

Atribut resursa (locator)

href

Atribute semantice

role, arcrole, title

Atribute de comportament

show, actuate

Atribute transversale (transversal)

label, from, to


O legatura exprima o relatie intre resurse. O resursa este orice locatie (un element identificat de un atribut ID sau continutul unui element legatura) care este adresat de catre un link (legatura).



















Figura 1


Atributul XLink “type”


Atributul “type” poate avea unul din urmatoarele valori:

simple: link simplu;

extended: link extins, link multi-resurse;


locator: pointer catre o resursa externa;

resource: o resursa interna;

arc: regula transversala intre resurse;

title: un titlul descriptiv catre un alt element de link. 


Urmatoarele doua tabele rezuma atributele si restrictiile subelementelor pentru fiecare tip (sunt prezentate aici ca referinte, urmand a fi explicate in continuare). In tabelul 2, “Oblig.” indica “obligatoriu”, cerut, iar “Opt.” indica “optional”. Spatiul gol indica o combinatie invalida. Tabelul 3 arata ce elemente XLink sunt permise cu subelementele XLink.

Tabelul 2

Atribute

simple

extended

locator

arc

resource

title

type

Oblig.


Oblig.

Oblig.

Oblig.

Oblig.

href

Opt.


Oblig.




role

Opt.

Opt.

Opt.


Opt.


arcrole

Opt.



Opt.



title

Opt.

Opt.

Opt.

Opt.

Opt.


show

Opt.



Opt.



actuate

Opt.






label



Opt.


Opt.


from




Opt.



to




Opt.



Folosirea atributelor (Specificatia W3C)

Oblig. = obligatoriu; Opt.= optional


Tabelul 3

Type Parinte

Tipurile semnificative ale elementului copil

simple


extended

locator, arc, resource, title

locator

title

arc

title

resource


title


Tipurile semnificative ale elementului copil (Specificatia W3C)



Tehnologia XLink se poate folosi, de exemplu, atunci cand dorim sa avem legaturi intre anumite date dintr-un anumit fisier .xml si nu dorim sa folosim aceste legaturi prin alte elemente, deoarece nu mai sunt la fel de clare legaturile.



Link-uri Simple si Extinse


XLink nu cere programatorilor si aplicatiilor sa schimbe radical modul in care realizau legaturile. El ofera cateva optiuni ce permit sa se inceapa cu sintaxa XLink-ului, dar sa se continue in mare masura pe linia stiuta din HTML. Astfel, se obtine mai mult control asupra modului de interactionare, dar exista un singur tag “href”, conexiunile merg de la punctul link-ului catre resursa, identificata prin atributul “href” si implementarea este cu mult mai simpla.


In XLink avem doua tipuri de elemente de legatura:

simple – seamana foarte mult cu tag-urile “a” si “img” din HTML, prin care se includ amandoua tipurile de comportament in aceeasi constructie;

extinse – pot fi folosite si grupuri de legaturi extinse (legaturi recursive).


Legaturile sunt reprezentate ca elemente. Oricum, XLink-ul nu impune nume particulare pentru link-uri ca in HTML, lasa, in schimb, sa se decida ce elemente proprii documentului pot servi ca link-uri, prin intermediul atributului “type”.


Legaturi simple


Legaturile simple conecteaza elementul in care sunt declarate cu resursa identificata prin atributul “xlink:href”. Toate comportamentele legaturii simple, definite prin atribute, sunt prezentate in tabelul care urmeaza (Tabelul 4):

Tabelul 4

Atribut

Explicatii

xlink:type

Cand alocam valoarea “simple”, identificam legatura ca fiind simpla (link simplu). Legatura este inline si unidirectionala si contine o singura destinatie tinta intr-un atribut “href”.

xlink:href

Contine URI-ul care reprezinta tinta acestui link.

xlink:role

Ofera o “descriere a continutului legaturii”. Pentru legaturile simple, poate fi folosit pentru ca tipurile diferite de link-uri sa aiba design diferit. Valoarea trebuie sa fie un URI.

xlink:arcrole

Descrie resursele de la sfarsitul URI-ului xlink:href. Pentru legaturile simple, poate fi folosit pentru ca diferitele tinte ale link-urilor sa aiba design diferit. Valoarea trebuie sa fie un URI.

xlink:title

Furnizeaza un titlu citibil pentru legatura, in mare masura asemanator textului popup-urilor care exista in anumite browsere.

xlink:show

Furnizeaza optiunea “new” (apare intr-o fereastra noua), “embed” (inclus in text) si inlocuit (replace – apare in fereastra curenta) pentru continutul link-ului.

xlink:actuate

Ofera posibilitatile onRequest (asteapta pentru activare din partea utilizatorului) si onLoad (proces automatic) pentru a indica cand are loc procesul realizarii link-ului.



O legatura simpla care recreeaza comportamentul tag-ului “a” din HTML este urmatoarea:


<Link xlink:type='simple' xlink:href='https://www.cig.ase.ro' title='Site-ul Facultatii de Contabilitate si Informatica de Gestiune' xlink:show='replace' xlink:actuate='onRequest'> Text de legatura</Link>

O legatura simpla care recreeaza comportamentul tag-ului “img” din HTML ar folosi unele din aceleasi valori, dar un URI (Uniform Resource Identifiers) si valori diferite pentru  xlink:show and xlink:actuate, dupa cum urmeaza:


<Imagine xlink:type='simple' xlink:href='https://www.cig.ase.ro/antet.jpg' title='CIG logo' xlink:show='embed' xlink:actuate='onLoad'/>

O aplicatie ce recunoaste XLink ar trebui sa considere primul exemplu ca un link pe care se poate face click si care inlocuieste pagina curenta cu continutul paginii https://www.cig.ase.ro, in timp ce ar trebui sa trateze al doilea link ca o cerere pentru includerea imaginii de la https://www.cig.ase.ro/antet.jpg in document fara a astepta utilizatorul sa faca click pe ea.


Legaturi extinse si arce


Legaturile extinse utilizeaza multe dintre atributele legaturilor simple, iar unele dintre atributele folosite pentru legaturile simple iau alte intelesuri in momentul in care legaturile extinse sunt in uz; cele doua tipuri de link-uri sunt, totusi, tinute separate de catre specificatia W3C. Legaturile extinse ofera cea mai mare putere a XLink-ului si cer o schimbare semnificativa din perspectiva legaturilor simple.


In timp ce legaturile simple reprezinta conexiuni intr-un singur sens de la elementul descris de ele catre un alt punct, legaturile extinse reprezinta seturi de resurse, care pot include sau nu elementul descris de ele. Aceste resurse apar cu identificatori si cu descrierea acestora, dar “caile” reale dintre ele, daca chiar exista, sunt definite prin subcomponente numite “arce” (arcs).


Aceasta inseamna ca o legatura extinsa include un element container (link-ul ca un tot), componente identificatoare de resurse (numite locatori daca localizeaza elementul, sau resurse daca il indeparteaza) si componente posibile de identificare si descriere a conexiunilor intre resurse.


Container-ul in sine este definit cu doar trei atribute:


Tabelul 5

Nume

Explicatie

xlink:type

Elementele continand atributul xlink:type cu valoarea “extended” trebuie tratate ca legaturi extinse de catre procesoarele XLink.

xlink:role

Ofera o “descriere a continutului link-ului”. Pentru legaturile extinse poate fi folosit pentru a diferite tipuri de procesare a diferitelor tipuri de seturi de locatori. Rolul trebuie sa fie un URI.

xlink:title

Ofera un titlu citibil pentru link, asemanator textului popup-urilor care apar mai nou in anumite browsere. Elementele copil cu atributul xlink:type pot fi folosite in cazurile in care sunt necesare mai multe titluri, poate in situatia scenariilor in mai multe limbi.


<LinkulMeu xlink:type='extended'>
<!--Aceasta este o legatura extinsa -->
<!--Resursele implicate trebuie incluse/referite aici-->
</LinkulMeu>

Resursele si locatorii au nevoie doar de un mic set de structuri identificatoare:


Tabelul 6

Nume

Explicatii

xlink:type

Elementele continand atributul xlink:type cu valoarea “locator” trebuie tratate ca elemente locatoare de catre procesoarele XLink, in timp ce valoare “resource” indica un element resursa.

xlink:href

Contine URI-ul, tinta acestui link (doar elementele resursa).

xlink:role

Furnizeaza un identificator descriind continutul locatorului. Trebuie sa fie un URI.

xlink:label

Furnizeaza un ID care poate fi folosit pentru a identifica cum sunt conectate printr-un link diferitele tipuri de resurse si locatori (prin arce).

xlink:title

Ofera un titlu citibil pentru link, asemanator textului popup-urilor care apar mai nou in anumite browsere.


Avand mai multe documente XML, cu nume ale unor pictori faimosi ai vremurilor trecute, locurile unde au creat, alti pictori care i-au inspirat in lucrarile lor, definim un link extins dupa cum urmeaza:


<mediu xmlns:xlink='https://www.w3.org/1999/xlink' xlink:type='extended'>
<!—Resursele implicate in link sunt “artistul”-->
<!—el insusi, influentele vremii si referintele istorice-->
<artist    xlink:type='locator' xlink:label='artist' xlink:title=”Artistul Modgliani” xlink:href='modigliani.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Artistul principal de influenta” xlink:href='cezanne.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Un alt artistul  de influenta”
xlink:href='lautrec.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Un alt artistul  de influenta”
xlink:href='renoire.xml'/>
<istorie xlink:type='locator' xlink:label='perioada' xlink:title=”Orasul principal de creatie” xlink:href='paris.xml'/>
<istorie   xlink:type='locator' xlink:label='perioada' xlink:title=”Un alt oras pentru de creatie”
xlink:href='kisling.xml'/>
</mediu>

Pana acum avem un set de resurse. Cunoastem ca exista o relatie de legatura intre acestea, dar un procesor poate avea nevoie de asistenta in a arata ca exista legatura intre resurse. Arcele, care folosesc valorile atributului xlink:label pentru a le conecta, umplu acest neajuns. Ca si la legaturile simple, arcele utilizeaza atributele xlink:show si xlink:actuate pentru a permite controlul asupra comportamentului legaturii (Tabelul 7).

Tabelul 7

Nume

Explicatie

xlink:type

Elementele continand atributul xlink:type si valoarea “arc” trebuie tratate ca arce de catre procesoarele XLink.

xlink:from

Identifica originea, folosind o eticheta valoare a unui locator sau element resursa in
link-ul extins. Daca nu apare nici o valoare, implicit pentru toti locatorii si resursele.

xlink:to

Identifica destinatia, folosind o eticheta valoare de la unul din elementele resursa din
link-ul extins.

xlink:arcrole

Furnizeaza un ID pentru descrierea arcului. Trebuie sa fie un URI.

xlink:title

Ofera un titlu citibil pentru link, asemanator textului popup-urilor care apar mai nou in anumite browsere.

xlink:show

Atributul show” specifica daca documentul pointat de o legatura este inclus in documentul curent, inlocuindu-l sau afisindu-l intr-o alta fereastra atunci cand legatura este activata.

xlink:actuate

Atributul actuate” determina cum va fi activata o legatura (automat sau cand e selectata de utilizator). Ofera doua posibilitati: onLoad (proces automat) si onRequest (cand este activata de utilizator).


Un exemplu de legaturi extinse care ilustreaza relatiile dintre mai multe resurse:

<clink xml-link='extended' role='annotation'>
<locator xml-link='locator' href='odix.txt'>Textul</locator>
<locator xml-link='locator' href='adn1.loc'>Adnotari</locator>
<locator xml-link='locator' href='obs.loc'>Observatii critice</locator>
</clink>

Cand avem si arcele definite putem relua exemplul cu pictori, de mai sus:

<mediu xmlns:xlink='https://www.w3.org/1999/xlink' xlink:type='extended” xlink:title='Date despre Modigliani” xlink:role=”Informatii” xlink:showdefault='new' xlink:actuatedefault='user' >
<artist    xlink:type='locator' xlink:label='artist' xlink:title=”Artistul Modgliani” xlink:href='modigliani.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Artistul principal de influenta” xlink:href='cezanne.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Un alt artistul  de influenta”
xlink:href='lautrec.xml'/>
<influenta xlink:type='locator' xlink:label='inspiratie' xlink:title=”Un alt artistul  de influenta”
xlink:href='renoire.xml'/>
<istorie xlink:type='locator' xlink:label='perioada' xlink:title=”Orasul principal de creatie” xlink:href='paris.xml'/>
<istorie   xlink:type='locator' xlink:label='perioada' xlink:title=”Un alt oras pentru de creatie”
xlink:href='kisling.xml'/>
<link xlink:type='arc' from='artist' to='perioada' />




<link xlink:type='arc' from='inspiratie' to='perioada' />
</mediu>

Concluzii


XLink este o specificatie puternica si compacta in ceea ce priveste utilizarea link-urilor in documentele XML. Chiar daca XLink-ul nu a fost implementat inca in nici unul dintre browser-ele comerciale majore, impactul sau va fi crucial pentru aplicatiile XML din viitorul apropiat. Extensibilitatea sa si modul usor de design demonstreaza avantajul pe care aplicatiile XML il dezvolta.


Bibliografie


LOWE, D., WILDE, E., XPath, XLink, XPointer and XML, A Practical Guide to Web Hyperlinking and Transclusion, Addison Wesley/Eyrolles, 2002

REYNOLDS, M., Construire un site E-commerce avec ASP, VB, SOL server et MTS,
Eyrolles, 1999

https://www.w3.org/TR/2000/REC-xlink-20010627 - Recomandarea W3C 27 iunie 2001

https://hal.cs.tuiasi.ro/~danag/program/xml

https://www.zvon.org/xxl/xlink

https://www.simonstl.com

https://www.renderx.com

https://www.infoiasi.ro/~busaco




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright