xml. ćwiczenia praktyczne full version.pdf

(5388 KB) Pobierz
4
XML. Ćwiczenia praktyczne
Rozdział 5.
XPath — odwoływanie się do węzłów w drzewie XML ............................................ 63
Określanie bezwzględne i względne węzła ............................................................................63
Wybieranie atrybutów ............................................................................................................65
Wybieranie węzła w zale ności od kolejności .......................................................................65
Funkcje u ywane w wybieraniu węzłów................................................................................68
Uwagi końcowe ......................................................................................................................72
Rozdział 6.
Style — XSL.................................................................................................................................... 73
Budowa pliku z przekształceniami .........................................................................................75
Budowanie innych szablonów ................................................................................................79
Inne techniki XSLT ................................................................................................................87
Importowanie i załączanie innych arkuszy.............................................................................95
Dodatkowe funkcje.................................................................................................................96
Rozdział 7.
XLink, Xbase i XPointer............................................................................................................ 99
Linki proste...........................................................................................................................100
Łącza rozszerzone.................................................................................................................101
Zasoby lokalne..................................................................................................................101
Zasoby zdalne ...................................................................................................................102
Łuki.......................................................................................................................................103
Baza łączy .........................................................................................................................104
Dołączanie części pliku (XPointer) ..................................................................................104
Proste wyra enia punktowe ..................................................................................................105
Określenie ście ki bazowej (XBase) ....................................................................................107
Podsumowanie......................................................................................................................108
Rozdział 8.
XML Spy ......................................................................................................................................... 109
Rozpoczęcie pracy................................................................................................................109
Podsumowanie......................................................................................................................116
Dodatek A
Dodatek B
Dodatek C
Predefiniowane typy proste XML Schema....................................................................117
XSLT — instrukcje.................................................................................................................... 119
MathML...........................................................................................................................................123
Deklarowanie MathML w dokumencie HTML ...................................................................124
Instrukcje podstawowe .........................................................................................................124
<mi>..................................................................................................................................125
<mn>.................................................................................................................................125
<mo>.................................................................................................................................125
<mtext>.............................................................................................................................126
<mspace>..........................................................................................................................126
<ms> .................................................................................................................................127
<mglyph>..........................................................................................................................127
Konstrukcja wyra eń matematycznych w MathML.............................................................127
<mrow> ............................................................................................................................127
<mfrac>.............................................................................................................................128
<msqrt> oraz <mroot>......................................................................................................128
<mstyle> ...........................................................................................................................129
4
C:\Andrzej\PDF\XML. Ćwiczenia praktyczne\!SPIS_TRESCI.doc
Spis treści
5
<merror> ...........................................................................................................................130
<mpadded> .......................................................................................................................130
<mphantom>.....................................................................................................................131
<mfenced> ........................................................................................................................132
<menclose>.......................................................................................................................132
Indeksy .................................................................................................................................133
<msub> .............................................................................................................................133
<msup> .............................................................................................................................133
<msubsup>........................................................................................................................134
<munder>..........................................................................................................................135
<mover>............................................................................................................................135
<munderover>...................................................................................................................135
<mmultiscripts>................................................................................................................136
Macierze i tabele...................................................................................................................137
<mlabeledtr>.....................................................................................................................139
Wybrane encje ......................................................................................................................141
Edytory MathML..................................................................................................................143
Przykład początkowy z rozdziału 1 ......................................................................................143
Dodatek D
Kody źródłowe............................................................................................................................ 147
Sąsiedzi.................................................................................................................................147
Ssaki .....................................................................................................................................151
Igrzyska Olimpijskie ............................................................................................................152
C:\Andrzej\PDF\XML. Ćwiczenia praktyczne\!SPIS_TRESCI.doc
5
Schemat, podobnie jak DTD ma za zadanie opisać postać dokumentu XML-a, czyli
elementy oraz ich zawartość, atrybuty. Dlaczego więc stworzono ten drugi mechanizm,
skoro DTD robi to samo? Faktycznie DTD jest schematem dokumentu, ale go dokładnie
nie opisuje. Czytając poprzedni rozdział zauwa yłeś pewnie, e dane mogą być tylko ro-
dzaju tekstowego lub binarnego. Nie ma nigdzie mowy o tym, aby dane mogły być licz-
bami czy te datami. Taką mo liwość otrzymasz po zastosowaniu XML-a Schema. Innym
faktem przemawiającym za schematami (od tej pory schemat kojarz z opisem w XML-u
Schema), jest ich składnia. Składnia schematów jest identyczna ze składnią występującą
w dokumentach XML-a. Kolejną zaletą schematów jest mo liwość tworzenia elemen-
tów zgodnie z ich kontekstem (porównaj z uwagami końcowymi na temat DTD). Jedy-
nymi konstrukcjami, których nie mo esz zdefiniować za pomocą schematu są encje.
Twórcy schematów w grupie dyskusyjnej poświęconej XML-owi Schema twierdzą, e
te konstrukcje zaśmiecają składnię. Jedynym sposobem utworzenia encji jest przemiesza-
nie DTD, w których definiujemy tylko encje ze schematami, gdzie zawarta jest reszta
definicji dokumentu. Przykład znajdziesz w tym rozdziale.
Schematy umieszcza się w plikach z rozszerzeniem
xsd,
którego struktura powinna wy-
glądać następująco:
!ZON XGTUKQP GPEQFKPI 76( !
ZUFUEJGOC ZONPUZUF
JVVRYYYYQTI:/.5EJGOC
ZUFUEJGOC
Je eli korzystasz z nowej rekomendacji (uwaga — nie wszystkie wersje oprogramowania
mogą korzystać z tej przestrzeni nazw, na przykład tak zachowuje się XML Spy w wersji
4.0), rozszerzenie mo e mieć inną postać:
!ZON XGTUKQP GPEQFKPI 76( !
ZUFUEJGOC ZONPUZUF
JVVRYYYYQTI:/.5EJGOC
ZUFUEJGOC
40
XML. Ćwiczenia praktyczne
Przestrzeń nazw wskazuje na to, e wszystkie elementy zaczynające się od
xsd:
będą
traktowane jako definicje pochodzące z danego adresu, tutaj z rekomendacji zatwier-
dzonej przez organizację World Wide Web Consortium. Jak widzisz, całość definicji
schematu spinamy klamrą
ZUFUEJGOC ZUFUEJGOC
. Teraz wystarczy
przypisać plik ze schematem do elementu głównego w dokumencie XML:
KIT\[UMC1NKORKLUMKG TQM OKCUVQ 5[FPG[
ZONPUZUK JVVRYYYYQTI:/.5EJGOC KPUVCPEG
ZUKPQ0COGURCEG5EJGOC.QECVKQP %>/QLG:ON>'ZCORNGU>1NKORKCF[ZUF
lub
KIT\[UMC1NKORKLUMKG TQM OKCUVQ 5[FPG[
ZONPUZUK JVVRYYYYQTI:/.5EJGOC KPUVCPEG
ZUKPQ0COGURCEG5EJGOC.QECVKQP %>/QLG:ON>'ZCORNGU>1NKORKCF[ZUF
Powy szy przykład przedstawia schemat prosty, to znaczy taki, który nie korzysta lub nie
definiuje własnej przestrzeni nazw; wskazuje na to deklaracja xsi:noNameSpaceSchema
Location.
O przestrzeniach nazw dowiesz się w dalszej części
tej ksią ki. Schematy zapi-
sywane są w plikach o rozszerzeniu
xsd,
tutaj widzimy przykład deklaracji pliku
Olim-
piady.xsd.
Rozpoczniemy naukę od elementów dokumentujących schemat, czyli po prostu komenta-
rzy do samego opisu. Aby zdefiniować taką notatkę nale y skorzystać z konstrukcji:
Listing 4.1.
!ZON XGTUKQP GPEQFKPI 76( !
ZUFUEJGOC ZONPUZUF JVVRYYYYQTI:/.5EJGOC
GNGOGPV(QTO&GHCWNV SWCNKHKGF
ZUFCPPQVCVKQP
ZUFCRRKPHQ
6GP UEJGOCV LGUV E\úEKæ CRNKMCELK 1NKORKCF[
ZUFCRRKPHQ
ZUFFQEWOGPVCVKQP
&GHKPKELC FQMWOGPVÎY RT\GEJQYWLæE[EJ FCPG Q OGFCNKUVCEJ
QNKORKLUMKEJ
ZUFFQEWOGPVCVKQP
ZUFCPPQVCVKQP
Rozpoczynamy znacznikiem
ZUFCPPQVCVKQP
, wewnątrz którego mogą się znajdować
dwa znaczniki. Pierwszy z nich,
ZUFCRRKPHQ
, powinien zawierać informację na temat
aplikacji języka XML, do której nale y dany schemat, a drugi — informacje o schemacie.
Instruując w ten sposób innych, ułatwiamy im ycie, a i nam po pewnym czasie te in-
formacje mogą się przydać.
Ćwiczenie 4.1.
Zadeklaruj początek szablonu dla pliku sąsiedzi.xml (patrz dodatek D).
Zgłoś jeśli naruszono regulamin