XLink, XPointer, XMLBase oraz XInclude

Transkrypt

XLink, XPointer, XMLBase oraz XInclude
XLink, XPointer, XMLBase oraz XInclude
XLink, XPointer, XMLBase oraz XInclude
Plan prezentacji
XLink, XPointer, XMLBase oraz XInclude
Przedmiot: XML i jego zastosowania
XLink
Dr inż. Stanisław Polak
Akademia Górniczo - Hutnicza w Krakowie, Katedra Informatyki
XPointer
http://www.icsr.agh.edu.pl/~polak/
Dr inż. Stanisław Polak
1
XLink
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Ogólna charakterystyka
2
Przedmiot: XML i jego zastosowania
XLink
XLink, XPointer, XMLBase oraz XInclude
Model odsyłacza w HTML
I
Umożliwia tworzenie odsyłaczy
I
Odpowiednik elementu a znanego z HTML
I
Możliwość definiowania odsyłaczy wielokierunkowych oraz baz odsyłaczy
Dr inż. Stanisław Polak
Dr inż. Stanisław Polak
3
Dokument źródłowy
Dokument docelowy
<a href="...">
<a name="...">
Ograniczenia
Przedmiot: XML i jego zastosowania
I
Odsyłacze rozpoznawane przez nazwy elementów (a, img, . . . )
I
Semantyka odsyłacza jest zdefiniowana w specyfikacji HTML
I
Punkt zakotwiczenia musi być zdefiniowany w dokumencie docelowym
I
Definicja odsyłacza musi się znajdować w dokumencie źródłowym
I
Tylko poszczególne węzły mogą być wskazywane przed odsyłacz
I
Odsyłacz zawsze prowadzi od jednego źródła do jednego celu
Dr inż. Stanisław Polak
4
Przedmiot: XML i jego zastosowania
XLink
XLink, XPointer, XMLBase oraz XInclude
Model odsyłacza w XLink
XLink
XLink, XPointer, XMLBase oraz XInclude
Podstawowe pojęcia
Odsyłacz rozszerzony
Zasób zdalny
Zasób — dowolna adresowalna jednostka informacji
łuk
Odsyłacz (link) — jawnie wyrażona relacja pomiędzy dwoma lub więcej
zasobami
Element wiążący — element XML który zapewnia istnienie oraz opisuje
charakterystyki odsyłacza
Zasób lokalny
Lokator — wskaźnik do zasobów zewnętrznych w stosunku do samego
odsyłacza
Element wiążący
Zasób lokalny — pewne miejsce dokumentu zawarte w elemencie wiążącym
Łuk — określa możliwości przejścia między punktami startowymi a
końcowymi (punkty te określone są przez lokatory lub zasoby
lokalne)
Zasób zdalny
Zasób zdalny
Dr inż. Stanisław Polak
5
XLink
Przedmiot: XML i jego zastosowania
Dr inż. Stanisław Polak
XLink, XPointer, XMLBase oraz XInclude
Odsyłacz rozszerzony
6
XLink
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Inne atrybuty XLink
Przykład
1
2
3
4
5
<mó j L i n k xmlns:xlink=" http: // www . w3 . org /1999/ xlink " xlink:type=”extended”>
<mó j Z a s ób xlink:type=”locator” x l i n k : h r e f =" studenci . xml # Adam " xlink:label=" student " />
<mó j Z a s ób xlink:type=”locator” x l i n k : h r e f =" nauczyciele . xml # Jan " xlink:label="
nauczyciel " />
<mó j Łuk xlink:type=”arc” xlink:from=" student " xlink:to=" nauczyciel " />
</mó j L i n k>
MójLink
nauczyciele.xml#Jan
Dr inż. Stanisław Polak
I
xlink:show="embed|replace|new|other|none"
I
xlink:actuate="onLoad|onRequest|other|none"
I
xlink:role="URI"
I
xlink:arcrole="URI"
I
xlink:title="Opis"
studenci.xml#Adam
7
Przedmiot: XML i jego zastosowania
Dr inż. Stanisław Polak
8
Przedmiot: XML i jego zastosowania
XLink
XLink, XPointer, XMLBase oraz XInclude
Odsyłacz prosty
XPointer
XLink, XPointer, XMLBase oraz XInclude
Ogólna charakterystyka
Przykład
1
<mó j O d s y ł a c z x l i n k : t y p e=" simple " x l i n k : h r e f =" ... "
x l i n k : s h o w=" ... "
. . . />
Odsyłacz prosty
1
2
3
4
5
<mó j O d s y ł a c z x l i n k : t y p e=" extended ">
<mó j Z a s ób x l i n k : t y p e=" resource " x l i n k : l a b e l =" lokalny " />
<mó j Z a s ób x l i n k : t y p e=" locator "
x l i n k : l a b e l =" zdalny " x l i n k : h r e f =" ... " />
<mó j Łuk x l i n k : t y p e=" arc "
x l i n k : f r o m=" lokalny " x l i n k : t o =" zdalny " x l i n k : s h o w="
... " . . . />
</mó j O d s y ł a c z>
I
Adresacja miejsc lub fragmentów dokumentu XML
I
Brak potrzeby wstawiania punktów zakotwiczeń
I
Hierarchia — drzewo elementów
I
Rozszerzone wyrażenia Xpath
I
Przykładowe wyrażenie XPointer: http://www.abc.pl/art.xml#
xpointer(artykul/rozdzial[position()&lt;=5])
Reprezentacja odsyłacza prostego za pomocą odsyłacza rozszerzonego
Dr inż. Stanisław Polak
9
XPointer
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Elementy składowe identyfikatora fragmentu
1
2
3
4
5
6
7
I
Schemat xmlns()
I
Schemat element()
I
Schemat xpointer() — inaczej „szkielet”
10
XPointer
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Podstawowe pojęcia
<f o o b a r i d=" foo ">
<b a r />
<baz>
<bom a=" 1 " />
</ baz>
<bom a=" 2 " />
</ f o o b a r>
Przykładowy dokument XML
1
2
3
4
Dr inż. Stanisław Polak
I
Punkt
/point()[position()=n]
I
Zakres
/range-to(punkt-końcowy)
I
Lokalizacje = punkty + zakresy + węzły
xmlns ( agh=http: // www . agh . edu . pl / ns )
element ( / foo / 2 / 1 ) => bom ( a=1)
xpointer ( id ( " foo " ) ) => foobar
xpointer ( / foobar / 1 ) => bar
Przykładowe identyfikatory fragmentu
Dr inż. Stanisław Polak
11
Przedmiot: XML i jego zastosowania
Dr inż. Stanisław Polak
12
Przedmiot: XML i jego zastosowania
Przykłady
XPointer
XLink, XPointer, XMLBase oraz XInclude
Forma skrócona lub bazująca na schematach
1
2
3
4
5
6
7
8
9
10
11
12
I
Forma skrócona: b1
I
Forma bazująca na schematach: element(/1/1)
<! DOCTYPE
[
<!ELEMENT
<! ELEMENT
<! ATTLIST
]
>
Przykłady
XPointer
Określanie punktu początkowego
1
2
3
4
5
6
7
8
9
AAA
AAA
(BBB+)>
BBB
EMPTY>
BBB i d
ID
#REQUIRED>
I
xpointer(start-point(string-range(//*,’element’)))
I
xpointer(start-point(/))
<? xml version=" 1.0 " ?>
<AAA>
<BBB bbb=" 111 ">Text in the first element BBB.</BBB>
<BBB bbb=" 222 ">Text in another element BBB.
<DDD ddd=" 999 ">Text in more nested element.</DDD>
</BBB>
<CCC c c c=" 123 " x x x=" 321 ">Again some text in some element.</CCC>
</AAA>
<AAA>
<BBB id="b1"/>
<BBB
i d=" b2 " />
</AAA>
Legenda
I
I
Dr inż. Stanisław Polak
Przykłady
13
XPointer
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Określanie punktu końcowego
1
2
3
4
5
6
7
8
XLink, XPointer, XMLBase oraz XInclude
— punkt
Kontener
Dr inż. Stanisław Polak
Przykłady
14
XPointer
XLink, XPointer, XMLBase oraz XInclude
Zakresy
I
xpointer(end-point(/))
I
xpointer(range(//AAA/BBB[2]))
I
xpointer(end-point(//AAA))
I
xpointer(range-inside(//AAA/BBB[2]))
<? xml version=" 1.0 " ?>
<AAA>
<BBB bbb=" 111 ">Text in the first element BBB .</BBB>
<BBB bbb=" 222 ">Text in another element BBB .
<DDD ddd=" 999 ">Text in more nested element .</DDD>
</BBB>
<CCC c c c=" 123 " x x x=" 321 ">Again some text in some element .</CCC>
</AAA>
I
— punkt
Kontener
Dr inż. Stanisław Polak
1
2
3
4
5
6
7
<AAA>
<BBB bbb=" 111 ">Text in the first element BBB .</BBB>
<BBB bbb=”222”>Text in another element BBB.
<DDD ddd="999">Text in more nested element.</DDD>
</BBB>
<CCC c c c=" 123 " x x x=" 321 ">Again some text in some element .</CCC>
</AAA>
Legenda
Legenda
I
Przedmiot: XML i jego zastosowania
15
Przedmiot: XML i jego zastosowania
I
Lokalizacja
I
Kontener
Dr inż. Stanisław Polak
16
Przedmiot: XML i jego zastosowania
Przykłady
XPointer
XLink, XPointer, XMLBase oraz XInclude
Zakresy łańcuchowe
1
2
3
4
5
6
7
XML Base i XInclude
XLink, XPointer, XMLBase oraz XInclude
XML Base
I
xpointer(string-range(//*,’element’))
I
xpointer(string-range(//*,’another’,2,3))
I
<AAA>
<BBB bbb=" 111 ">Text in the first element BBB .</BBB>
<BBB bbb=" 222 ">Text in another element BBB .
<DDD ddd=" 999 ">Text in more nested element .</DDD>
</BBB>
<CCC c c c=" 123 " x x x=" 321 ">Again some text in some element .</CCC>
</AAA>
1
2
3
4
XML Base — specyfikacja W3C służąca do określania ścieżki bazowej dla
adresów URL w dokumentach XML
< . . . x m l : b a s e=" http: // www . icsr . agh . edu . pl / ">
< . . . h r e f=" ~ polak / index . html " . . . />
<!−− powy ż s z y URL z o s t a n i e z i n t e r p r e t o w a n y j a k o b e z w z g l ę dny a d r e s h t t p : //www .
i c s r . agh . edu . p l /˜ p o l a k / i n d e x . h t m l −−>
< / . . .>
Legenda
I
Lokalizacja
Dr inż. Stanisław Polak
17
XML Base i XInclude
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
XInclude
I
1
2
3
4
5
6
7
Dr inż. Stanisław Polak
18
XML Base i XInclude
Przedmiot: XML i jego zastosowania
XLink, XPointer, XMLBase oraz XInclude
Powiązanie standardów
XInclude — standard który pozwala nam dołączać zewnętrzne dokumenty
lub ich fragmenty do pliku XML.
<? xml version=" 1.0 " e n c o d i n g=" utf -8 " ?>
<xml x m l n s : x i=" http: // www . w3 . org /2001/ XInclude ">
M ó j ulubiony kolor to
< x i : include h r e f=" http: // example . com / kolor . txt " p a r s e=" text " e n c o d i n g=" utf -8 ">
< x i : fallback>zielony</ x i : fallback>
</ x i : include>.
</ xml>
plik.xml
1
niebieski
kolor.txt
1
2
3
4
<? xml version=" 1.0 " e n c o d i n g=" utf -8 " ?>
<xml>
M ó j ulubiony kolor to niebieski .
</ xml>
Żródło: http://bienkowski.net/stud/content/sr/xml/html/all.html
Dokument ’plik.xml’ po dołączeniu zawartości ’kolor.txt’
Dr inż. Stanisław Polak
19
Przedmiot: XML i jego zastosowania
Dr inż. Stanisław Polak
20
Przedmiot: XML i jego zastosowania
Źródła
XLink, XPointer, XMLBase oraz XInclude
Źródła
Elliotte Rusty Harold.
XML. Księga eksperta.
Helion, 2001.
W3C.
XML Linking Language (XLink) Version 1.0.
http://www.w3.org/TR/xlink/.
Fundacja Wikipedia.
Wolna encyklopedia Wikipedia.
http://pl.wikipedia.org/.
Zvon.
XPointer tutorial.
http://aloha.webhop.net/WebStatic/IT/SOFTWARE/XML/www.zvon.
org/XPOINTER/xPointer.Examples/.
Dr inż. Stanisław Polak
21
Przedmiot: XML i jego zastosowania