Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00615 008266 10500623 na godz. na dobę w sumie
XML. Almanach - książka
XML. Almanach - książka
Autor: , Liczba stron: 520
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-594-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
Książka skupia się przede wszystkim na samym XML i przedstawia podstawowe reguły, do których muszą stosować się dokumenty i autorzy XML (np. projektant, który wykorzystuje SMIL w celu dodania animacji na stronach WWW lub programista C++, który korzysta z SOAP w celu szeregowania obiektów w zdalnej bazie danych). Książka przedstawia również specjalizowane technologie wspierające, które zostały usytuowane na szczycie XML i są wykorzystywane w wielu aplikacjach napisanych w tym języku. Technologie te obejmują: Wszystkie te technologie, niezależnie od tego, czy zostały zdefiniowane w XML (XLinks, XSLT i Namespaces), czy też za pomocą innej składni (XPointers, XPath, SAX i DOM), są wykorzystywane w wielu różnych aplikacjach XML.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI XML. Almanach KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG Autorzy: Elliotte Rusty Harold, W.Scott Means T‡umaczenie: Jacek Mozdyniewicz ISBN: 83-7197-594-5 Tytu‡ orygina‡u: Format: B5, stron: 518 XML in a Nutshell TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Ksi„¿ka skupia siŒ przede wszystkim na samym XML i przedstawia podstawowe regu‡y, do kt(cid:243)rych musz„ stosowa(cid:230) siŒ dokumenty i autorzy XML (np. projektant, kt(cid:243)ry wykorzystuje SMIL w celu dodania animacji na stronach WWW lub programista C++, kt(cid:243)ry korzysta z SOAP w celu szeregowania obiekt(cid:243)w w zdalnej bazie danych). Ksi„¿ka przedstawia r(cid:243)wnie¿ specjalizowane technologie wspieraj„ce, kt(cid:243)re zosta‡y usytuowane na szczycie XML i s„ wykorzystywane w wielu aplikacjach napisanych w tym jŒzyku. Technologie te obejmuj„: XLinks -- Sk‡adnia, kt(cid:243)rej podstaw„ s„ atrybuty. S‡u¿y ona do tworzenia hiper‡„czy pomiŒdzy dokumentami XML a innymi dokumentami. Umo¿liwia te¿ tworzenie prostych, jednokierunkowych ‡„czy, znanych z HTML, ‡„czy wielokierunkowych pomiŒdzy wieloma dokumentami oraz ‡„czy pomiŒdzy dokumentami, do kt(cid:243)rych u¿ytkownik nie posiada uprawnieæ zapisu. XSLT -- Aplikacja XML, kt(cid:243)ra opisuje transformacje jednego dokumentu na inny, wykonane za pomoc„ tych samych b„d(cid:159) odmiennych s‡ownik(cid:243)w. XPointers -- Sk‡adnia s‡u¿„ca do identyfikacji poszczeg(cid:243)lnych czŒ(cid:156)ci sk‡adowych dokumentu XML, do kt(cid:243)rych wystŒpuj„ odwo‡ania poprzez identyfikatory URI. CzŒsto wykorzystywana wraz z XLink. XPath -- Sk‡adnia, nie bŒd„ca XML, wykorzystywana przez XPointers i XSLT do identyfikowania okre(cid:156)lonych czŒ(cid:156)ci sk‡adowych dokument(cid:243)w XML. XPath mo¿e, na przyk‡ad, zlokalizowa(cid:230) trzeci element adres w dokumencie albo wszystkie elementy z atrybutem email, kt(cid:243)rego warto(cid:156)ci„ jest elharo@metalab.unc.edu. Namespaces (Przestrzenie nazw) -- S‡u¿y do odr(cid:243)¿niania od siebie element(cid:243)w i(cid:160) atrybut(cid:243)w nosz„cych takie same nazwy, cho(cid:230) pochodz„cych z r(cid:243)¿nych s‡ownik(cid:243)w XML. Na przyk‡ad, tytu‡ ksi„¿ki i tytu‡ strony WWW na stronie WWW o ksi„¿kach. SAX -- Simple API for XML, sterowany zdarzeniami interfejs programowania aplikacji Java, implementowany przez wiele analizator(cid:243)w sk‡adni. DOM -- Document Object Model, zorientowany na struktury drzewiaste interfejs programowania aplikacji, kt(cid:243)ry traktuje dokument XML jako zbi(cid:243)r zagnie¿d¿onych obiekt(cid:243)w o r(cid:243)¿nych w‡a(cid:156)ciwo(cid:156)ciach. Wszystkie te technologie, niezale¿nie od tego, czy zosta‡y zdefiniowane w XML (XLinks, XSLT i Namespaces), czy te¿ za pomoc„ innej sk‡adni (XPointers, XPath, SAX i DOM), s„ wykorzystywane w wielu r(cid:243)¿nych aplikacjach XML. 6/.3;+   ~ +.+2+(cid:24)+  Rozdział 1. 1(cid:29)2/;+.33-2+8/+8(cid:24)+  Co oferuje XML...................................................M...................................................M........... Możliwość przenoszenia danych ...................................................M.......................................... 20 ....... 20 Jak działa XML...................................................M...................................................M........... Ewolucja XML-a ...................................................M...................................................M........... .... 22 ...... 17 Rozdział 2. 3.78+;  Dokumenty i pliki XML ...................................................M...................................................M....27 Elementy, znaczniki i dane znakowe...................................................M.................................... 28 ............ 31 Atrybuty ...................................................M...................................................M................. ...... 33 Nazwy XML ...................................................M...................................................M................ ..... 34 Odwołania do encji ...................................................M...................................................M....... ..... 35 Sekcje CDATA ...................................................M...................................................M............. ......... 36 Komentarze...................................................M...................................................M............... Instrukcje przetwarzania...................................................M...................................................M. ... 36 Deklaracja XML ...................................................M...................................................M........... ..... 38 Sprawdzanie, czy konstrukcja dokumentów jest właściwa...................................................M.. 39 Rozdział 3. /02-/849.39/289  Kontrola prawidłowości...................................................M...................................................M... .. 43 Deklaracje elementów..................................M...................................................M...................... ... 50 Deklaracje atrybutów...................................................M...................................................M..... .... 56  #4786/- Deklaracje encji ogólnych ...................................................M...................................................M. 63 Zewnętrzne analizowane encje ogólne ...................................................M................................. 65 Zewnętrzne encje nieanalizowane i zapisy...................................................M........................... 66 Encje parametryczne...................................................M...................................................M...... .... 68 Zawieranie warunkowe...................................................M...................................................M..... . 70 Dwa przykłady DTD...................................................M...................................................M........ .. 71 Wyszukiwanie standardowych definicji DTD...................................................M...................... 73 Rozdział 4. 6/786/2/2+;  Dlaczego przestrzenie nazw są konieczne...................................................M............................ 75 Składnia przestrzeni nazw ...................................................M...................................................M. 78 W jaki sposób analizatory składni obsługują przestrzenie nazw............................................. 83 Przestrzenie nazw i definicje DTD ...................................................M....................................... 84 Rozdział 5. ~63.3;73..2+63.3;/  Deklaracja kodowania ...................................................M...................................................M..... .. 88 Deklaracje tekstu.....................................M...................................................M...................... ........ 88 Zestawy znaków definiowane w XML...................................................M................................. 89 ............ 90 Unicode...................................................M...................................................M.................. Zestawy znaków ISO ...................................................M...................................................M....... .. 92 Zestawy znaków zależne od platformy...................................................M................................. 94 Konwertowanie zestawów znaków...................................................M....................................... 95 Domyślny zestaw znaków dla dokumentów XML...................................................M............... 96 Odwołania do znaków ...................................................M...................................................M...... . 97 xml:lang ...................................................M...................................................M................. ............ 99  ~ 39/289/6923;+2/2+66+-2/  Rozdział 6. +3036+8.39/28(cid:29);  Dziedzictwo SGML ...................................................M...................................................M.........105 Struktury dokumentów narracyjnych ...................................................M................................. 106 TEI ...................................................M...................................................M...................... DocBook ...................................................M...................................................M.................. Trwałość dokumentów...................................................M...................................................M..... 114 Transformacja i prezentacja...................................................M................................................ 115 ............. 108 ........ 111 #4786/-  Rozdział 7. ;7/-  XHTML ...................................................M...................................................M.................... Bezpośrednie wyświetlanie XML w przeglądarkach ...................................................M......... 126 Tworzenie złożonych dokumentów przy użyciu Modularnego XHTML ............................. 131 Ulepszone metody wyszukiwania w sieci WWW...................................................M.............. 145 ....... 120 Rozdział 8. #$6+27036+8327  Przykład dokumentu wejściowego ...................................................M..................................... 149 xsl:stylesheet i xsl:transform ...................................................M..............................................150 Procesory arkuszy stylów ...................................................M...................................................M 152 Szablony...................................................M...................................................M................. Wyliczanie wartości elementu za pomocą xsl:value-of ...................................................M..... 154 Stosowanie szablonów przy użyciu xsl:apply-templates ...................................................M... 155 Wbudowane reguły szablonów...................................................M........................................... 158 Tryby...................................................M...................................................M.................... Szablony wartości atrybutów...................................................M.............................................. 163 XSLT i przestrzenie nazw ...................................................M.................................................. 164 Inne elementy XSLT...................................................M...................................................M....... . 165 ............ 161 .......... 153 Rozdział 9.  +8  Drzewiasta struktura dokumentu XML ...................................................M.............................. 167 ...... 169 Ścieżki położeń ...................................................M...................................................M.......... Złożone ścieżki położenia...................................................M...................................................M174 Predykaty ...................................................M...................................................M................ ......... 176 Nieskrócone ścieżki położeń ...................................................M.............................................. 177 Wyrażenia ogólne XPath ...................................................M...................................................M. 179 Funkcje XPath...................................................M...................................................M............ ...... 182 Rozdział 10. 27  ......... 190 Proste łącza ...................................................M...................................................M............. Jak zachowują się łącza ...................................................M...................................................M.. . 191 Semantyka łącza ...................................................M...................................................M.......... .... 194 .... 194 Łącza rozszerzone...................................................M...................................................M........ Baza łączy ...................................................M...................................................M............... ......... 201 Definicje DTD dla XLink...................................................M...................................................M 202  #4786/- Rozdział 11. 6+ /2+ 328/6   Wyrażenia XPointer w identyfikatorach URL ...................................................M................... 203 Wyrażenia XPointer w łączach...................................................M........................................... 205 Nazwy pierwotne ...................................................M...................................................M.......... Sekwencje elementów potomnych ...................................................M..................................... 207 Punkty ...................................................M...................................................M................... Zakresy...................................................M...................................................M.................. ........... 207 ........... 210 ... 206 Rozdział 12. +7+.3;/+697/78(cid:29);8##9   Trzy poziomy CSS...................................................M...................................................M......... .. 215 Składnia CSS ...................................................M...................................................M............. ...... 215 Kojarzenie arkuszy stylów z dokumentami XML...................................................M.............. 217 Selektory ...................................................M...................................................M................ .......... 218 Właściwości wyświetlania...................................................M.................................................. 222 Piksele, punkty, cycera i inne jednostki długości...................................................M............... 223 Właściwości czcionki ...................................................M...................................................M..... . 225 ... 226 Właściwości tekstu ...................................................M...................................................M....... Kolory ...................................................M...................................................M................... ........... 227 Rozdział 13. #36+8821,/-878#(cid:24)9  XSL-Formatting Objects ...................................................M...................................................M. 231 Struktura dokumentu XSL-FO ...................................................M........................................... 232 Strony wzorcowe ...................................................M...................................................M.......... Właściwości XSL-FO ...................................................M...................................................M...... 239 CSS czy XSL-FO? ...................................................M...................................................M.......... . 243 ... 233  ~39/2836/283;+2/2+.+2/  Rozdział 14. +3036+8.+2-  Aplikacje programowania XML...................................................M......................................... 247 Opis danych ...................................................M...................................................M.............. Współpraca z programistami ...................................................M.............................................. 251 ....... 249 Rozdział 15. 3.//46316+3;+2+  Modele sterowane zdarzeniami kontra modele sterowane obiektami................................... 253 Obsługa języków programowania ...................................................M...................................... 253 Niestandardowe rozszerzenia ...................................................M............................................. 255 #4786/-  Przekształcenia...................................................M...................................................M.......... ....... 256 Polecenia przetwarzania ...................................................M...................................................M..256 Łącza i odwołania ...................................................M...................................................M........ .... 257 Zapisy...................................................M...................................................M................... ............ 257 To, co dostajesz nie jest tym, co widziałeś...................................................M......................... 258 Rozdział 16. 3./3,/83;.39/28989  ...... 260 Jądro DOM ...................................................M...................................................M................ Zalety i wady DOM ...................................................M...................................................M........ . 260 Analiza składni dokumentu za pomocą DOM...................................................M.................... 261 Interfejs Node ...................................................M...................................................M........... Specyficzne typy węzłów ...................................................M...................................................M 262 Interfejs DOMImplementation ...................................................M........................................... 268 Prosta aplikacja DOM...................................................M...................................................M..... . 268 ....... 261 Rozdział 17. #  Interfejs ContentHandler ...................................................M...................................................M.275 Właściwości i funkcje SAX...................................................M................................................ 281  ~ +8/6+o2036+-2/  Rozdział 18. /732  Jak korzystać z leksykonu ...................................................M.................................................. 287 Przykładowe dokumenty z komentarzami...................................................M.......................... 287 Klucz do składni XML ...................................................M...................................................M.... 291 Właściwa konstrukcja...................................................M...................................................M..... . 291 Prawidłowość...................................................M...................................................M............. ...... 295 Globalne struktury składniowe ...................................................M........................................... 303 DTD (Definicja typu dokumentu) ...................................................M...................................... 309 Treść dokumentu.......................................M...................................................M...................... Gramatyka dokumentu XML...................................................M.............................................. 319 .... 318 Rozdział 19. /732 +8  Model danych XPath ...................................................M...................................................M.......323 ....... 324 Typ danych ...................................................M...................................................M............... ...... 325 Ścieżki położeń ...................................................M...................................................M.......... Predykaty ...................................................M...................................................M................ ......... 329 ...... 329 Funkcje XPath...................................................M...................................................M............  #4786/- Rozdział 20. /732#$  Przestrzeń nazw XSLT ...................................................M...................................................M.... 341 Elementy XSLT ...................................................M...................................................M............ Funkcje XSLT...................................................M...................................................M............. ... 341 ..... 369 Rozdział 21. /732  ... 376 Hierarchia obiektów...................................................M...................................................M...... Leksykon obiektów...................................................M...................................................M........ .. 377 Rozdział 22. /732#  Pakiet org.xml.sax......................................M...................................................M.................... ..... 437 Pakiet org.xml.sax.helpers...................................................M..................................................444 Właściwości i funkcje SAX...................................................M................................................ 450 Pakiet org.xml.sax.ext...................................................M...................................................M... ... 452 Rozdział 23. /78+;2+(cid:29);  Tablice znaków ...................................................M...................................................M........... Zestawy encji HTML4...................................................M...................................................M..... 462 Inne bloki Unicode....................................M...................................................M...................... ..... 457 .... 471 #363;.  Kiedy powstał XML, był on pierwszym i najważniejszym formatem dokumentów. Służył do zapi- sywania stron WWW, książek, artykułów naukowych, poematów, krótkich opowiadań, informato- rów, samouczków, podręczników, pism urzędowych, kontraktów, instrukcji i innych dokumentów. Wykorzystanie go jako składni dla danych komputerowych w aplikacjach takich, jak przetwarza- nie rozkazów, szeregowanie obiektów, wymiana i tworzenie kopii bezpieczeństwa baz danych i elektroniczna wymiana danych, było przeważnie rezultsatem szczęśliwego przypadku. Większość programistów przygotowana jest do pracy ze sztywnymi strukturami, spotykanymi w aplikacjach zorientowanych na dane, nie jest jednak gotowa na zetknięcie się ze środowiskiem artykułu czy opowiadania; większość pisarzy jest przyzwyczajona do swobodnego formatu książ- ki, opowiadania czy artykułu. XML odpowiada jednak potrzebom obu tych społeczności. Ten roz- dział opisuje (na przykładach) struktury spotykane w dokumentach, które przeznaczone są do czytania przez ludzi, nie przez komputery. W kolejnych rozdziałach przyjrzymy się stronom WWW, a następnie technikom adresowania takim, jak XSLT, XLink i arkusze stylów, które pier- wotnie były stosowane w dokumentach czytanych przez ludzi. Kiedy już zapoznamy się z tymi technikami, przetestujemy XML jako format dla stosunkowo nietrwałych danych, przeznaczonych do odczytu przez komputery (czyli danych, które nie są wykorzystywane jako półtrwałe doku- menty odczytywane przez ludzi). XML jest uproszczoną formą SGML-a (Standardized General Markup Language — standardowy uogólniony język znaczników). Język, który ostatecznie stał się SGML-em, został wynaleziony przez Charlesa F. Goldfarba, Eda Moshera i Raya Lorie z IBM w latach siedemdziesiątych. Na- stępnie pracowało nad nim kilkaset osób na całym świecie, aż do czasu ostatecznego przyjęcia go w 1986 roku jako standard ISO 8879. Celem twórców SGML było rozwiązywanie problemów, które rozwiązuje XML, w taki sam sposób, w jaki czyni to XML. SGML to język oznaczeń se- mantycznych i strukturalnych dla dokumentów tekstowych. Posiada on ogromne możliwości i odniósł już kilka sukcesów w kręgach wojskowych i rządowych Stanów Zjednoczonych, sektorze lotni-  3.+o +3036+8.39/28(cid:25); czo-kosmicznym oraz innych dziedzinach, w których potrzebne jest efektywne zarządzanie doku- mentami technicznymi o objętości dziesiątek tysięcy strons. Największym sukcesem SGML było stworzenie własnej aplikacji, HTML. Jednakże HTML, po- nieważ jest tylko jedną z aplikacji, nie posiada takich możliwości, jak SGML. SGML został rów- nież wykorzystany do zdefiniowania innych formatów dokumentów, m.in. DocBook i Text Enco- ding Initiative (TEI), które zostaną tutaj pokrótce omówiosne. SGML jest bardzo skomplikowany. Oficjalna specyfikacja zawiera ponad 150 stron i obejmuje wiele przypadków szczególnych i mało prawdopodobnych sytuacji. Jest tak skomplikowana, że niewiele programów komputerowych posiada jej pełną implementację, a programy, które imple- mentują lub opierają się na różnych fragmentach specyfikacji SGML, są często niezgodne. Szcze- gólne funkcje, które w jednym programie zostały uznane za zasadnicze, są często postrzegane jako niepotrzebne dodatki i pomijane w innym programie. Mimo to, doświadczenia z SGML nauczyły programistów prawidłowego projektowania, implementacji i użytkowania języków oznaczeń w różnorakich dokumentach. Wiele z tych doświadczeń obejmujse również XML. Oczywiście, dokumenty XML znajdują zastosowanie nie tylko w sieci WWW; XML może z ła- twością sprostać wymaganiom różnych mediów, takich jak książki, magazyny, dzienniki, gazety i broszury. XML jest szczególnie użyteczny, gdy istnieje potrzeba wydania dokumentu we wszystkich mediach jednocześnie. Dzięki zastosowaniu dla tego samego dokumentu źródłowego różnych ar- kuszy stylów, można utworzyć strony WWW, notatki prelegesnta i gotowe do druku matryce. Wszystkie dokumenty XML mają strukturę drzewa, które jest jednak strukturą danych ogólnego przeznaczenia. Każdy, kto uczył się informatyki, zetknął się z drzewami binarnymi, drzewami czerwono-czarnymi, drzewami zrównoważonymi, drzewami typu B czy drzewami uporządkowa- nymi. Jednakże XML rzadko pasuje do którejś z tych struktur. Dokumenty XML stanowią najbar- dziej ogólną odmianę drzewa, w której nie ma szczególnych ograniczeń dotyczących uporządko- wania węzłów, sposobu ich połączenia, czy zasad łączenia różnych typów węzłów. Narracyjne dokumenty XML mają strukturę mniej identyfikowalną niżs dokumenty XML zorientowane na dane. Jak zatem wyglądają dokumenty XML zorientowane narracyjnie? Oczywiście, mają one element bazowy, który posiadają wszystkie dokumenty XML. Ogólnie rzecz biorąc, ten element bazowy reprezentuje dokument. Na przykład, jeżeli dokument jest książką, to elementem bazowym jest book (książka). Jeżeli dokument jest artykułem, to elementesm bazowym jest article (artykuł). Duże dokumenty są podzielone na części, w przypadku książek na rozdziały, w przypadku arty- kułów na sekcje, a w dokumentach prawniczych na paragrafy. Większość dokumentu znajduje się w tych podstawowych częściach. W niektórych przypadkach istnieje kilka różnych rodzajów czę- ści, na przykład, jedna dla spisu treści, inna dla indesksu i po jednej na każdy rozdział książki. Element bazowy z reguły zawiera również elementy dostarczające metainformacji o dokumencie, takich jak tytuł roboczy, autor dokumentu, czy data utworzenia dokumentu i ostatniej jego mody- fikacji. #869896.39/28(cid:25);2+66+-2-  Umieszczenie metainformacji w jednym elemencie potomnym elementu bazowego, a głównej tre- ści w innym, stanowi regułę. W taki właśnie sposób pisane są dokumenty HTML. Elementem bazo- wym jest html. Metainformacje zawarte są w elemencie head (nagłówek), a główna treść znaj- duje się w elemencie body (treść dokumentu). Tej regule podporządkowane są dokumenty TEI, a także DocBook. Sekcje dokumentów mogą dzielić się na podsekcje, które mogą podlegać dalszemu podziałowi. Ilość poziomów podsekcji zależy głównie od wielkości dokumentu. Encyklopedia ma bardzo wiele poziomów podsekcji, podczas gdy broszura czy ulotka reklamowa nie ma ich prawie w ogóle. Każda sekcja lub podsekcja z reguły ma tytuł. Może również posiadać atrybuty lub ele- menty wskazujące na metainformacje o sekcji, takie jaks autor lub data ostatniej modyfikacji. Do tej pory unikano zawartości mieszanej. Elementy zwykle zawierają elementy potomne i pomi- jalne znaki niewidoczne. Jednakże w niektórych przypadkach konieczne jest wstawienie aktualne- go tekstu dokumentu — słów czytelnych dla ludzi. W większości języków zachodnich tekst byłby podzielony na akapity i inne elementy na poziomie bloków, takie jak nagłówki, rysunki, paski boczne (sidebar) i przypisy. Definicje DTD ogólnego dokumentu, na przykład dokumentu DocBo- ok, nie będą w stanie powiedzieć o nich nic więcej. Akapity i inne elementy blokowe z reguły zawierają słowa zapisane w wierszu, czyli tekst. Część tego tekstu może być oznaczona jako elementy wierszowe. Na przykład, można wskazać, że kon- kretny ciąg znaków w tekście elementu blokowego jest datą lub osobą albo że jest po prostu waż- ny. Jednakże większość tekstu nie będzie oznaczona w taski sposób. Jednym z obszarów, w jakim różne aplikacje XML działają rozbieżnie, jest problem, czy element blokowy może zawierać w sobie inne elementy blokowe. Na przykład, czy akapit może zawierać listę albo czy lista może zawierać akapit. Przypuszczalnie praca z bardziej strukturalnymi doku- mentami, w których bloki nie mogą zawierać innych bloków (szczególnie bloków tego samego typu), jest łatwiejsza. Jednakże czasami istnieją powody, dla których bloki mogą zawierać w sobie inne bloki. Na przykład, długie wykazy pozycji lub cytastów mogą zawierać kilka akapitów. Cała ta struktura, od elementu bazowego do najgłębiej zagnieżdżonego elementu wierszowego, wydaje się być strukturą liniową; to znaczy, że czytelnik będzie czytać wyrazy w kolejności pra- wie takiej samej, w jakiej pojawiają się one w dokumencie. Gdyby całe oznaczenie zostało nagle usunięte i czytelnikowi zostałby pozostawiony pierwotny tekst, rezultat byłby nadal czytelny. Oznaczenie można wykorzystywać do indeksowania lub formatowania dokumentów, ale nie sta- nowi ono zasadniczej części ich treści. Inną ważną cechą narracyjnych dokumentów XML tego rodzaju jest fakt, że nie tylko składają się one z wyrazów zapisanych w wierszach, ale są zbudowane z wyrazów. Zawierają tekst przezna- czony do czytania przez ludzi. Nie zawierają liczb, dat czy wartości pieniężnych (poza sytuacjami, kiedy występują one jako część normalnego strumienia narracyjnego). Zawartość #PCDATA jest najniższym elementem drzewa, zazwyczaj jednego typu: csiągu znaków. Jeżeli jakiś element należy do typu innego niż ciąg znaków, zwykle stanowi metainformację o dokumencie (numer rysunku, data ostatniej modyfikacji itp.), a nie treść samego dsokumentu. Dużo czasu zajęłoby nam wyjaśnianie, dlaczego definicje DTD nie zapewniają silnego, a w zasa- dzie nie zapewniają żadnego, wspomagania dla wprowadzania danych. Nie wymagały go doku- menty, dla których został zaprojektowany SGML. Dokumenty XML wykorzystywane w zada- niach, dla których nie został zaprojektowany SGML, takich jak śledzenie spisu inwentarza czy  3.+o +3036+8.39/28(cid:25); spis ludności, wymagają wprowadzania danych; dlatego różne osoby i organizacje wynalazły tak liczne języki schematyczne. Jednakże schematy nie wzbogacają zbytnio definicji DTD dokumen- tów narracyjnych tego rodzaju. Nie wszystkie dokumenty XML przypominają dokumenty opisane tutaj; do opisu tego nie pasują nawet wszystkie dokumenty zorientowane narracyjnie. Jednak zaskakująco duża liczba aplikacji zorientowanych narracyjnie odpowiada wzorowi podstawowemu, prawdopodobnie trochę do nie- go dodając lub od niego ujmując. Powodem, dla którego dokumenty narracyjne przyjmują tę pod- stawową strukturę, jest jej użyteczność. Gdybyśmy mieli definiować własne definicje DTD dla ogólnych dokumentów zorientowanych narracyjnie, miałyby one wiele wspólnego z tą strukturą. Gdybyśmy definiowali własne definicje DTD dla bardziej specjalizowanych dokumentów zorientowa- nych narracyjnie, wtedy nazwy elementów mogłyby się różnić, w zależności od dziedziny. Pisząc na przykład podręcznik Młodego Harcerza, jedną z sekcji moglibyśmy nazwać Zdobycie- Sprawności. Jednakże podstawowa hierarchia dokumentu, metainformacje, sekcje i podsekcje, elementy blokowe i tekst zaopatrzony w oznaczenie pozsostałyby najprawdopodobniej bez zmian. Text Encoding Initiative (TEI), (http://www.tei-c.org/), jest aplikacją SGML przeznaczoną do oznaczania tekstów literatury klasycznej, takich jak „Eneida” Wergiliusza czy dzieła zebrane To- masza Jeffersona. TEI jest świetnym przykładem definicji DTD zorientowanej narracyjnie. Po- nieważ została ona przeznaczona do analiz naukowych, a nie do swobodnego czytania czy działal- ności wydawniczej, zawiera elementy zarówno typowych struktur dokumentów (rozdział, scena, zwrotka itp.), jak i typografii, struktury gramatycznej, położeń ilustracji na stronie i tak dalej. Te struktury i elementy nie są dla większości czytelników istotne, są jednak kluczowe dla naukow- ców, dla których TEI została stworzona. W przypadku wielu prac akademickich, jeden rękopis „Eneidy” nie jest dokładnie taki sam jak następny. Istotne mogą być błędy przekładu i poprawki wnoszone w średniowieczu przez różnych mnichów. TEI jest aplikacją SGML. Korzysta z kilku funkcji SGML, jakich nie znajdziemy w XML, m.in. łącznika i znacznika minimalizacji. Jednakże XML jest zwiastunem przyszłości. Tak jak więk- szość ewoluujących aplikacji SGML, również TEI przekształca się w kierunku XML. Dostępna jest już uproszczona wersja DTD TEI dla autorów, którzy preferują pracę w czystym XML-u. Nie jest ona tak kompletna jak wersja SGML, ale wiele jej praktycznych zastosowań jest bardzo do tej wersji zbliżone. Przykład 6.1 pokazuje dość prosty dokument TEI Lite, który wykorzystuje XML-ową wersję defi- nicji DTD TEI. Jego zawartość pochodzi z książki, którą właśnie czytamy. Mimo że rękopis zako- dowany za pomocą pełnej wersji byłby o wiele dłuższy, ten prosty przykład demonstruje podsta- wowe cechy większości dokumentów TEI, które reprezentują książki. (TEI, poza prozą, można również zastosować w przypadku gier, poematów, mszałsów i dowolnej formy literatury pisanej). Przykład 6.1. Dokument TEI ?xml version= 1.0 encoding= UTF-8 standalone= nos ? !DOCTYPE TEI.2 SYSTEM xteilite.dtd TEI.2 teiHeader fileDesc $  titleStmt title XML. Almanach /title author Harold, Elliotte Rusty /author author Means, W. Scott /author /titleStmt publicationStmt p /p /publicationStmt sourceDesc p Wczesny projekt rękopisu /p /sourceDesc /fileDesc /teiHeader text id= HarXMLi front div type= toc head Spis treści /head list item Prezentacja XML /item item XML jako format dokumentów /item item XML jako lepszy HTML /item /list /div /front body div1 type= chapter head Prezentacja XML /head p /p /div1 div1 type= chapter head XML jako format dokumentów /head p Kiedy powstał XML, był on pierwszym i najważniejszym formastem dokumentów. Służył do zapisywania stron WWW, książek, artykułów naukowych, poematów, krótkich opowiadań, informatorów, samouczków, podręczników, pism urzędowych, kontraktów, instrukcji i innych dokumentów, czytanych przez ludzi. Wykorzystanie go jako składni dla danycsh komputerowych w takich aplikacjach, jak przetwarzanie rozkazów, szeregowanie obiektów, wymiana i tworzenie skopii bezpieczeństwa baz danych i elektroniczna wymiana dsanych, było przeważnie rezultatem szczęśliwego przypadku. /p div2 type= section head Spuścizna SGML /head p /p /div2 div2 type= section head TEI /head p /p /div2 div2 type= section head DocBook /head p DocBook (http://www.oasis-open.org/docbook/) jest aplikacją SGML przeznaczoną wyłącznie dla nowych dokumentów. Typowe jej użycie ma miejsce 3.+o +3036+8.39/28(cid:25); w przypadku dokumentacji komputerowej. Kilka książek wydawnictwa O’Reilly zostało napisanych przy użyciu DocBook (m.in. książka Normana Walsha i Leonarda Muellnersa „DocBook: Definitive Guidse”). Zostało w nim napisanych także wiele tekstów projektu dokumesntacji Linuxa (http://www.linuxdoc.org/) w DocBook. /p /div2 /div1 div1 type= chapter head XML jako lepszy HTML /head p /p /div1 /body back div1 type= index list head Skorowidz /head item SGML, 46, 145-148 /item item DocBook, 147 /item item TEI, 149 /item item Text Encoding Initiative, Patrz TEI /items /list /div1 /back /text /TEI.2 Elementem bazowym wszystkich dokumentów TEI jest TEI.2. Jest on zawsze podzielony na dwie części: nagłówek, reprezentowany przez element teiHeader, i główną treść dokumentu, reprezentowaną przez element text. Nagłówek zawiera informacje o źródle dokumentu, na przy- kład, z którego średniowiecznego rękopisu został przepisany tekst, informację o kodowaniu do- kumentu lub słowa kluczowe opisujące dokument. Element text dzieli się na trzy części: Początek w elemencie front Początek zawiera przedmowę, spis treści, stronę z dedykacją i okładkę. Każdy z tych elemen- tów reprezentowany jest przez element div z atrybutem type, którego wartość identyfikuje daną część jako spis treści, przedmowę, stronę tytułową itd. Każda część zawiera inne ele- menty, które rozmieszczają jej zawartość. Treść w elemencie body Treść zawiera poszczególne rozdziały, z jakich składa się dokument. Każdy z tych elementów reprezentowany jest przez element div1 z atrybutem type, który identyfikuje poszczególne części jako tomy, książki, części, rozdziały, poematy, akty itd. Każdy element div1 ma ele- ment potomny header, który nadaje tytuł tomowi, książce, części lub rozdziasłowi. Zakończenie w elemencie back Zakończenie zawiera indeks i słowniczek. 3-33 Ten podział może wyglądać dalej następująco: div1 może zawierać elementy div2, div 2 mo- że zawierać elementy div3, div3 może zawierać elementy div4 i tak dalej, aż do div7. Jed- nakże w każdej pracy istnieje pewna najmniejsza jej część. Te najmniejsze części, w przypadku prozy zawierają akapity i są reprezentowane przez elementy p, a w przypadku poezji zawierają zwrotki, reprezentowane przez elementy lg. Zwrotki dzielą się dalej na poszczególne wiersze, re- prezentowane przez elementy l. Zarówno wiersze, jak i akapity posiadają zawartość mieszaną. Oznacza to, że zawierają zwykły test. Jednakże części tego tekstu mogą być dodatkowo oznaczone przez elementy wskazujące, że konkretne słowa lub znaki są nazwiskami osób (name), poprawkami (corr), nieczytelne (unc- lear), błędnie napisane (sic) itd. Ta struktura dokładnie odzwierciedla strukturę rzeczywistych dokumentów kodowanych w TEI i sprawdza się w przypadku większości aplikacji XML zorientowanych narracyjnie (aplikacji, któ- re muszą obsługiwać dość ogólne dokumenty). TEI jest bardzo reprezentatywnym przykładem struktury typowego dokumentu XML. DocBook (http://www.oasis-open.org/docbook/) jest aplikacją SGML stworzoną wyłącznie dla nowych dokumentów. Typowe jej użycie ma miejsce w przypadku dokumentacji komputerowej. Kilka książek wydawnictwa O’Reilly zostało napisanych przy użyciu DocBook (m.in. książka Normana Walsha i Leonarda Muellnersa „DocBook: Definitive Guide”). Zostało w nim napisa- nych także wiele tekstów projektu dokumentacji Linuxa s(http://www.linuxdoc.org/). Obecna wersja DocBook 4.1.2 jest dostępna zarówno jako aplikacja SGML, jak i aplikacja XML. Wersja XML nie jest dokładnie taka sama jak wersja SGML, ale wiele ich zastosowań praktycz- nych jest do siebie zbliżone. Zespół pracujący nad rozwojem DocBook zapowiedział, że w wersji 5.0 nastąpi przejście na pojedynczą definicję DTD, całkowicie zgodną zarówno z SGML, jak i z XML. Przykład 6.2 ilustruje prosty dokument DocBook XML, bazujący na czytanej właśnie książce. Nie musimy przypominać, że pełna wersja tego dokumentu bsyłaby dużo dłuższa. Przykład 6.2: Dokument DocBook ?xml version= 1.0 encoding= UTF-8 standalone= nos ? !DOCTYPE book PUBLIC -//Norman Walsh//DTD DocBk XML V3.1.7//EN docbook/docbookx.dtd book title XML. Almanach /title bookinfo author firstname Elliotte Rusty /firstname surname Harold /surname /author author firstname W. Scott /firstname surname Means /surname /author /bookinfo  3.+o +3036+8.39/28(cid:25); toc tocchap tocentry Prezentacja XML /tocentry /tocchap tocchap tocentry XML jako format dokumentów /tocentry /stocchap tocchap tocentry XML jako lepszy HTML /tocentry /tocchsap /toc chapter title Prezentacja XML /title para /para /chapter chapter title XML jako format dokumentów /title para Kiedy powstałXML, był on pierwszym i najważniejszym formatem doskumentów. Służył on do zapisywania stron WWW, książek, artykułów naukowych, poematów, krótkich opowiadań, informatorów, samouczków, podręczników, pism urzędowych, kontraktów, instrukcji i innych dokumentów, czytanych przez ludzi. Wykorzystanie go jako składni dla danych komputerowych w takich aplikacjach, jak przetwarzanie rozkazów, szeregowanie obiektów, wymiana i tworzenie kopii bezpieczeństwa baz danych i elektroniczna wymiana danych, było przeważnie rezultatem szczęśliwego przypadku. /para sect1 title Spuścizna SGML /title para /para /sect1 sect1 title TEI /title para /para /sect1 sect1 title DocBook /title para ulink url= http://www.oasis-open.org/docbook/ DocBook /ulsink jest aplikacją SGML przeznaczoną wyłącznie dla nowych dokumentów. Typowe jej użycie ma miejsce w przypadku dokumentacji komputerowej. Kilka książek wydawnictwa O’Reilly zostało napisanych przy użyciu DocBook (m.in. książka citation Normana Walsha i Leonarda Muellnersa title „DocBook: Definitive sGuide ) /title /citation . Zostało w nim napisanych także wiele tsekstów ulink url= http://www.linuxdoc.org/ projektu dokumentacji Linuxa /ulink . /para /sect1 /chapter chapter title XML jako lepszy HTML /title para /para /chapter index indexentry primaryie SGML, 46, 145-148 /primaryie 3-33  /indexentry indexentry primaryie DocBook, 147 /primaryie /indexentry indexentry primaryie TEI, 149 /primaryie /indexentry indexentry primaryie Text Encoding Initiative /primaryie seeie TEI /seeie /indexentry /index /book DocBook oferuje autorom tekstów technicznych wiele udogodnień. Po pierwsze, jest otwarty, nie zastrzeżony i można go tworzyć w dowolnym edytorze tekstu. Pisanie dokumentacji z otwartym dostępem do kodu źródłowego dla oprogramowania z takim samym dostępem (za pomocą za- mkniętych i zastrzeżonych narzędzi, np. Microsoft Word) można by uznać za niezbyt mądre. Do- kumenty napisane w DocBook nie są związane z żadną platformą, producentem ani aplikacją. Można je przenosić pomiędzy wszystkimi środowiskami,s jakie tylko można sobie wyobrazić. Po drugie, prostota DocBook umożliwia jego edycję nie tylko w teorii, ale również w praktyce (można tego dokonać za pomocą najprostszych edytorów tekstowych). Jeżeli potrzebna jest po- moc, pod adresem http://www.nwalsh.com/emacs/docbookide/index.html dostępne są bezpłatne narzędzia, m.in. główny tryb emacs. Po trzecie, podobnie jak wiele innych aplikacji XML, rów- nież DocBook jest modularny. Można wykorzystać wybrane jego kawałki i zignorować resztę. Je- żeli potrzebne są tabele, dostępny jest moduł tabel o rozległych możliwościach. Jeżeli tabele są nie potrzebne, nie trzeba tego modułu używać. Inne modułys zawierają różne zestawy encji i równań. DocBook jest formatem autorskim, a nie formatem gotowej prezentacji. Zanim ktoś przeczyta do- kument tego typu, musi on być skonwertowany na jedens z kilku następujących formatów:  HTML  XSL Formatting Objects  Rich Text Format (RTF)  TEX Na przykład, gdy potrzebna jest drukowana dokumentacja programu wysokiej jakości, należy skonwertować dokument DocBook do TEX, korzystając ze standardowych narzędzi TEX-a skon- wertować plik TEX na DVI lub, bądź również, na plik PostScript, a następnie wydrukować. Jeżeli ten dokument ma być czytany tylko na komputerze, najprawdopodobniej skonwertujemy go do formatu HTML i załadujemy do przeglądarki stron WWW. Jeśli chcemy osiągnąć inne cele, nale- ży wybrać inny format. Korzystając z DocBook, otrzymujemy wszystkie te formaty w zasadzie za darmo. Tworzenie wielu dokumentów wyjściowych w różnych formatach z pojedynczego doku- mentu źródłowego DocBook jest bardzo proste. Zalety te posiada nie tylko format DocBook. Naj- bardziej wymyślne formaty wejściowe XML można w razie potrzeby opublikować w innych for- matach w równie prosty sposób.  3.+o +3036+8.39/28(cid:25); Dokumenty XML przeznaczone do czytania przez komputery są często nietrwałe. Jeżeli utworzy- my dokument Simple Object Access Protocol (SOAP), który reprezentuje żądanie skierowane do serwera Windows realizującego usługi Next Generation Windows Services (NGWS), to dokument ten jest trwały tak długo, jak klient wysyła ten dokumentu do serwera, który następnie przetwarza go na wewnętrzne struktury danych. Po zakończeniu tego procesu dokument zostanie usunięty. Prawdopodobnie nie będzie on istniał dłużej niż przez dwie minuty. Dokument jest ulotną formą komunikacji pomiędzy dwoma systemami, jego trwałość nie jest większa niż trwałość miliardów innych wiadomości, jakie komputery wymieniają w ciągu dnia (większość tych wiadomości nigdy nie będzie nawet zapisana na dysku, a tym bardziej szarchiwizowana dla potomności). Niektóre aplikacje przechowują w formacie XML bardziej trwałe dane zorientowane komputero- wo. Na przykład, XML jest rodzimym formatem plików arkusza kalkulacyjnego Gnumeric. Ten format jest jednakże rozumiany tylko przez Gnumeric i być może przez inne aplikacje GNOME. Został zaprojektowany dla specyficznych potrzeb tego jednego programu. Wymiana danych z innymi aplikacjami, m.in. z tymi, które nie zostały jeszcze swynalezione, jest sprawą drugorzędną. Dokumenty przeznaczone dla ludzi wydają się być bardziej trwałe i mniej związane z oprogramo- waniem. Jeżeli zakodujemy w XML Deklarację Niepodległości, chcemy, by ludzie mogli ją prze- czytać za 2 lata, za 200 lat lub za 2000 lat. Chcemy również, by mogli ją odczytać za pomocą do- wolnego, wygodnego narzędzia, również takiego, które jeszcze nie zostało wynalezione. Te wymagania oznaczają istotne zmiany zarówno dla aplikacji XML przeznaczonych do przechowy- wania danych, jak również dla narzędzi, których używamys do ich czytania i pisania. Po pierwsze, format powinien być bardzo dobrze udokumentowany. Powinna istnieć dobrze sko- mentowana definicja DTD. Ponadto powinna istnieć znacząca liczba opracowań dokumentacyj- nych. Opracowania te nie zastąpią oficjalnej dokumentacji, ale stanowią nieocenioną pomoc przy zrozumieniu danej DTD. Należy wybierać formaty standardowe, takie jak DocBook i TEI, a nie nietypowe, jednorazowe aplikacje XML. Powinniśmy unikać zastrzeżonych definicji DTD, należących do indywidualnych osób lub firm, których przyszłość może zależeć od losów tych osób czy firm. Nawet jeżeli DTD pochodzi od niekomercyjnego konsorcjum, takiego jak OASIS czy TEI, jej licencja powinna być na tyle liberalna, aby ograniczenia wynikające z prawa autorskiego nikomu nie blokowały działa- nia. Obecnie o opatentowanie swojej DTD stara się co najmniej jeden z jej dostawców. Takich DTD trzeba unikać. Należy trzymać się takiej definicji DTD, którą można bezpłatnie kopiować i udostępniać oraz którą można uzyskać z wielu różnych slokalizacji. Kiedy już zdecydujemy się na standardową definicję DTD, starajmy się unikać jej modyfikacji. Jeżeli koniecznie chcemy coś zmodyfikować, zmiany należy bardzo szczegółowo dokumentować. Komentarze należy dodać zarówno do własnych definicji DTD, jak i do dokumentów, objaśniając wprowadzane przez siebie zmiany. Przy dodawaniu nowych typów elementów lub usuwaniu sta- rych należy korzystać z wbudowanych w DTD encji parametrycznych, a nie modyfikować same pliki definicji DTD. Format nie powinien być zbyt trudny do odtworzenia (na wypadek, gdyby zaginęła dokumenta- cja). Wewnątrz dokumentu należy koniecznie używać pełnych nazw elementów i atrybutów. Ele- ment para DocBook jest lepszy od elementu p z TEI. paragraph byłby nawet jeszcze lepszy. $6+27036+-+46//28+-+  Całą strukturę dokumentu powinno wyznaczać tylko oznaczenie. Nie należy pozostawiać użyt- kownikowi pola dla domysłów ani nie należy stosować kodowania wykorzystującego separatory takie, jak znaki niewidoczne. Oto przykład tego, czegos nie należy robić w przypadku grafiki SVG: polygon style= fill: blue; stroke: green; stroke-width: 12 points= 350,75 379,161 469,161 397,215 423,301 350,250 277,301 303,215 231,161 321,161 / Atrybut style zawiera trzy odrębne, słabo związane pozycje. Zrozumienie tych elementów wy- maga analizy nie XML-owego formatu CSS. Atrybut points jest pod tym względem jeszcze gorszy. Jest to długa lista liczb, która nie zwiera informacji i znaczenia każdej z liczb. Nie można, na przykład, określić, które z liczb są współrzędnymi x, a które y. Bardziej pożądany byłby zapis przedstawiony w następnym przykładzie: polygon fill= blue stroke= green stroke-width= 12 point x= 350 y= 75 / point x= 379 y= 161 / point x= 469 y= 161 / point x= 397 y= 215 / point x= 423 y= 301 / point x= 350 y= 250 / point x= 277 y= 301 / point x= 303 y= 215 / point x= 231 y= 161 / point x= 321 y= 161 / /polygon Składnia stylu, która bazuje na atrybutach, jest obecnie dopuszczalna w przypadku SVG, jednakże w grupie roboczej W3C SVG odbyła się dość gorąca dyskusja, jakiego formatu należy używać dla współrzędnych. Grupa ostatecznie zadecydowała, naszym zdaniem błędnie, że bardziej obszerna forma nigdy nie zostanie przyjęta (z uwagi na objętość), mimo że większość członków uważała, że lepiej oddaje ona charakter XML. Twierdzimy, że w erze gwałtownie rosnącej pojemności dysków twardych i dostępności pasma sieci grupa robocza przeceniła wagę rozmiaru dokumentu. Zigno- rowała również łatwość, z jaką drugi format mógłby być skompresowany w celu ułatwienia trans- portu lub przechowywania. Arkusze stylów są ważne. Wszyscy chcemy oddzielić styl od treści. Ostrzegano nas, by nie dołą- czać do swoich dokumentów XML zwykłych informacji o stylach, takich jak pochylenie tekstu i wybór czcionek. W arkuszach stylów nie należy również szałączać treści. Nazwisko autora, tytuły, prawa autorskie i inne informacje, które różnią się w zależności od dokumentu, należą do doku- mentu, a nie do arkusza stylów, nawet gdy zawierają metainformacje o dokumencie, a nie rzeczy- wistą jego zawartość. Pamiętajmy, że nasze dokumenty powinny przetrwać następnych kilka tysięcy lat. Ulitujmy się nad historykami, którzy będą musieli rozszyfrować nasze oznaczenie za pomocą ograniczonych narzędzi i informacji. Oznaczenie w typowym dokumencie XML opisuje z reguły jego strukturę, ale nie opisuje prezen- tacji dokumentu; informuje ono, jak dokument jest zorganizowany, a nie jak wygląda. Mimo że dokumenty XML są tekstem i czytelnik mógłby, gdyby chciał, czytać je w pierwotnej formie, za- nim zostaną one zaprezentowane publiczności, dokumenty te są zwykle przetwarzane do innego  3.+o +3036+8.39/28(cid:25); formatu. Kluczowym zadaniem języków znaczników (szczególnie w przypadku XML) jest spra- wienie, by format wejściowy nie był taki sam jak format wyjściowy. Innymi słowy, to, co widzi- my, nie jest tym, co otrzymamy lub chcielibyśmy otrzymać. Wejściowy format języków znaczni- ków został zaprojektowany dla wygody autora. Wyjściowys język ma służyć wygodzie czytelnika. Oczywiście, takie przedsięwzięcie wymaga posiadania środków przekształcania formatu wejścio- wego na format wyjściowy. Większość dokumentów XML zostaje poddana przekształceniu przed zaprezentowaniem ich czytelnikowi. Może zostać przeprowadzona transformacja na inny słownik XML, taki jak XHTML lub XSL-FO, lub na zupełnie inny format, na przykład PostScript lub RTF. Półoficjalnym językiem transformacji XML-a jest XSLT (Extensible Stylesheet Language Trans- formations — transformacje rozszerzalnego języka arkuszy stylów). Dokument XSLT zawiera li- stę szablonów. Każdy szablon zawiera wzór opisujący dopasowanie do elementów i innych wę- złów. Procesor XSLT czyta dokument wejściowy. Jeżeli napotka w nim na coś, co pasuje do szablonu arkusza stylów, wyprowadza zawartość szablonu. Część szablonu jest zazwyczaj polece- niem nakazującym procesorowi, by dołączył treść wejścia na wyjściu. Polecenie to umożliwia na przykład, aby tekst dokumentu wyjściowego był taki sam, natomiast zmianie uległo całe oznaczenie. Można napisać arkusz stylów, który dokona transformacji dokumentów DocBook na dokumenty TEI. XSLT zostanie omówiony bardziej szczegółowo w rozdsziale 8., XSLT Transformations. Jednak XSLT nie jest jedynym językiem transformacji przydatnym w dokumentach XML. Do- stępne są inne języki arkuszy stylów, takie jak Document Style Sheet and Semantics Language (DSSSL) (http://www.netfolder.com/DSSSL/), jak również rozmaite narzędzia firmowe, takie jak OmniMark (http://www.omnimark.com/). Większość z tych narzędzi, w odniesieniu do określo- nych typów dokumentów, ma swoje wady i zalety. Niestandardowe programy pisane w różnych językach programowania, takich jak Java, C++, Perl i Python, mogą wykorzystywać do transfor- macji dokumentów różne interfejsy programowania aplikacji (API), takie jak SAX, DOM i JDOM. Te języki są przydatne w sytuacji, gdy potrzebujemy czegoś więcej niż tylko transformacji; na przy- kład, interpretowania pewnych elementów jako zapytań do bazy danych i wstawiania wyników tych zapytań do dokumentu wyjściowego lub odpytywania użytkownika w trakcie transformacji. Jednak najważniejszym czynnikiem decydującym o wyborze narzędzia jest to, w jakim języku i składni czujemy się najbardziej swobodnie. De linguis non disputandum est (łac. „O języku nie należy dyskutować”). Istnieje wiele różnych możliwości wyboru formatu wyjściowego transformacji. Plik PostScript może być wydrukowany na papierze, foliach do rzutników, slajdach czy nawet na koszulkach. Dokumenty PDF można oglądać za pomocą wszystkich tych mediów, a także na ekranie. Jednak w trakcie wyświetlania na ekranie PDF jest znacznie gorszy od prostego HTML-a, który jest po- wszechnie dostępny na różnych platformach i bardzo łatwy do wygenerowania ze źródeł XML za pomocą XSLT. Wygenerowanie pliku PDF lub PostScript wymaga zwykle przejścia przez etap pośredni, w którym specjalne oprogramowanie dokona konwersji niestandardowego formatu wyj- ściowego XML, na przykład XSL-FO, na taki format, jakis jest rzeczywiście potrzebny. Alternatywą dla prezentacji opartych o transformacje jest zapewnienie opisowego arkusza stylów, który określa, jak powinien być sformatowany każdy element w oryginalnym dokumencie. Zada- nie to można wykonać za pomocą kaskadowych arkuszy stylów — Cascading Stylesheet (CSS). CSS działa szczególnie dobrze w przypadku dokumentów narracyjnych, które wymagają tylko li- sty czcionek, stylów lub rozmiarów, które należy zastosować wobec zawartości każdego elementu. Kiedy zostanie usunięte całe oznaczenie, pozostanie nam czysto tekstowa wersja tego, co chcieli- byśmy zobaczyć. Ten sposób nie sprawdza się zbyt dobrze w przypadku dokumentów zorientowanych $6+27036+-+46//28+-+  na dane. Nieprzetworzona zawartość tych dokumentów może być tylko niemożliwą do rozróżnie- nia masą liczb, dat lub innych informacji (trudnych do zrozumienia bez kontekstu i przypisów, oferowanych przez oznaczenie). W takim przypadku najlepiej wybrać wyjście pośrednie: w wyni- ku transformacji powstaje nowy dokument, zawierający uporządkowane i opisane informacje. Wtedy arkusz stylów CSS może wobec elementów przetransformowanego dokumentu zastosować reguły stylów.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

XML. Almanach
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: