Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00126 008392 11000617 na godz. na dobę w sumie
XSLT. Vademecum profesjonalisty - książka
XSLT. Vademecum profesjonalisty - książka
Autor: Liczba stron: 536
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-635-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
'XSLT. Vademecum profesjonalisty' to książka o transformacjach rozszerzalnego języka arkuszy stylów (Extensible Sytlesheet Language Transformations). XSLT służy wyłącznie do transformacji dokumentów XML do innych dokumentów XML lub do innego rodzaju dokumentów. Ostatnio stał się on bardzo popularnym tematem. Ta książka jest najbardziej kompletnym i przystępnym źródłem informacji na temat XSLT i zawiera więcej informacji o XSLT niż jakakolwiek inna książka.

Wiele książek o XSLT koncentruje się tylko na transformacjach 'XML na HTML'. Transformacje 'XML na XML' stają się bardzo ważne i już niedługo, gdy tylko wzrośnie popularność XML, będą ważniejsze od transformacji 'XML na HTML'. W tej książce i pokazane są transformacje XSLT z XML do: XML, HTML, XHTML, RTF, zwykłego tekstu, JavaScript, baz danych opartych na SQL i XSL-FO (rozszerzalny język arkuszy stylów formatujących obiekty -- Exstensible Stylesheet Language Formatting Object).

Aby w całości omówić XSLT, opisane są tutaj wszystkie dostępne elementy XSLT, jak również ich atrybuty oraz wszystkie funkcje XSLT i XPath, których można użyć w arkuszach XSLT.

Znajdują się tu również setki działających przykładów. Jest to bez wątpienia najlepszy sposób na to, aby zobaczyć, jak działa XSLT. Jeżeli coś nie jest dość jasne w treści książki, zawsze można spojrzeć na znajdujący się obok przykład, ponieważ działające, kompletne przykłady znajdują się prawie we wszystkich miejscach książki

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

XSLT. Vademecum profesjonalisty Autor: Steve Holzner T‡umaczenie: Tomasz flmijewski, Robert Riger ISBN: 83-7197-635-6 Tytu‡ orygina‡u: Format: B5, stron: 536 Przyk‡ady na ftp: 100 kB Inside XSLT (cid:132)XSLT. Vademecum profesjonalisty(cid:148) to ksi„¿ka o transformacjach rozszerzalnego jŒzyka arkuszy styl(cid:243)w (Extensible Sytlesheet Language Transformations). XSLT s‡u¿y wy‡„cznie do transformacji dokument(cid:243)w XML do innych dokument(cid:243)w XML lub do innego rodzaju dokument(cid:243)w. Ostatnio sta‡ siŒ on bardzo popularnym tematem. Ta(cid:160) ksi„¿ka jest najbardziej kompletnym i przystŒpnym (cid:159)r(cid:243)d‡em informacji na temat XSLT i zawiera wiŒcej informacji o XSLT ni¿ jakakolwiek inna ksi„¿ka. Wiele ksi„¿ek o XSLT koncentruje siŒ tylko na transformacjach (cid:132)XML na HTML(cid:148). Transformacje (cid:132)XML na XML(cid:148) staj„ siŒ bardzo wa¿ne i ju¿ nied‡ugo, gdy tylko wzro(cid:156)nie popularno(cid:156)(cid:230) XML, bŒd„ wa¿niejsze od transformacji (cid:132)XML na HTML(cid:148). W tej ksi„¿ce i(cid:160) pokazane s„ transformacje XSLT z XML do: XML, HTML, XHTML, RTF, zwyk‡ego tekstu, JavaScript, baz danych opartych na SQL i XSL-FO (rozszerzalny jŒzyk arkuszy styl(cid:243)w formatuj„cych obiekty -- Exstensible Stylesheet Language Formatting Object). Aby w ca‡o(cid:156)ci om(cid:243)wi(cid:230) XSLT, opisane s„ tutaj wszystkie dostŒpne elementy XSLT, jak(cid:160) r(cid:243)wnie¿ ich atrybuty oraz wszystkie funkcje XSLT i XPath, kt(cid:243)rych mo¿na u¿y(cid:230) w(cid:160) arkuszach XSLT. Znajduj„ siŒ tu r(cid:243)wnie¿ setki dzia‡aj„cych przyk‡ad(cid:243)w. Jest to bez w„tpienia najlepszy spos(cid:243)b na to, aby zobaczy(cid:230), jak dzia‡a XSLT. Je¿eli co(cid:156) nie jest do(cid:156)(cid:230) jasne w tre(cid:156)ci ksi„¿ki, zawsze mo¿na spojrze(cid:230) na znajduj„cy siŒ obok przyk‡ad, poniewa¿ dzia‡aj„ce, kompletne przyk‡ady znajduj„ siŒ prawie we wszystkich miejscach ksi„¿ki. IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG 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 9836/   /.+836+-/6836-2- 463;+./2/ Co znajduje się w środku? ...................................................e..................................................12 Dla kogo jest ta książka?..........................e...................................................e...........................14 Na jakim poziomie napisana jest tak książka?...................................................e....................14 Używane konwencje ...................................................e...................................................e........15 3.+o  3.78+;#$  XSL = XSLT + XSL-FO ...................................................e...................................................e.17 Krótkie wprowadzenie ...................................................e...................................................e.....18 Dokumenty XML...................................................e...................................................e.............22 Jak XML wygląda w przeglądarce?...................................................e....................................27 Transformacje XSLT ...................................................e...................................................e.......27 Przebieg transformacji XSLT ...................................................e.............................................30 Korzystanie z samodzielnych procesorów XSLT...................................................e...............30 Używanie przeglądarek do transformacji dokumentów XML...............................................37 Korzystanie z XSLT i JavaScriptu w Internet Explorerze...................................................e..39 Transformacje XSLT na serwerze sieciowym...................................................e....................41 Transformacje XML-do-XML...................................................e............................................43 Transformacje XML-do-XHTML ...................................................e......................................45 Informacje o XSLT ...................................................e...................................................e..........48 Obiekty formatujące XSL — XSL-FO ...................................................e...............................52 Informacje o XSL-FO ...................................................e...................................................e......53 Formatowanie dokumentu XML ...................................................e........................................53 Arkusze stylów XSLT ...................................................e...................................................e.....55 Transformacja dokumentu do postaci z obiektami formatującymi........................................56 Tworzenie sformatowanych dokumentów...................................................e..........................59 $;36/2/9 ;+2/+69778 ;  Drzewa i węzły ...................................................e...................................................e................61 Model zbioru informacji kontra model drzewa XSLT ...................................................e.......66 Praca z elementami XSLT ...................................................e..................................................67 Instrukcja przetwarzania ?xsl:stylesheet? ...................................................e......................67 Element xsl:stylesheet ...................................................e...................................................e.69 Elementy najwyższego poziomu arkusza stylów...................................................e................72 Element xsl:template ...................................................e...................................................e...73 Korpus szablonów...................................................e...................................................e............74 Element xsl:apply-templates ...................................................e..........................................77 Dostęp do wartości węzła ...................................................e...................................................e80 Obsługa XML Base ...................................................e...................................................e.........84 Wybór metody wyjścia ...................................................e...................................................e....86 3.+o   #$  +.//-94630/732+78 3.+o  Uproszczone arkusze stylów...................................................e...............................................92 Osadzanie arkuszy stylów...................................................e...................................................e93 Element xsl:include ...................................................e...................................................e.....95 Element xsl:import ...................................................e...................................................e......97 Element xsl:apply-imports ...................................................e.............................................98 Używanie Internet Explorera do transformacji dokumentów XML ....................................100 $;36/2/7+,32 ;3678+2/2-  Tworzenie szablonu ...................................................e...................................................e.......103 Przetwarzanie węzłów „dzieci” ...................................................e........................................105 Dostęp do wartości węzła ...................................................e.................................................106 Tworzenie wzorców dopasowania...................................................e....................................107 Wybieranie szablonu...................................................e...................................................e......108 Odczytywanie wartości atrybutów...................................................e....................................112 Element xsl:text ...................................................e...................................................e.........114 Wyłączanie opcji disable-output-escaping ...................................................e.......................116 Zapisywanie wartości atrybutów ...................................................e......................................118 Szablony wartości atrybutów...................................................e............................................119 Odstępy ...................................................e...................................................e..........................121 Elementy xsl:strip-space i xsl:preserve-space ...................................................e.........123 Automatyczne wcinanie...................................................e...................................................e.124 Domyślne reguły szablonów...................................................e.............................................127 Usuwanie zawartości ...................................................e...................................................e.....130 Rozwiązywanie konfliktów szablonów ...................................................e............................131 Element xsl:copy ...................................................e...................................................e.......134 Element xsl:copy-of ...................................................e...................................................e..136 Element xsl:message ...................................................e...................................................e.137 $;36/2/;36- ;.34+73;+2+  Dopasowanie węzła głównego...................................................e..........................................142 Dopasowanie elementów ...................................................e..................................................143 Dopasowanie „dzieci”...................................................e...................................................e....143 Dopasowanie potomków elementu ...................................................e...................................143 Dopasowanie atrybutów ...................................................e...................................................e144 Definicja formalna wzorców dopasowania...................................................e.......................146 Część 1. wzorców krokowych — oś wzorca ...................................................e....................148 Część 2. wzorców krokowych — testy węzła ...................................................e..................151 Część 3. wzorców krokowych — predykaty ...................................................e....................155 Tworzenie predykatów...................................................e...................................................e...158 Dopasowanie na podstawie identyfikatora ...................................................e.......................168 Dopasowanie na podstawie klucza ...................................................e...................................169 Używanie operatora OR...................................................e...................................................e.171 Przykłady wzorców...................................................e...................................................e........173 3.+o  /-/;+6923;/73683;+2/.+2-  Element xsl:if ...................................................e...................................................e............183 Elementy xsl:choose , xsl:when i xsl:otherwise ...................................................e...187 Element xsl:for-each ...................................................e...................................................e..194 Sortowanie elementów...................................................e...................................................e...197 Element xsl:number ...................................................e...................................................e...202 Rozszerzalność XSLT...................................................e...................................................e....210 Funkcje rozszerzeń...................................e...................................................e.........................211 Elementy rozszerzające...................................................e...................................................e..219 Element xsl:fallback ...................................................e...................................................e..221 3.+o  #4786/-  3.+o  6/78+o-+2/2+0$0$0 $ 36+3.03;+2/86/-.39/289  Element xsl:output ...................................................e...................................................e.....224 Zmiana struktury dokumentu w zależności od danych wejściowych..................................239 Element xsl:element : tworzenie nowych elementów w locie .........................................240 Element xsl:attribute : tworzenie nowych atrybutów...................................................e....242 Element xsl:comment : wstawianie komentarzy ...................................................e...........243 Element xsl:processing-instruction : wstawianie instrukcji przetwarzania......................244 Element xsl:document : tworzenie wielu dokumentów wynikowych..............................246 Element xsl:namespace : tworzenie deklaracji przestrzeni nazw.....................................249 Element xsl:attribute-set : tworzenie zbiorów atrybutów.................................................249 Pomijanie deklaracji XML i generowanie fragmentów XML.............................................251 Użycie generate-id do tworzenia niepowtarzalnych identyfikatorów .................................253 Tworzenie sekcji CDATA ...................................................e................................................256 Określanie kodowania znaków ...................................................e.........................................257 Tryby: formatowanie kontekstowe ...................................................e...................................259 3.+o   +878+2.+6./13+78373;+2/  Zrozumieć XPath ...................................................e...................................................e...........266 Typy danych XPath ...................................................e...................................................e.......269 Tworzenie ścieżek lokalizacji XPath ...................................................e................................277 Pierwsza część kroków lokalizacji: osie ...................................................e...........................278 Druga część kroków lokalizacji: testowanie węzłów ...................................................e.......279 Trzecia część węzłów lokalizacji: predykaty...................................................e....................280 Użycie osi XPath ...................................................e...................................................e...........280 Użycie osi ancestor ...................................................e...................................................e........281 Użycie osi ancestor-or-self ...................................................e...............................................281 Użycie osi descendant...................................................e...................................................e....283 Użycie osi descendant-or-self ...................................................e...........................................284 Użycie osi following ...................................................e...................................................e......285 Użycie osi following-sibling...................................................e.............................................286 Użycie osi namespace ...................................................e...................................................e....287 Użycie osi parent....................................e...................................................e...........................288 Użycie osi preceding...................................................e...................................................e......289 Użycie osi preceding-sibling.................................................e...............................................291 Użycie osi self...................................................e...................................................e................292 Przykłady ścieżek lokalizacji...................................................e............................................293 Składnia skrócona XPath ...................................................e..................................................294 Sprawdzanie wyrażeń XPath ...................................................e............................................295 XPath 2.0 ...................................................e...................................................e.......................296 92-/#$ +8  Funkcje XSLT...................................................e...................................................e................300 Funkcje XPath operujące na zbiorach węzłów ...................................................e.................317 Funkcje XPath operujące na tekstach ...................................................e...............................323 Funkcje XPath operujące na liczbach ...................................................e...............................335 Funkcje logiczne XPath ...................................................e...................................................e.338 Element xsl:decimal-format : tworzenie formatów liczbowych ......................................342 Nowe funkcje w XSLT 2.0 i XPath 2.0 ...................................................e............................346 3.+o  /19o2+;+2/04+6+/86/22/  Tworzenie zmiennych — element xsl:variable ...................................................e............348 Nazwane reguły — element xsl:call-template ...................................................e..............355 Użycie parametrów: elementy xsl:param i xsl:with-param ........................................359 Dobieranie klucza — element xsl:key ...................................................e..........................368 3.+o   #$  +.//-94630/732+78 Tworzenie wielu dokumentów wynikowych — xsl:document .......................................374 Generowanie arkuszy stylów — element xsl:namespace-alias .......................................377 3.+o  -/ 463-/736+#$  XSLT i JavaScript w Internet Explorerze...................................................e.........................381 Obsługa błędów parsowania ...................................................e.............................................383 Internet Explorer i dynamiczne arkusze stylów...................................................e................386 Internet Explorer i wyspy danych XML ...................................................e...........................391 Wywoływanie Javy bezpośrednio z procesorów XSLT ...................................................e.......394 Użycie API XSLT do Javy ...................................................e...............................................395 Łączenie Xalana z Javą...................................................e...................................................e..396 Łączenie Saxona z Javą ...................................................e...................................................e.398 Łączenie procesora XSLT Oracle z Javą ...................................................e..........................401 Łączenie XT z Javą...................................................e...................................................e........405 Przekształcanie dokumentów XML do baz SQL...................................................e..............407 Użycie XSLT i Active Server Pages...................................................e.................................411 Użycie XSLT i Java Server Pages ...................................................e....................................414 Użycie XSLT w serwletach Javy...................................................e......................................415 3.+o  -/#$.31/2/63;+2+.39/28 ;#98/788+,//   Formatowanie XSL...................................................e...................................................e........419 Obiekty formatujące XSL-FO ...................................................e..........................................420 Właściwości formatujące XSL-FO ...................................................e...................................424 Formatowanie dokumentu XML ...................................................e......................................431 Użycie arkusza stylów XSLT do przekształcania na XSL-FO............................................432 Element główny dokumentu: fo:root ...................................................e............................439 Ogólny układ dokumentu: fo:layout-master-set ...................................................e...........439 Opis strony: fo:simple-page-master ...................................................e.............................440 Obszary ...................................................e...................................................e..........................441 Ciągi stron: fo:page-sequence ...................................................e......................................443 Przepływy: fo:flows ...................................................e...................................................e..444 Bloki danych: fo:block ...................................................e.................................................445 Tabele...................................................e...................................................e.............................448 Tabela: fo:table ...................................................e...................................................e..........454 Kolumny tabeli: fo:table-column ...................................................e.................................455 Treść tabeli: fo:table-body ...................................................e............................................456 Wiersze tabeli: fo:table-row ...................................................e.........................................457 Komórki tabeli: fo:table-cell ...................................................e........................................458 3.+o   -/#$.31/2/63;+2+.39/28 ;#9 7803,6+039236/+2/43o3 /2+  Listy XSL-FO ...................................................e...................................................e................461 Rozmieszczanie tekstu w obszarach blokowych: fo:block-container .............................469 Obiekty formatujące inline ...................................................e...............................................474 Przypisy: fo:footnote i fo:footnote-body ...................................................e.................482 Łącza: fo:basic-link ...................................................e...................................................e...485 Kolumny ...................................................e...................................................e........................488 Sekwencje i numerowanie stron ...................................................e.......................................489 3.+8/ $#$  Fragment DTD arkuszy stylów XSLT (nienormatywne) ...................................................e.501 3.+8/ o+-;3-036+89-/#9   #363;.  Rozdział 1. Witamy w świecie transformacji rozszerzalnego języka arkuszy stylów (Extensible Style- sheet Language Transformations), czyli XSLT. Ta książka będzie Twoim przewodnikiem po tym obszernym i rozchodzącym się w nieoczekiwanych kierunkach świecie. Chcemy, aby stał się on Twoim światem. Przed nami wiele miejsc do odkrycia, ponieważ obecnie XSLT zaczyna się pojawiać w coraz ciekawszych miejscach i w coraz ciekawszy spo- sób. Wszystkie jego aspekty poznasz już niedługo. I to w edziałaniu! XSLT zajmuje się obsługą i formatowaniem zawartości dokumentów XML (ta książka jest uzupełnieniem innej pozycji — „XML. Vademecum profesjonalisty”, Wydawnictwo Helion, 2001). XML stał się ostatnio bardzo gorącym tematem, a teraz nadszedł czas na XSLT. XML umożliwia zdefiniowanie struktury danych w dokumentach, a XSLT umoż- liwia pracę z dokumentami XML poprzez modyfikację ich zawartości i tworzenie innych dokumentów. Możliwe jest więc na przykład sortowanie rekordów XML zawierających dane na temat pracowników i przechowywanie ich w dokumentach HTML oraz bardzo precyzyjne formatowanie. Możesz wykonywać operacje na dokumentach XML pisząc swoje własne programy przetwarzające dane XML, ale wymaga to napisania kodu programu. Natomiast za po- mocą XSLT możesz wykonać te same zadania, ale bez konieczności programowania. Zamiast pisać swoje własne programy w Javie, Visual Basicu czy C++, możesz użyć XSLT do określenia tego, co chcesz zrobić, a procesor XSLT zajmie się resztą. Właśnie temu służy XSLT i zaczyna odgrywać coraz ważniejszą roleę w świecie XML. Sam XSLT jest tak naprawdę częścią większej specyfikacji — rozszerzalnego języka arkuszy stylów (Extensible Stylesheet Language), czyli XSL. XSL umożliwia bardzo precyzyjne formatowanie dokumentów. Część XSL zajmująca się formatowaniem, która jest zresztą znacznie obszerniejsza od XSLT, opiera się na specjalnych obiektach forma- tujących i często nazywa się ją XSL-FO (XSL:FO czy XSLFO). XSL-FO jest dosyć skomplikowanym tematem, ponieważ zmiana wyglądu dokumentów za pomocą obiektów formatujących może być bardzo złożonym procesem. Początkowo XSLT został dodany do XSL właśnie po to, aby ułatwić to zadanie przez transformację dokumentów XML do dokumentów bazujących na obiektach formatujących XSL-FO.  #$  +.//-94630/732+78 W tej książce znajdziesz nie tylko wszystkie informacje na temat XSLT, ale również wprowadzenie do XSL-FO (łącznie z informacjami o tym, jak używać XSLT do transfor- macji dokumentów do postaci XSL-FO). Na początku omówimy pokrótce XSLT i XSL-FO. XSL został stworzony przez World Wide Web Consortium (W3C, www.w3.org), czyli koalicję grup założoną przez Tima Bernersa-Lee. W3C jest organizacją, która tworzy specyfikacje, takie jak XSL. W3C i języki stylów Na stronie www.w3.org/Style/History możesz zapoznać się (po angielsku) z historią prac W3C nad językami stylów. To bardzo ciekawe, gdy można zobaczyć, jak wiele zostało zrobione i jak bardzo języki stylów zmieniły się z biegiem czasu. W3C stworzyła w latach 80. „dziadka” XML, czyli SGML (Standard Generalize Markup Language — uogólniony standardowy język znaczników), ale był on zbyt skomplikowany, aby znaleźć szersze zastosowanie. Tak więc XML (podobnie jak HTML) jest uproszczoną wersją SGML. W3C stworzyła również język stylów nazwany DSSSL (Document Style Semantics and Specification Language) współpracujący z SGML. I tak jak XML wywodzi się z SGML, tak XSL opiera się na DSSSL. Jak mówią przedstawiciele W3C: „Model wykorzystywany w XSL do wyświetlania dokumentów na ekranie był tworzony przez całe lata poświęcone pracom nad złożonym językiem stylów w standardzie ISO o nazwie DSSSL (Document Style Semantics and Specification Language)”. Ponieważ oryginalna część XSL — tak jest, XSL-FO — również nie była na tyle łatwa, aby zdobyć szerszą popularność, wprowadzono XSLT, który miał ułatwić konwersję dokumentów XML do XSL-FO. Jak się okazało, XSLT stał się czymś znacznie więcej niż od niego oczekiwano. Udostępnia on bowiem kompletny język transformacji umoż- liwiający pracę z dokumentami XML bez konieczności pisania kodu programu, a także transformację tych dokumentów do innych dokumentów XML, HTML i innych formatów tekstowych. Tak wielki sukces XSLT zaskoczył nawet W3eC. $6+27036+-/#$# XSLT umożliwia bezpośredni dostęp do dokumentów XML. Możesz mieć na przykład obszerny dokument XML zawierający wszystkie statystyki meczów baseballowych w ostat- nim sezonie. Załóżmy jednak, że interesują Cię tylko statystyki dotyczące rzutów. Aby wyszukać dane dotyczące rzutów, możesz napisać własny program w Javie, Visual Basicu lub C++, który będzie współpracował z analizatorem składniowym XML. Analizatory składniowe to specjalne programy, które odczytują dokumenty XML i przekazują do Twojego programu wszystkie dane znajdujące się w dokumencie. Możesz dzięki temu zapisać w nowym dokumencie rzuty.xml tylko dane dotyczące rzutów. Taki sposób postępowania będzie skuteczny, ale wymaga programowania, jak również zainwestowania dużej ilości czasu oraz wielu testów. XSLT został stworzony po to, aby rozwiązać tego typu problemy. XSLT może zostać odczytany przez procesor XSLT, 3.+o K 3.78+;#$  który będzie wykonywał operacje na dokumentach XML. Wszystko, co będziesz musiał zrobić, sprowadza się do utworzenia arkusza XSLT, w którym będą określone reguły, które będziesz chciał zastosować podczas transformacji jednego dokumentu w drugi. Szczególnie ważne dla wielu osób, również dla doświadczonych programistów, jest to, że nie jest przy tym wymagane żadne programowanie. W przykładzie z wynikami base- ballowymi wszystko, co musiałbyś zrobić, sprowadza się do napisania arkusza XSLT, który określał będzie to, co chcesz wykonać i pozwolić, aby proecesor XSLT zrobił resztę. Oprócz transformacji jednego dokumentu XML do innego dokumentu XML, możesz również przeprowadzać transformacje dokumentów XML do innego rodzaju dokumen- tów, takich jak dokumenty HTML, dokumenty w formacie RTF, dokumenty wykorzy- stujące XSL-FO i innych. Możesz również transformować dokumenty XML do innych języków opartych na XML, takich jak MathML, MusicML, VML, XHTML i innych — wszystko bez programowania. W wielu przypadkach XSLT może funkcjonować jak język bazy danych, taki jak SQL (Structured Query Language, jeden z najpopularniejszych języków dostępu do bazy da- nych), ponieważ umożliwia on odczytywanie danych z dokumentów XML w podobny spo- sób, w jaki stosuje się wyrażenia SQL do bazy danych. Niektórzy uważają nawet, że XSLT jest odpowiednikiem SQL dla Sieci. Jeżeli znasz SQL, to measz pewne pojęcie o bezkresnych horyzontach dostępnych dla XSLT. Korzystając z arkusza stylów XSLT możesz na przykład wydzielić z dokumentu XML podzbiór danych, stworzyć spis treści, czy odnaleźć wszystkie elementy spełniające określone wymagania (na przykład wszystkich klientów z tym samym kodem pocztowym itd.). Wszystko to za pomocą jednego posuenięcia! #(cid:17)3,/8036+89-/# Inną częścią XSL jest XSL-FO, która zawiera instrukcje formatowania. Będziesz miał okazję zapoznać się z nimi w tej książce. Możesz wykorzystać XSL-FO do bardzo precy- zyjnego określenia tego, jak dane w dokumentach XML mają być prezentowane (możesz to zrobić na przykład poprzez określenie wielkości marginesów, czcionki, wyrównanie, określenie wielkości nagłówka i stopki czy szerokości strony). Jeżeli formatujesz do- kument XML, to musisz wziąć pod uwagę setki elementów. W związku z tym XSL-FO jest zdecydowanie obszerniejszy niż XSLT. Z drugiej strony — ze względu na swój wysoki stopień złożoności XSL-FO nie jest jeszcze zbyt popularny (szczególnie w porównaniu z XSLT). Obecnie nie ma zbyt wiele oprogramowania obsługującego XSL-FO, a żadne z nich nie zawiera nawet w przybliżeniu obsługi kompletnego standardu. Podobnie jak w przypadku XSLT najpopularniejszym zastosowaniem jest transformacja dokumentów XML do HTML, tak najpopularniejszym zastosowaniem XSL-FO jest konwersja XML do sformatowanego dokumentu PDF (Portable Data Format), czyli formatu wykorzystywanego przez Adobe Acrobata. Zo- baczysz przykład takiego zastosowania na końcu tego roezdziału, a także w rozdziale 11. #4/-0+-/  W3C opublikowało specyfikacje zarówno dla XML, jak i XSL, którymi będziemy się zajmowali w tej książce. Specyfikacje W3C nie są nazywane standardami, ponieważ na mocy międzynarodowego porozumienia standardy tworzone są tylko przez organizacje  #$  +.//-94630/732+78 zatwierdzone przez rząd. Zamiast tego W3C zaczyna od opublikowania wymagań (requi- rements) przeznaczonych dla nowej specyfikacji. Wymagania składają się z celów i przed- stawiają swego rodzaju przegląd tego, czym będzie dana specyfikacja. Jednak na tym etapie sama specyfikacja jeszcze nie jest tworzona. Naestępnie W3C publikuje specyfikację w formie wersji roboczej (working drafts), którą każdy może skomentować, a następnie publikuje propozycję rekomendacji (candidate recommendations), która również jest przedmiotem oceny. Na zakończenie publikowana jest ostateczna wersja, czyli reko- mendacja (recommendations). Poniższa lista zawiera specyfikacje W3C związane z XSLT, które będą wykorzystywane w tej książce. Podałem również miejsca, w których można jee znaleźć:  kompletna propozycja rekomendacji XSL www.w3.org/TR/xsl/ — jest to duży dokument określający wszystko, na co składa się XSL;  rekomendacja XSL Transformations 1.0 www.w3.org/TR/xslt — przeznaczeniem XSLT jest transformacja zawartości dokumentów XML do einnych dokumentów (dzięki temu XSL stał się tak popularny);  wersja robocza XSLT 1.1 www.w3.org/TR/xslt11 — jest to wersja robocza XSLT 1.1, która nie stanie się rekomendacją (W3C planuje dodanie feunkcji XSLT 1.1 do XSLT 2.0);  wymagania XSLT 2.0 www.w3.org/TR/xslt20req — W3C opublikowała zestaw celów dla XSLT 2.0 (jednym z nich jest większe wsparcie edla schematów XML);  specyfikacja XPath 1.0 www.w3.org/TR/xpath — XPath wykorzystuje się do zlokalizowania i wskazania określonych sekcji i eleementów dokumentów XML (dzięki temu można z nimi pracować);  wymagania XPath 2.0 www.w3.org/TR/xpath20req — aktualizacja XPath będzie zawierała większe wsparcie dla XSLT 2.0. /67/#$ Specyfikacje XSLT były modyfikowane zdecydowanie częściej niż specyfikacja XSL jako całość. Rekomendacja XSLT 1.0 została ukończona 16. XI 1999 roku i w tej for- mie tworzy szkielet dzisiejszego XSLT. Później pojawiła się wersja robocza XSLT 1.1. Chociaż początkowo prace nad nią miały być kontynuowane, aby stała się nową rekomendacją, niektórzy członkowie W3C zaczęli pracować nad XSLT 2.0. Po pewnym czasie W3C postanowiła anulować reko- mendację XSLT 1.1. Oznacza to, że wersja robocza XSLT 1.1 nie będzie dalej rozwijana — pozostanie w stadium wersji roboczej i nie stanie się rekomendacją. Innymi słowy — nie będzie oficjalnej wersji 1.1 XSLT. Jednak W3C stwierdziła również, że planuje zintegrować większość rozwiązań wersji roboczej XSLT 1.1 z XSLT 2.0. Z tego powodu przyjrzymy się bliżej wersji roboczej XSLT 1.1. Aby nie było wątpliwości, wyraźnie zaznaczę, kiedy omawiane zagadnienia będą dotyczyły nowości wprowadzonych w wersji roboczej XSeLT 1.1. 3.+o K 3.78+;#$  Na poniższej liście zamieściłem zmiany w XSLT 1.0, które zostały wprowadzone w wersji roboczej XSLT 1.1 (zamieściłem ją tylko jako przykład, ponieważ większość z jej punktów na razie prawdopodobnie niewiele będzie Ci mówić):  wyeliminowano dane typu fragment drzewa wynikowego, ketóre były obsługiwane w XSLT 1.0;  podczas tworzenia dokumentów wyjściowych nie można już ew dowolny sposób dodawać węzłów przestrzeni nazw, ponieważ proces naprawy eprzestrzeni nazw jest teraz wykonywany automatycznie;  dodano wsparcie dla XML Base;  różnego rodzaju dokumenty wynikowe są teraz obsługiwanee przez element 7.3-9/28; element 7+44(cid:18)43687 może mieć teraz parametry; funkcje rozszerzeń mogą być teraz definiowane za pomocą efunkcji 77-648;    funkcje rozszerzeń mogą teraz zwracać obiekty zewnętrzne, które nie odpowiadają żadnym typom danych XPath. W tej książce przedstawię rekomendację XSLT 1.0 oraz wersję roboczą XSLT 1.1. W3C wybiegła jednak trochę na przód i opublikowała także wymagania dla XSLT 2.0. Przedstawię zatem wszystkie znane do tej pory informacje na temat XSLT 2.0. Poniższa lista przedstawia cele XSLT 2.0:  większe wsparcie dla korzystania ze schematów XML w XSeLT;  uproszczenie operacji wykonywanych na tekstach;  łatwiejsze korzystanie z XSLT;  poprawiona obsługa dokumentów wielojęzycznych;  zachowanie zgodności wstecz z XSLT 1.0;  lepsze wykorzystanie mocy obliczeniowej procesora. Chociaż XSLT 2.0 nie ujrzy w najbliższym czasie światła dziennego, podam wszystkie znane informacje na jego temat podczas omawiania tematów pokrewnych. Na przykład następcą HTML jest — oparty na XML — XHTML. W XSLT 1.0 czy w wersji robo- czej XSLT 1.1 nie ma specjalnego wsparcia dla transformacji z XML do XHTML, tak więc będziemy musieli utworzyć tę transformację od zera. Jednak takie wsparcie pojawi się w XSLT 2.0 i wspomnę o tym podczas omawiania XHTML. Tyle informacji powinno wystarczyć na wstępie. Nadszedł czas, by zabrać się do pracy. XSL został stworzony do wykonywania operacji na dokumentach XML, tak więc najpierw omówię strukturę dokumentów XML. Będziesz wprawdzie pracował z dokumentami XML, ale trzeba zaznaczyć, że arkusze stylów XSL również są dokumentami XML i powinieneś o tym pamiętać podczas ich tworzenia. Zakładam, że masz pewną wiedzę zarówno o XML, jak i HTML. Jak już wspomniałem wcześniej, ta książka jest uzupeł- nieniem książki „XML. Vademecum profesjonalisty”.  #$  +.//-94630/732+78 Bardzo istotne jest to, abyś wiedział, na jakiej zasadzie zbudowane są dokumenty XML. Wykorzystaj więc poniższe informacje, aby się upewnić, że jesteś gotowy do dalszej lektury. Oto przykład dokumentu XML, któremu się bliżej prezyjrzymy: :/6732 /2-3.21 $(cid:25)  $   $  8+;   $  ~  8+;.+1+8;+2;/-/  ~   $ Utworzyłem ten dokument w następujący sposób: zacząłem od instrukcji przetwarzania XML  :/6732  /2-3.21 $(cid:18) (wszystkie instrukcje przetwarzania XML zaczynają się od  i kończą na ), która wskazuje, że korzystam z XML w wersji 1.0 (aktualnie jedynej oficjalnej definicji XML) oraz ze kodowania znaków UTF-81: :/6732 /2-3.21 $(cid:25)  $   $  8+;   $  ~  8+;.+1+8;+2~;/-/  ~   $ Następnie utworzyłem nowy znacznik o nazwie  $. Możesz użyć znacznika o do- wolnej nazwie (nie tylko  $(, bowiem ważne jest tylko to, aby nazwa zaczynała się od litery lub podkreślenia ()). Kolejne znaki mogą zawierać litery, cyfry, podkreśle- nia, kropki ( ) lub znak minus ((cid:18)), ale nie mogą zawierać spacji. W XML znaczniki zawsze zaczynają się od  i kończą na . Dokumenty XML zbudowane są z elementów, które tworzy się za pomocą znacznika otwierającego, takiego jak  $. Następnie umieszcza się (jeżeli jest taka potrzeba) zawartość elementu (na przykład tekst czy inne elementy) i kończy odpowiednim znacznikiem zamykającym, który zaczyna się od  (na przykład   $). Cały do- kument (poza instrukcjami przetwarzania) znajduje się w jednym elemencie — elemencie głównym, którym w naszym przypadku jest element  $. 1 Kodowanie w Unikodzie nie jest — przynajmniej na razie — przyjętym standardem kodowania polskich znaków. Jest nim ISO-8858-2. Jednak procesory XSLT opisywUane w tej książce (między innymi Xalan, Saxon i XT) nie obsługują kodowania w standardzie ISO-8858-2. UJeżeli więc chcemy używać tych procesorów oraz polskich liter, to pozostaje nam koUdowanie w Unikodzie. Natomiast jeżeli będziemy pracowali z procesorem XSLT wbudowanym w Internet ExplorUera, który w wersji 6.0 przeglądarki jest prawie w pełni zgodny z obowiązującymi standardami, to bUędziemy mogli wykorzystywać kodowanie ISO-8858-2 — przyp. tłum. 3.+o K 3.78+;#$  :/6732 /2-3.21 $(cid:25)  $      $ Teraz dodałem do dokumentu XML nowy element   $, który posiada zawartość tekstową (w tym wypadku „Witam w XML”), dzięki czemu otrezymałem: :/6732 /2-3.21 $(cid:25)  $   $  8+;   $      $ Następnie dodałem kolejny nowy element  ~, który również posiada zawartość tekstową: :/6732 /2-3.21 $(cid:25)  $   $  8+;   $  ~  8+;.+1+8;+2;/-/  ~   $ Teraz dokument bazowy  $ zawiera dwa elementy:   $ i  ~. Oba elementy zawierają tekst. W ten sposób utworzyłem noewy dokument XML. Jednak na tym nie koniec, ponieważ dokumenty XML powinny być również prawidłowo zbudowane oraz poprawne. 6+;.o3;3,9.3;+2/.39/28 Prawidłowo zbudowany dokument XML musi być zgodny z regułami składni określo- nymi dla XML przez W3C w rekomendacji XML 1.0 (którą można znaleźć na stronie www.w3.org/TR/REC-xml). Nieformalnie określenie „prawidłowo zbudowany” oznacza przede wszystkim dokument zawierający jeden lub więcej elementów. Jeden z elementów — element główny — musi zawierać wszystkie inne elementy, a każdy z tych elementów musi być prawidłowo zagnieżdżony wewnątrz innego elementu. Na przykład poniższy dokument nie jest prawidłowo zbudowany, ponieważ znacznik zamykający (  $) występuje po znaczniku otwierającym następnego elementeu ( ~):  #$  +.//-94630/732+78 :/6732 /2-3.21 $(cid:25)  $   $  8+;  ~   $  8+;.+1+8;+2;/-/  ~   $ 346+;2/.39/28 Większość przeglądarek XML sprawdzi, czy Twój dokument jest prawidłowo zbudowany. Niektóre z nich mogą również sprawdzić, czy jest poprawny. Dokument XML jest po- prawny, jeżeli jest skojarzony z Definicją Typu Dokumentu (DTD) lub schematem XML i jeżeli jest zgodny z tą definicją lub schematem. Tak jest, DTD lub schemat określa ze- staw reguł opisujących wewnętrzną spójność dokumentu. Jeżeli przeglądarka może potwierdzić, że dokument jest zgodny z tymi regułami, toe dokument jest poprawny. Schematy XML zdobywają coraz większą popularność. Znacznie większe wsparcie dla schematów pojawi się wraz z nadejściem XSLT 2.0 (obsługa schematów XML jest pod- stawowym celem wprowadzenia XSLT 2.0), ale obecnie najczęściej używanym narzędziem sprawdzającym poprawność dokumentów jest DTD. DTD mogą być przechowywane w oddzielnych plikach lub w tym samym dokumencie (w elemencie $ ). W po- niższym przykładzie do wcześniej utworzonego kodu dodałem element $ : :/6732 /2-3.21 $(cid:25) (cid:25)78/7//884/8/8 -776/04/6;7 -77 $  $ $ $9  $: ~; $  $9 $; $ ~9 $;   $   $  8+;   $  ~  8+;.+1+8;+2;/-/  ~   $ W tej książce nie będziemy zajmowali się DTD (szczegółowe informacje na ten temat znajdziesz w książce „XML. Vademecum profesjonalisty”). Napiszę tu tylko, że ta defini- cja typu dokumentu informuje, iż element  $ jest elementem głównym. Informuje także o tym, że elementy   $ oraz  ~ mogą zawierać tekst. W dokumentach XML można zdefiniować różnego rodzaju hierarchie, w których jeden element zawiera inne elementy (nawet takie, które znajdują się o wiele poziomów niżej). 3.+o K 3.78+;#$  Można również nadawać elementom atrybuty, takie jak ten: n 2/,/7 (atrybut  ma wartość 2/,/7). Możesz używać atrybutów do przechowywania dodatkowych danych na temat elementów. Możesz również wstawiać do dokumentów XML komentarze, które wyjaśniają znaczenie poszczególnych elementów i umieszczają je wewnątrz (cid:18)(cid:18) i (cid:18)(cid:18). Oto przykład dokumentu XML planety.xml, który przedstawia wykorzystanie omawianych przed chwilą elementów do przechowywania masy, długości dnia, gęstości, odległości od słońca i innych informacji o planetach Merkury, Wenus i Ziemia. Będziemy używali tego pliku w całej książce, ponieważ przedstawia w krótkiej i zwartej formie większość możliwości XML, którymi będziemy zajmować. 7821 Plik planety.xml :/6732 /2-3.21 $(cid:25)  $  $  /696   ##$9/+ ;  # p#$.2  p  p#$   p  #$~#$9/+ ;   #$~ n~#$32K;  n~(cid:25)(cid:25).74/6/9(cid:25)(cid:25)  $  $   /297   ##$9/+ ;   # p#$.2   p  p#$  p  #$~#$9/+ ;   #$~ n~#$32K;  n~(cid:25)(cid:25).4/6/9(cid:25)(cid:25)  $  $  /+   ##$9/+ ;  # p#$.2  p  p#$  p  #$~#$9/+ ;   #$~ n~#$32K;   n~(cid:25)(cid:25).4/6/9(cid:25)(cid:25)  $  $ Musisz również poznać kilka definicji XML przedstawionyche w tej książce:  CDATA — proste dane znakowe (tekst, który nie zawiera znacezników i nie będzie interpretowany przez analizator XML);  ID — poprawna nazwa XML, która musi być unikatowa (co ozneacza, że dwa atrybuty typu ID nie mogą mieć tej samej nazwy);  IDREF — będzie zawierał wartość atrybutu ID jakiegoś elementu e(zazwyczaj innego elementu), do którego odnosi się dany element;  IDREFS — kilka elementów ID oddzielonych spacjami;  #$  +.//-94630/732+78  NAME Character — litera, cyfra, przecinek, minus, podkreślenie lub dweukropek;  NAME — nazwa XML, która musi zaczynać się od litery, podkreeślenia lub dwukropka, po której mogą (ale nie muszą) występować innee znaki nazwy;  NAMES — lista nazw oddzielonych spacjami;  NMTOKEN — element składni składający się z jednej lub kilku liteer, cyfr, minusów, podkreśleń, dwukropków i przecinków;  NMTOKENS — kilka poprawnych nazw XML oddzielonych spacją;  NOTATION — nazwa notacji (która musi być zdefiniowana w DTD);  PCDATA — przetwarzane dane znakowe (PCDATA nie może zawierać znaczników, znaków  i , ani ciągu ). W tym miejscu powinieneś mieć już ogólny obraz dokumentów XML (łącznie z tym, jak powinny wyglądać prawidłowo zbudowane i poprawne dokumenty XML). Jeżeli czujesz, że masz za mało informacji na ten temat, sięgnij po książkę, w której znajdziesz ich wię- cej (na przykład „XML. Vademecum profesjonalisty”). Możesz również przejrzeć strony poświęcone XML znajdujące się w Sieci. Oto lista stron ew języku angielskim:  http://w3c.org/xml — strona główna konsorcjum W3C jest podstawowym źródłem informacji na temat XML;  http://www.w3.org/XML/1999/XML-in-10-points — „XML in 10 Points” (tak naprawdę tylko w siedmiu), czyli krótki przegląd XML;  http://www.w3.org/TR/REC-xml — oficjalna rekomendacja W3C dla XML 1.0 (jest to aktualna i na razie jedyna oficjalna wersjea, ale niezbyt łatwa w lekturze);  http://www.w3.org/TR/xml-stylesheet — wszystko o używaniu arkuszy stylów w XML;  http://www.w3.org/TR/REC-xml-names/ — wszystko o przestrzeniach nazw XML;  http://www.w3.org/XML/Activity.html — przegląd aktualnych prac nad XML w W3C;  http://www.w3.org/TR/xmlschema-0/, http://www.w3.org/TR/xmlschema-1/ i http://www.w3.org/TR/xmlschema-2/ — schematy XML, alternatywa dla DTD;  http://www.w3.org/TR/xlink/ — specyfikacja XLinks;  http://www.w3.org/TR/xptr/ — specyfikacja XPointers;  http://www.w3.org/TR/xhtml1/ — specyfikacja XHTML 1.0;  http://www.w3.org/TR/xhtml11/ — specyfikacja XHTML 1.1;  http://www.w3.org/DOM/ — obiektowy Model Dokumentu (DOM). Tak więc utworzyłeś już dokument XML. Jak możesz go teraez zobaczyć? 3.+o K 3.78+;#$  Do wyświetlenia „czystego” dokumentu XML możesz użyć przeglądarki, takiej jak Micro- soft Internet Explorer w wersji 5.0 lub późniejszej. Gdybym na przykład zapisał przed chwilą utworzony dokument XML w pliku planety.xml i otworzył go w Internet Explorerze, to pojawiłby się rezultat widoczny na rysunku 1.1. 792/ Dokument XML w Internet Explorerze Na rysunku 1.1 widać dokument XML. Nie zawiera on żadnego formatowania — doku- ment XML pojawia się w Internet Explorerze dokładnie w takiej postaci, w jakiej można go wydrukować na drukarce. W rzeczywistości Internet Explorer zastosował domyślny arkusz stylów. Domyślny arkusz stylów został użyty do konwersji XML do dynamiczne- go HTML, z którym Internet Explorer „wiedział” już, co zrobić. Jednak co należy zrobić w sytuacji, gdy chcemy zaprezentować dane w innej postaci? Jeżeli chcemy na przykład zaprezentować dane dokumentu planety.xml w dokumencie HTML w formie tabeli? W tym momencie na scenę wkraczają transformacje XSLT. Przyjrzymy im się teraz bliżej. Pod koniec tego rozdziału przyjrzymy się również drugieej stronie XSL — XSL-FO. XSLT jest językiem służącym do manipulowania danymi w dokumentach XML. Używając arkusza stylów XSLT można na przykład pobrać dane z pliku planety.xml i sformatować je w postaci tabeli HTML. Arkusz stylów zawiera reguły transformacji dokumentu XML. Większość materiałów w tej książce poświęcona jest pisaniu arkuszy stylów i pomocy w ich zrozumieniu. A tak wygląda arkusz stylów XSLT planety.xsl formatujący dane z pliku planety.xml do postaci tabeli HTML (szczegółowo omówimy go w rozdziale 2.).  #$  +.//-94630/732+78 7821  Plik planety.xsl :/6732  778/7//8:/6732  277884 ;;; ; 361  # $6+27036 78/4+8/+8- $ $  $$ $+,/+4+2/8  $$      $+,/+4+2/8    $     $  $+;+ $ $+7+ $ $ 63/q $ $/q $  $  7+44(cid:25)8/4+8/7   $    $  78/4+8/ 78/4+8/+8- $ $  $7:+9/(cid:25)307//-8   $ $7+44(cid:25)8/4+8/77//-8#  $ $7+44(cid:25)8/4+8/77//-8 p  $ $7+44(cid:25)8/4+8/77//-8p  $  $   78/4+8/ 78/4+8/+8-# 7:+9/(cid:25)307//-8   78/8 78/8 7:+9/(cid:25)307//-8#$   78/4+8/ 78/4+8/+8- p 7:+9/(cid:25)307//-8   78/8 78/8 7:+9/(cid:25)307//-8#$   78/4+8/ 78/4+8/+8-p 7:+9/(cid:25)307//-8   78/8 78/8 7:+9/(cid:25)307//-8#$   78/4+8/  778/7//8 3.+o K 3.78+;#$  Jak widać, arkusz stylów XSLT wygląda jak dokument XML. Powód jest bardzo prosty — arkusz stylów XSLT jest dokumentem XML. Wszystkie arkusze stylów XSLT są również dokumentami XML i jako takie, powinny być prawidłowo zbudowane. Pod- czas wykonywania różnego rodzaju transformacji XSLT zobaczysz jeszcze nie raz te dwa dokumenty: plik planety.xml (widoczny na listingu 1.1) i skojarzony z nim arkusz stylów planety.xsl (widoczny na listingu 1.2). Jak można połączyć arkusz stylów z dokumentem planety.xml? Jak zobaczymy w następnym rozdziale, jednym ze sposobów jest użycie instrukcji przetwarzania XML (cid:18)78/7//8. Posiada ona dwa atrybuty. Pierwszym atrybutem jest 84/, który ustawia się na text/xml , aby wskazać, że używany arkusz to XSLT. (Aby użyć innego rodzaju arkusza stylów — kaskadowego arkusza stylów (CSS) — który zazwyczaj jest używany z dokumentami HTML, należałoby użyć parametru text/css ). Drugim atrybutem jest 6/0, za pomocą którego określa się URI (przypominam, że w XML używa się uniwersalnego identyfikatora zasobu — Uniform Resource Identifiers, czyli URI, a nie URL) arkusza stylu: :/6732  (cid:25)78/7//884/8/8 76/04+2/8 7  $  $  /696   ##$9/+ ;  # p#$.2  p  p#$   p  #$~#$9/+ ;   #$~ n~#$32K;  n~(cid:25)(cid:25).4/6/9(cid:25)(cid:25)  $ Teraz możemy użyć procesora XSLT, aby zastosować plik planety.xsl do pliku plane- ty.xml i utworzyć nowy dokument planety.html. W rezultacie procesor XSLT utworzy dokument planety.html, który możesz zobaczyć na rysunku 1.2. 792/  Dokument HTML utworzony przez procesor XSLT Jak widać na rysunku 1.2, procesor XSLT odczytał dane z pliku planety.xml, zastosował reguły znajdujące się w pliku planety.xsl i utworzył tabelę HTML w pliku planety.html. Jest to pierwszy przykład transformacji XSLT.  #$  +.//-94630/732+78 Co się właściwie stało? Widziałeś już dokument XML planety.xml i arkusz stylów XSLT planety.xsl. Ale jak zostały one połączone i jak utworzyły plik planety.html? Do wykonania transformacji pliku planety.xml do planety.html używa się procesora XSLT. Transformację dokumentów XML można wykonać na trezy sposoby:  w samodzielnym programie, który nazywa się procesorem XSLT — istnieje kilkanaście programów (zazwyczaj bazujących na Javie), ektóre wykonują transformacje XSLT (w tym rozdziale omówimy kilka ze nich);  po stronie klienta — transformacje może wykonać program klienta (taki jaek przeglądarka) odczytując arkusz stylów, który określiłeeś w instrukcji przetwarzania (cid:18)78/7//8 (do pewnego stopnia, transformacje tego typu może wykeonać Internet Explorer);  po stronie serwera – program serwera (na przykład serwlet Javy) może wykorezystać arkusz stylów do automatycznej transformacji dokumenetu, a następnie wysłać go do klienta. W tej książce będziesz miał okazję sprawdzenia wszystkich trzech metod transformacji. Jednak omówienie tych sposobów przedstawię już teraz. Jednym z najpopularniejszych sposobów wykonywania transformacji XSLT jest wyko- rzystywanie samodzielnych procesorów XSLT. Jest ich bardzo dużo, jednak nie wszystkie obsługują dostepne arkusze stylów. Aby użyć procesora XSLT, uruchom go po prostu z linii poleceń (co w przypadku Windows oznacza skorzystanie z okna DOS), podając nazwę dokumentu źródłowego XML, arkusz stylów, który chcesz użyć i nazwę dokumentu, który chcesz utworzyć. Oto lista wybranych samodzielnych procesorów XSLT dostępnych w Sieci, przedsta- wionych w kolejności alfabetycznej (większość z nich jeest darmowa):  4XSLT http://Fourthought.com/4Suite/4XSLT — procesor XSLT Pyton;  EZ/X http://www.activated.com/products/products.html — pakiet Javy zarówno dla analizatorów XML, jaki i procesorów XSLT;  iXSLT http://www.infoteria.com/en/contents/download/index.html — procesor XSLT uruchamiany z linii poleceń;  Koala XSL Engine http://www.inria.fr/koala/XML/xslProcessor — procesor XSLT w języku Java, który korzysta z Simple API for XML (SAX e1.0) i Modelu Obiektów Dokumentu (DOM 1.0); 3.+o K 3.78+;#$   LotusXSL http://www.alphaworks.ibm.com/tech/LotusXSL — implementacja w Javie procesora XSLT firmy IBM, który obsługuje interfeejs API zgodny ze specyfikacją Modelu Obiektów Dokumentu (DOM) poziomu 1 (był teo bardzo popularny procesor XSLT, jednak obecnie traci popularność na rzecz Xalana 2.0);  MDC-XSL http://mdc-xsl.sourceforge.net — procesor XSLT w C++, który można wykorzystywać jako samodzielny program;  Microsoft XML Parser http://msdn.microsoft.com/downloads/webtechnology/ xml/msxml.asp — jest to bardzo wydajny analizator składni XML firmy Meicrosoft, dostępny jako komponent COM (można go wykorzystać do impleementacji obsługi XSTL w swoich programach);  Sablotron http://www.gingerall.com/charlie-bin/get/webGA/act/sablotron .act — Sablotron jest szybkim, zwartym i przenośnym procesoreem XSLT (obecnie obsługuje jedynie część rekomendacji XSLT; można go używać z C lub ePerlem);  SAXON http://users.iclway.co.uk/mhkay/saxon/index.html — procesor XSLT z pełną obsługą XSLT 1.0 i XPath 1.0, jak również wielu rozszerzeń teych specyfikacji (warto podkreślić, że ta wersja zawiera również częścieową obsługę wersji roboczej XSLT 1.1);  Transformiix http://www.mozilla.org — Transformiix jest komponentem XSLT Mozilli, zaimplementowanym do pewnego stopnia w Netscapee 6.0;  Procesor Unicorn XSLT (UXT) http://www.unicorn-enterpirses.com — ten procesor XSLT obsługuje transformacje XSLT i został neapisany w C++;  Xalan C++ http://xml.apache.org/xalan-c/index.html — obsługuje rekomendację W3C dla XSLT oraz XML Path Language (XPath); jest to werseja słynnego procesora Xalan firmy Apache w języku C++;  Xalan Java http://www.xml.apache.org/xalan-j.index.html — obsługuje rekomendację W3C dla XSLT oraz XML Path Language (XPath); ejest to wersja słynnego procesora Xalan firmy Apache napisana w Javie (ezawiera również rozszerzoną obsługę dostępu do baz danych SQL poprzez JDBC);  xesalt http://www.inlogix.de/products.html — ten procesor XSLT jest dostępny jako moduł serwera sieciowego (zarówno dla Apache’a, jake i serwerów sieciowych IIS), rozszerzenie Netscape 4.x oraz procesor uruchamianye z linii poleceń;  Analizator XML dla C http://www.technet.oracle.com/tech/xml/parser_c2 — procesor XSLT firmy Oracle (obsługuje rekomendację XSLeT 1.0 i przeznaczony jest do użytku z językiem C);  Analizator XML dla Javy http://www.technet.oracle.com/tech/xml/parser_java2 — procesor XSLT firmy Oracle (obsługuje rekomendację XSeLT 1.0 i przeznaczony jest do użytku z językiem Java);  Analizator XML dla PL/SQL http://www.technet.oracle.com/tech/xml/parser_plsql2 — procesor XSLT firmy Oracle (obsługuje rekomendację XSLT 1.0 i przeznaczony jeest do użytku z językiem PL/SQL);  XML::XSLT http://www.xmlxslt.sourceforge.net — jest to analizator XSLT napisany w Perlu (obsługuje część rekomendacji XSLT);  #$  +.//-94630/732+78  Xport http://www.timelux.lu — procesor transformacji XSLT (dostępny jako obiekt COM);  XSL:P http://www.clc-marketing.com/xslp/download.html — aktualny procesor XSLT;  XT http://www.jclark.com/xml/xt.html — XT jest dobrze znaną implementacją rekomendacji XSLT w Javie. Za chwilę przyjrzymy się bliżej czterem wymienionym wyżej procesorom XSLT: XT, Saxonowi, procesorowi XSLT firmy Oracle i Xalanowi. Wszystkie te programy są dostępne w Sieci za darmo i mogą być wykorzystane do opracowania przykładów zamieszczo- nych w książce. Jeżeli chcesz wykonać zamieszczone tutaj ćwiczenia, dobrze będzie, jeżeli ściągniesz jeden lub kilka samodzielnych procesorów XSLT (prawdopodobnie najlepiej znanym i najczęściej stosowanym jest Xalan). Do wykonywania transformacji XSLT przedstawionych w książce będę wykorzystywał te właśenie procesory XSLT. Wszystkie te procesory bazują na Javie, jeśli więc zechcesz ich używać, musisz mieć zainstalowaną w swoim systemie Javę. Jeżeli jeszcze nie masz Javy, możesz ją ściągnąć za darmo ze strony firmy Sun. Najnowszą wersją w czasie pisania tej książki była Java 2 w wersji 1.3 (dostępna na stronie http://java.sun.com/j2se/1.3). Teraz musisz załado- wać Javę do swojego komputera i postępować zg
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

XSLT. Vademecum profesjonalisty
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ą: