Navigace, odkazování a adresování v XML datech
Obsah
XPath .......................................................................................................................2
XPath - hlavní principy ........................................................................................................2
XPath - aplikační oblasti.......................................................................................................3
XPath - aplikační oblasti.......................................................................................................3
XPath - aplikační oblasti.......................................................................................................3
XPath - pojem cesty (paths) a lokace (locations)........................................................................4
XPath - syntaktická pravidla..................................................................................................4
XPath - osy (axes) ...............................................................................................................4
Příklad osa child .................................................................................................................5
Příklad osa descendant .........................................................................................................5
Příklad osa parent................................................................................................................6
Příklad osa ancestor.............................................................................................................6
Příklad osa following-sibling.................................................................................................6
Příklad osa preceding-sibling.................................................................................................7
Příklad osa following...........................................................................................................7
Příklad osa preceding...........................................................................................................8
XPath - predikáty (predicates) ...............................................................................................8
XPath - výrazy....................................................................................................................9
XPath - zkrácená notace - Příklady .........................................................................................9
XPath - zkrácená notace (2) ..................................................................................................9
Informační zdroje k XPath..................................................................................................10
XPath 2.0 ........................................................................................................................10
XPath 2.0 - příklady ..........................................................................................................10
XML Linking Language (XLink) .................................................................................11
XLink - úvod....................................................................................................................11
XML Linking Language (XLink) - původ standardu ................................................................11
XLink - historie a motivace.................................................................................................11
Výhody odkazové infrastruktury na bázi XLink ......................................................................12
Specifikace, tutoriály .........................................................................................................12
XLink - základní principy ...........................................................................................12
Integrace XLinku do (schémat) dokumentů ............................................................................12
XLink - základní typy ........................................................................................................13
Simple XLink odkaz ..........................................................................................................13
Extended XLink odkaz .......................................................................................................13
Příklad odkazu XLink (1) - jednoduchý XLink .......................................................................14
Příklad odkazu XLink (2) - rozšířený XLink...........................................................................14
Sémantika odkazů XLink............................................................................................14
Chování aplikací nad odkazy XLink .....................................................................................14
1
Navigace, odkazování a adresování v XML datech
Upřesnění role odkazu pro aplikace ......................................................................................15
Upřesnění role odkazu pro člověka .......................................................................................15
Použití XLink a implementace procesorů XLink .............................................................16
Procesory XLink...............................................................................................................16
Prohlížeče........................................................................................................................16
Příčiny nízkého rozšíření ....................................................................................................16
Alternativy k XLink ..................................................................................................17
HLink.............................................................................................................................17
VELLUM........................................................................................................................ 17
VELLUM - přednosti a nedostatky .......................................................................................18
VELLUM - ukázka............................................................................................................18
VELLUM - ukázka (2) .......................................................................................................18
VELLUM - ukázka (3) .......................................................................................................19
VELLUM - srovnání s RDF ................................................................................................19
Odkazy na další zdroje .......................................................................................................19
XPointer..................................................................................................................20
XML Pointer Language (XPointer).......................................................................................20
Specifikace a její vývoj ......................................................................................................20
Aktuální specifikace skupiny XPointer..................................................................................20
XPointer - terminologie..............................................................................................21
Terminologie....................................................................................................................21
Point...............................................................................................................................21
Range .............................................................................................................................22
Location..........................................................................................................................22
XPointer - ukázky .....................................................................................................22
XPointer-ukázka (1).........................................................................................................22
XPointer - ukázka (2).........................................................................................................22
Zvon XPointer Tutorial ......................................................................................................23
XPath
XPath - hlavní principy
XPath je syntaxe pro specifikaci částí XML dokumentů (uzly, množiny uzlů, sekvence uzlů; nelze specifikovat části textových uzlů).
• XPath používá syntaxi obdobnou jako cesty v souborovém systému.
• XPath používá knihovnu standardních funkcí (evt. uživatelsky definovaných - v XPath 2.0 nebo i XPath 1.x, ale proprietárně - podle procesorů)
• XPath je od v 1.0 základem pro XSLT, od 2.0 i pro XQuery
• XPath syntaxe není XML (bylo by příliš "upovídané")
• XPath 1.0 i 2.0 jsou doporučeními W3C (W3C Recommendation) - http://www.w3.org/TR/xpath
2
Navigace, odkazování a adresování v XML datech
XPath - aplikační oblasti
Pokročilá navigace v XML datech
Vybrat třetí uzel b:
//b[3]
Vybrat uzel b, který má potomka c:
//b[./c]
Vybrat prázdný uzel b:
//b[count(./*)=0]
Příklad 1. //b[count(./*)=0]
XPath - aplikační oblasti
• Transformace (XSLT [http://www.w3.org/TR/xslt]) • slouží k výběru uzlů, které se mají zpracovávat
Příklad 2.
XPath - aplikační oblasti
3
Navigace, odkazování a adresování v __________________________________________XML datech__________________________________________
• V "selekční části" XML dotazovacích jazyků (XQuery [http://www.w3.org/XML/Query/])
• V některých modelovacích jazycích (Schematron [http://www.schematron.com/], XML Schema [http://www.w3 .org/XML/Schema])
XPath - pojem cesty (paths) a lokace (locations)
Cesta (path) určuje (tj. „naviguje nás na") lokaci v dokumentu. Cesty jsou konstruovány podobně jako cesty v systému souborů, tj. jako
relativní vyhodnocovány vůči kontextovému uzlu (KU), viz dále, nebo
absolutní od kořene, ale výrazy (predikáty) také vyhodnocovány vůči KU
XPath - syntaktická pravidla
[20] PathExpr ::= AbsolutePathExpr | RelativePathExpr
[22] AbsolutePathExpr ::= ("/" RelativePathExpr?) | ("//" RelativePathExpr)
[23] RelativePathExpr ::= StepExpr (("/" I "//") StepExpr)*
[24] StepExpr ::= AxisStep | GeneralStep
[25] AxisStep ::= (Axis? NodeTest StepQualifiers) | AbbreviatedStep
XPath - osy (axes)
Osy (jedn. číslo axis, množné axes) jsou množiny prvků dokumentu, vymezené (obvykle relativně) vůči
kontextu.
Kontext je tvořen především dokumentem a aktuálním (kontextovým) uzlem (KU). Osami j sou:
child descendant
parent ancestor
following-sibling
4
obsahuje dceřinné uzly kontextového (aktuálního) uzlu
obsahuje všechny potomky kontextového (aktuálního) uzlu (dále jen KU). Nepočítají se mezi ně atributy!!!
obsahuje rodičovský uzel KU (existuje-li)
obsahuje všechny předky - rodiče, "prarodiče", atd. až kořenový element (pokud KU není sám kořenový)
obsahuje všechny následující sourozence KU (pro NS a atributy je tato osa prázdná)
Navigace, odkazování a adresování v XML datech
preceding-sibling following
preceding
attribute
namespace
self
descendant-or-self
ancestor-or-self
Příklad osa child
Obrázek 1. //b/child::
Příklad osa descendant
Příklad 3. //b/descendant::
dtto, ale obsahuje předchozí sourozence
obsahuje všechny uzly nacházející se po KU (mimo atributů, potomků a NS uzlů
dtto, ale obsahuje předchozí uzly (ale mimo předky, attributy, NS!)
obsahuje atributy (jen pro uzly - elementy)
obsahuje všechny NS uzly KU (jen pro uzly - elementy)
obsahuje samotný KU
obsahuje sjednocení os descendant a self
obsahuje sjednocení os ancestor a self
5
Navigace, odkazování a adresování v XML datech
Příklad osa parent
Příklad 4. //d/parent:: *
Příklad osa ancestor
Příklad 5. //d/ancestor::
Příklad osa following-sibling
6
Navigace, odkazování a adresování v XML datech
Příklad 6. //b/following-sibling::
Příklad osa preceding-sibling
Příklad 7. //b/preceding-sibling::*
Příklad osa following
Příklad 8. /a/b/c/following::
7
Navigace, odkazování a adresování v XML datech
Příklad osa preceding
Příklad 9. /a/b/e/preceding::
XPath - predikáty (predicates)
Určeny k selekci (výběru) z uzlů specifikovaných např. cestou
př.: /article/para [3] - vybere třetí odstavec v článku
Nejjednodušším výrazem v predikátu je specifikace pozice (blízkosti) (proximity position) -viz výše
Pozor u reverzních os (ancestor, preceding...) - pozice se počítá v rámci množiny uzlů vždy OD KONTEXTOVÉHO UZLU, tj. proti směru fyzického umístění v textové podobě dokumentu
Specifikaci pozice 3 možno nahradit výrazem position()=3
Navigace, odkazování a adresování v XML datech
XPath - výrazy
Určeny k použití v predikátech, k výpočtům, atd. Mohou obsahovat XPath funkce. Výrazy mohou být:
• řetězcové
• numerické (hodnotami jsou floating-point čísla)
• logické (boolean) uzly sekvence
XPath - zkrácená notace - Příklady
• para vybere všechny dceřinné elementy kontextového uzlu jmenující se para
• * selects all element children of the context node
• text () selects all text node children of the context node
• @name selects the name attribute of the context node
• @* selects all the attributes of the context node
• para[l] selects the first para child of the context node
• p a r a [ 1 a s t () ] selects the last para child of the context node
• * /para selects all para grandchildren of the context node
• /doc/chapter [5] /section[2] selects the second section of the fifth chapter of the doc
• chapter/ /para vybere všechny element para, jež jsou následníky chapter
• / /para vybere všechny elementy para z dokumentu
• //olist/it em vybere všechny elementy item, které mají za rodiče olist. vybere kontextový uzel
• . //para vybere všechny e lementy-potomky kontextového uzlu, které nesou značku para
• . . vybere rodičovský uzel od kontextového
• . . / Slang vybere atribut lang rodičovského uzlu od kontextového
XPath - zkrácená notace (2)
9
Navigace, odkazování a adresování v XML datech
Nejpoužívanější zkracování je osy child:
• tj. píšeme article/para místo child: : article/child: :para.
a atributu: píšeme para [@type="warning"] místo
child::para[attribute::type="warning"]
Další používané zkracování je//místo/descendant-or-self: : node () /
• a samozřejmě zkratky . a . .
Poznámka
Pro přehlednost někdy delší formu zachováváme: nebraňme sejí za každou cenu!
Informační zdroje k XPath
• XPath na W3C: http://www.w3.org/TR/xpath
• Zvon XPath Tutorial: http://zvon.org/xxl/XPathTutorial/Output/index.html
• XPath Tutorial na W3Schools: http://www.w3schools.com/xpath/xpath_intro.asp
XPath 2.0
Již finální specifikace - http://www.w3.org/TR/xpath20/
Změna pohledu na hodnoty vrácené XPath výrazem: vše jsou sekvence (byť jednoprvkové)
->odstraňuje problémy s "pořadím" uzlů v množině
Zavádí podmíněné výrazy a cykly
Zavádí možnost uživatelských funkcí (psaných jako dynamicky vyhodnocované výrazy v XPath)
Lze použít existenční a obecné kvantifikátory, např. exist student/name="Fred" nebo all student/@id
Dále viz např. http://www.saxonica.com/, kde nalezneme i XPath/XSLT/XQuery procesor Saxon.
2.0 - příklady
Řetězcové funkce [http://www.fi.muni.cz/~tomp/xml03/xpath20/string.html] Numerické funkce [http://www.fi.muni.cz/~tomp/xml03/xpath20/numeric.html]
10
Navigace, odkazování a adresování v XML datech
• Funkce nad sekvencemi [http://www.fi.muni.cz/~tomp/xml03/xpath20/sequence.html]
• Booleovské funkce [http://www.fi.muiu.cz/~tomp/xml03/xpath20/boolean.htmi]
XML Linking Language (XLink)
XLink - úvod
XLink pracuje na úrovni XML Infoset Dovoluje odkazovat se:
• v rámci dokumentu,
• z jednoho dokumentu na další,
mezi dokumenty (odkaz je uložen mimo ně)
Rozlišuje kategorie:
adresa (též zdroj nebo lokace, tj. odkazovaný objekt - element, skupina elementů, text...)
• a vlastní odkaz
• Odkaz pak představuje vazbu mezi zdroji s případným upřesněním sémantiky odkazu.
XML Linking Language (XLink) - původ standardu
• W3 C Recommendation 27 July 2001
• Obecný mechanismus na propojování XML zdrojů (=dokumentů a jejich částí)
• Inspirován zejména std. HyTime (http://www.hytime.org/)
• Ortogonální k entitám (lze použít současně oboje)
• mnohem bohatší sémantika než u entit,
• entity se vyhodnocují (resolve) při parsingu,
• XLink odkazy většinou až v aplikaci
XLink - historie a motivace
n
Navigace, odkazování a adresování v XML datech
Vychází z pokročilých hypertextových technik - HyTimeWlfCIPFFtlA
Ihr ľni- Flu ■_ Lbb-ib i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=HyTime] (pro SGML - viz http://iirfo.admin.kth.se/SGML/Anvardarforening/Arbetsgrupper/HyTime/Reports/trlvl.html), TEI WltlPFFllA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=TEI]...
Trir rni- Fil i. unnki
• Konstruován tak, že rozšiřuje a upřesňuje syntaxi i sémantiku HTML odkazů
Výhody odkazové infrastruktury na bázi XLink
Na rozdíl od SGML línků (např. v HyTime) můžeme v XML využívat jmenné prostory. Nenutí nás to upravovat DTD při použití odkazů.
• Infrastruktura odkazů může existovat (v jiném NS) nezávisle na schématu (struktuře) XML dokumentů, v nichž se odkazy vyskytují.
• Odkazy mohou být fyzicky mimo soubory s odkazovanými lokacemi.
Specifikace, tutoriály
• XML Linking Language (XLink) Version 1.0 - Specification [http://www.w3.org/TR/xlink/]
Zvon simple XLink tutorial
[http://www.zvon.org/xxl/xlink/OutputExamples/xlinksimple_intro.html]
• Zvon extended XLink tutorial [http://www.zvon.org/xxl/xlink/xlink_extend/OutputExamples/xlinkextend_intro.html]
XLink - základní principy
Integrace XLinku do (schémat) dokumentů
• Atributy a elementy XLinkWlKIPFFHA
Tnr rni1 Fit i. LniBi
[http ://cs. wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search?search=XLink]u maj í vlastní jmenný prostor
Jako prefix NS se obvykle používá xlinkWlICIPFÍllA
"ir pnT riL i. l-aanfc i
[http ://cs .wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=xlink]
• Příslušnost k XLinku je dána deklarací daného elementu/atributu v XLink NS
to umožňuje flexibilní integraci stávajících schémat (modelů) aXLinku (nemusíme měnit jména "lin-kovacích" elementů)
12
Navigace, odkazování a adresování v XML datech
XLink odkaz "dovnitř" dokumentů používají standard XPointerWiKIPEDlA
ľlír p m- pil i. un^bi
[http ://cs. wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=XPointer] (http://www.w3 .org/TR/xptr).
XLink - základní typy
• Jednoduchý (simpleWlKIPFfllA
ill p p pit p ill i. L'Banb i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=simple]) -vždy "in-line"
• Rozšířený (extendedWlKIPRMA
Tnr Fn-i- Fib i. L^vibi
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=extended]) - může být "out-of-line" (i v jiném dokumentu/souboru/databázi odkazů)
Simple XLink odkaz
Váže jeden lokální zdroj na jeden vzdálený (single local -> single remote entity);
Je vyznačen atributem xlink: type="simple"WlKIPEľJlA
Tlir Fni- Fib i. ! ja-ifc ■
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=xlink:type="simple"];
Extended XLink odkaz
• Váže jeden nebo více lokálních a jeden nebo více vzdálených zdrojů
• Může mít přesněji definovanou sémantiku (nad rámec výše uvedených možností)
• Odkazy mohou být uloženy mimo odkazující zdroj(e)
• je vyznačen atributem xlink: type="extended"Wní[IiFTllA
Th p p pit Fík i. l-aanb i
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=xlink:type="extended"] extendedWlfCIPFJHA
"Tnr F'nn- Fifa i. L^v-iki
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=extended] odkaz se může odkazovat na
• lokální zdroje - vyznačené atributem xlink: resourc eWlKIPRniA
Tnr Fnn- Fík i. L^ank i
[http://cs.wikipedia.org/wiki/Speci%C3%A 1 ln%C3%AD: Search?search=xlink:resource] nebo
13
Navigace, odkazování a adresování v XML datech
• vzdálené zdroje - vyznačené atributem xlink: locatorWlfCIPFľJlA
Hli r priT Fib i. Laanb i
[http ://cs. wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=xlink: locator] Směr odkazu a role participujících zdrojů mohou být upřesněny (nad rámec výše uvedených možností): uvedením podelementů arcWlKIPFTJlA
'Flip rni- Fih i. L^i-ibi
[http ://cs .wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=arc] v extended WlKIPFľJlA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=extended]
Tlip hni- Fib ■ ■ Lnibi
odkazu
Příklad odkazu XLink (1) -jednoduchý XLink
Příklad odkazu XLink (2) - rozšířený XLink
Any content here
Sémantika odkazů XLink
Chování aplikací nad odkazy XLink
Co má aplikace udělat s odkazovaným dokumentem/prvkem dokumentu je specifikováno atributem xlink: showWlKIPFi JlA
ľi r p n t Pik i. l-aanb i
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=xlink:show]
• newWlKlPFTilA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=new] -chápat jako nový dokument (např. otevřít v novém okně)
• replaceVťlICIPFillA
Trip rni- Fib ■• Lniki
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=replace] - nahradit jím zdrojový dokument
• embedWltlPFDlA
Trip p pi t Fib i. unikl
14
Navigace, odkazování a adresování v XML datech
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=embed] - vložit odkazovaný obsah do zdrojového dokumentu
"kdy to má udělat" - specifikováno atributem xlink:actuat eWllCIPRÍllA
Ttir tni1 Fil i. l-ank ■
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=xlink:actuate]
• onLoadWlKIPRDlA
ľi- Pni- Fil i. ' ^nl i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=onLoad] - tj. inhed při zpracování zdrojového dokumentu (ale kdy? při parsingu?)
• onRequestW'lKlľT.IJlA
Tlir ťni- Fil i. L-^a-iL i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=onRequest] - na požádání (např. po kliknutí na zobrazený obsah odkazujícího elementu)
Upřesnění role odkazu pro aplikace
roli odkazu lze upřesnit v podobě srozumitelné aplikacím:
• atributem xlink:rol eWlKlPRMA
íli r priT Fil i. Laanb i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=xlink:role] - u simple WlKIPRhlA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=simple] i
flir rni- Fib i. ĽniL ■
extendedWlKIPRMA
flip rni" Fib ■■ L n i tri
[http://cs.wikipedia.org/wiki/Speci%C3%A 1 ln%C3%AD: Search?search=extended] odkazu atributem xlink: arcroleWlltl ľT.IJlA
Tli r p n t riL i. L n n k ■
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=xlink:arcrole] - u elementu arcWllCIPRDlA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=arc] v
ľi ■ Fn-i- Fil i. !-■■-■■■
extendedWlKIPRMA
P i r rm* Fifa ■■ L-iBik i
[http://cs.wikipedia.org/wiki/Speci%C3%A 1 ln%C3%AD: Search?search=extended] odkazu
Upřesnění role odkazu pro člověka
Lze upřesnit roli odkazu v podobě srozumitelné člověku:
• atributem xlink: titleWlKlPRMA
ľi - ľni- Fil i. 'fii»i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=xlink:title] - u simple WlKIPRMA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=simple] i
"TTir Fn-i- Fib ■_ LniL ■
15
Navigace, odkazování a adresování v XML datech
WIKIPFMA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=extended]
Tli r rni- rit i. Lbbibi
odkazu i u elementu arcWlKlPFDlA
Hir ľni- Fla ■. Lf«ibi
[http ://cs. wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=arc] v extended WlKIPFľJlA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=extended]
Tnr rni- Fil i. LniLi
odkazu
Použití XLink a implementace procesorů XLink
Procesory XLink
Zatím nepříliš rozšířené (řádově jednotky aplikací). Nejznámějšími procesory jsou:
• Fujitsu XLink Processor (XLiP) - http://www.labs.fujitsu.com/free/xlip/en/
Open source projekt xlinki
íl r ŕni1 pil i. LniBi
[http ://cs .wikipedia. org/wiki/Speci%C3 %A 1 ln%C3 %AD: Search? search=xlinkit] http://www.xlinkit.com/xtoox/index.html
• X2X (komerční, velmi drahý produkt) podporuje XLink http://www.stepuk.com/products/prod_X2X.asp
Prohlížeče
podpora simple odkazů
• Mozilla (open source) a Netscape (komerční) DocZilla (komerční)
MSIE ani Opera (vč. posledních verzí) XLink nepodporují
Příčiny nízkého rozšíření
• Vývoj trval dlouho (cca 5 let), mezitím aplikace začaly používat vlastní řešení Sémantika XLinku je:
• příliš obecná (aplikace raději používaly vlastní, na míru šitý odkazovači jazyk, viz (X)HTML) a současně
• málo obecná (např. RDF metadata popíší vztahy mezi zdroji podrobněji, s typovou kontrolou přes RDF Schemata, atd.)
16
Navigace, odkazování a adresování v XML datech
XLink je také nahrazován aktivitou směřující ke specifikaci XML Topic Maps
Alternativy k XLink
HLink
Cílem je adaptovat XLink pro potřeby XHTML, kde "nelze použít přímo XLink"
• viz HLink - Link recognition for the XHTML Family - W3C Working Draft 13 September 2002 [http://www.w3 .org/TR/hlink/]
specifikace je navržena W3C Working Group, jí oponovala W3C Technical Architecture Group (TAG)
• Princip: mapuje vybrané atributy na jejich přesně dané XLink protějšky
tzn. i to, co normálně nemůže být XLinkem, se na XLink může "automaticky" mapovat
• Tento standard je kritizován jako "hybrid, který jedině dokazuje praktickou nevhodnost XLinku"
• dále viz např. diskuse na xmlhack.com [http://xmlhack.com]
VELLUM
• Nezávislá alternativa Simona St. Laurenta
• viz Very Extensible Linking Language Unafraid of Markup (VELLUM) [http://www.simonstl.com/projects/vellum/]
• Nevýhodou je poněkud rozvleklejší ("upovídaný", verbose) zápis, než u XLink
VELLUM is aimed exclusively at "external" or out-of-line linking. This frees VELLUM from the constraints imposed by developer expectations for inline linking.
• VELLUM accepts the cost of a verbose form in exchange for the extensibility and precision that element forms and indirection can offer.
• VELLUM does permit the use of existing abbreviations (like URIs and URI references), but simultaneously allows developers to specify more information than is carried in those identifiers.
• VELLUM also looks forward to the prospect of VELLUM processors which maintain state across multiple traversals and permit the creation of interactive hypertexts, not just collections of connections.
17
Navigace, odkazování a adresování v XML datech
VELLUM - přednosti a nedostatky
VELLUM attempts to provide a general-purpose solution to linking which addresses the complexities raised by the W3C's XPointer and XLink specifications by taking a very different approach. VELLUM does not assume that URIs and URI references are adequate to the task of identifying resources, representations, and fragments of representations, and strives to put XML hyperlinking on firmer but still approachable foundations. VELLUM supports and uses URIs and URI references, but offers options that extend those capabilities.
VELLUM is not a general-purpose solution to hypertext linking. VELLUM is intended to be used in cases where precision is important and verbosity is not a problem. While VELLUM could conceivably be mixed with other vocabularies and used to define links within them, it is not designed explicitly for such use. VELLUM is more appropriate for use in cases like external links and linkbases, where the links are stored separately from the resources they connect. (VELLUM's designer hopes that a simpler mechanism for in-line linking will emerge to complement VELLUM.)
VELLUM both builds on the URI framework and goes beyond the URI framework. URIs and URI references may be used within the VELLUM framework if the level of precision they provide is adequate, but developers can specify more information about issues like content-negotiation within the VELLUM framework if they choose. VELLUM also makes it possible to explicitly specify whether a connection involves an abstract resource or a particular concrete representation.
VELLUM also makes it possible for developers to create metadata which applies to their links in a local context. While XLink uses URIs for everything from href to arcrole, VELLUM lets developers use more intelligible identifiers whose meaning is defined within a particular VELLUM context. While VELLUM may be more verbose than a comparable XLink linkbase, it should (if designed thoughtfully) be more readable.
VELLUM - ukázka
VELLUM - ukázka (2)
18
Navigace, odkazování a adresování v XML datech
VELLUM - ukázka (3)
VELLUM - srovnání s RDF
koncept VELLUM out-of-line odkazuje podobný metadatům podle rámce RDF (odkazy jsou také metadata...)
proto se k VELLUM vrátíme po prostudování RDF
Odkazy na další zdroje
• XLink Tutoriál na Zvonu (http://zvon.org)
Specifikace XLink (http://www.w3.org/TR/xlink)
19
Navigace, odkazování a adresování v XML datech
• IBM Developerworks/XML
• Portál XML.COM (např. článek What is XLink? http://www.xml.eom/lpt/a/2000/09/xlink/index.html)
xmlhack.com [http://xmlhack.com]
XPointer
XML Pointer Language (XPointer)
Aktuálně W3C Recommendation, zveřejněno 25. března 2003
• Definuje mechanizmus adresování (tj. "pointing" - ne odkazování!) v rámci XML dokumentu Rozšiřuje koncept kotvy (anchor) známé z HTML - #jménoKotvy
• Umožňuje explicitní adresování navigací i implicitní adresování dotazováním
• Umožňuji adresování i v rámci textových uzlů
• Umožňuje rozlišit adresu bodu (point) a úseku (range) v XML dokumentu
• Jako základ pro specifikaci adresy bere jazyk XPathWlfCIPFDlA
ľlír r m* Fi« i. Lniii
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=XPath]
Specifikace a její vývoj
Pracovní skupina W3C Linking [???] řešící XLink, XPointer (+ částečně XML Base) splnila svůj úkol a ukončila činnost.
Aktuální specifikace skupiny XPointer
POZOR - specifikace XPointer se v současnosti rozpadla na 4 následovníky:
• XPointer Framework [http://www.w3.org/TR/2003/REC-xptr-framework-20030325/] - This specification defines the XML Pointer Language (XPointer) Framework, an extensible system for XML addressing that underlies additional XPointer scheme specifications. The framework is intended to be used as a basis for fragment identifiers for any resource whose Internet media type is one of text/ xml, application/xml, text/xml-external-parsed-entity, or application/xml-external-parsed-entity. Other XML-based media types are also encouraged to use this framework in defining their own fragment identifier languages.
• XPointer elementQ Scheme [http://www.w3.org/TR/2003/REC-xptr-element-20030325/] - The XPointer element () WHCIPFľJlA
ill r priT r ■■. i. Laanb i
20
Navigace, odkazování a adresování v XML datech
[http://cs.wikipedia.org/wiki/Speci%C3%A 1 ln%C3%AD: Search?search=element()] scheme is intended to be used with the XPointer Framework to allow basic addressing of XML elements.
• XPointer xmlnsQ Scheme [http://www.w3.org/TR/2003/REC-xptr-xmlns-20030325/] - The XPointer xmlns() scheme is intended to be used with the XPointer Framework to allow correct interpretation of namespace prefixes in pointers, for instance, namespace-qualified scheme names and namespace-qualified element or attribute names appearing within scheme data.
XPointer - terminologie
Terminologie
Pojmy:
Point bod, daný svým kontejnerem (container
Thr tni1 Fil i. Iinifai
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=container]) a celočíselným indexem (pozicí) v rámci kontejneru
Range je obsah mezi dvěma body V RÁMCI jednoho dokumentu nebo jedné externí analyzova-
né entity
Location "místo" - může být DOM uzel, pointWlKTIPFTilA
ill r p m- r ■■ i. Lnni
[http ://cs. wikipedia. org/wiki/Speci%C3 %A lln%C3 %AD: Search?search=point], range WlKIPEMA
Tri r put pil i. u n n L ■
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=range]
Point
pointWlKlPEMA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=point] -
íli p p pit r ■■ i. bniB i
bod, daný svým kontejnerem (containerWiK.1 Pl-.IJlA
Im r h n i-hiLi.l-anbi
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=container]) a celočíselným indexem (pozicí) v rámci kontejneru
bod může mít explicitní nebo implicitní hranici
může být typu node-pointWlKlPRMA
Ti p p n t Pík i. l-iint i
[http://cs.wikipedia.org/wiki/Speci%C3%A11n%C3%AD: Search?search=node-point] nebo charac-ter-pointVťlKIPF.MA
ľlip V n t Fik i. L-Baik i
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=character-point] dále viz specifikace - typ Point [http://www.w3.Org/TR/xptr-xpointer/#dt-point]
21
Navigace, odkazování a adresování v XML datech
viz také tutoriál node-point [http://zvon.org/xxl/xpointer/tutorial/OutputExamples/xml30_out.xml.html] a character-point [http://zvon.org/xxl/xpointer/tutorial/OutputExamples/xml40_out.xml.html]
Range
rangeWlKlPEľllA [http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=range] -
"TVir k'n-i- Fib u Laa-iL i
je obsah mezi dvěma body V RÁMCI jednoho dokumentu nebo jedné externí analyzované entity dále viz specifikace - typ Range [http://www.w3.Org/TR/xptr-xpointer/#dt-range]
Location
locationWlKIPRrjlA
Hli r pni" rib i. Laa-ilt i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=location] - "místo" - může být DOM uzel, pointWUCIPFMA
íii r pni" riL i. l-iink i
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=point], rangeWlKlPFDlA
ill p p pit Fib u Lniii
[http://cs.wikipedia.org/wiki/Speci%C3 %Alln%C3%AD:Search?search=range] dále viz specifikace - typ Location [http://www.w3.Org/TR/xptr-xpointer/#dt-location]
XPointer - ukázky
XPointer - ukázka (1)
XPointer - ukázka (2)
Xpointer výraz b2/3WlKIPFrílA
ill r I-m* I"it u Lnibi
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=b2/3] nebo xpoin-
ter (id ( 'b2' ) /* [3] ) VtrIKI í^í.Í3IA
Trip rm1 Fib u Lniki
[http://cs.wikipedia.org/wiki/Speci%C3%Alln%C3%AD:Search?search=xpointer(idCb2')/*[3])] vybere z následujícího dokumentu
Text in the first element BBB.
Text in another element BBB.
Text in more nested element. Text in more nested element.
22
Navigace, odkazování a adresování v XML datech
Text in more nested element. Again some text in some element.
...třetí uzel DDD ddd="777"...
Zvon XPointer Tutorial
Zvon XPointer Tutorial - http://www.zvon.org/xxl/xpointer/tutorial/OutputExamples/xpointer_tut.html
23