Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00062 008461 10460761 na godz. na dobę w sumie
XML Kompendium programisty - książka
XML Kompendium programisty - książka
Autor: Liczba stron: 592
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-573-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
Książka ta pomoże Ci przy tworzeniu wydajnych aplikacji XML oraz przygotowywaniu elastycznych struktur dokumentów. Przedstawiono tu wiele technologii XML -- m.in. XML bezprzewodowe (WAP, VoiceXML i inne), a także wiele przykładów oraz język i powiązane z nim technologie. Książka jest przeznaczona dla średniozaawansowanych i zaawansowanych twórców publikacji sieciowych. Można z niej nauczyć się, jak wykorzystać XML do publikacji w Sieci i do wymiany danych; można poznać nowopowstające standardy, w tym schematy XML, XSLT, XPath, XLink i wiele innych. Na dołączonej do książki płycie CD znajduje się przykładowy kod, edytory XML i parsery, które umożliwiają zaoszczędzenie wielu godzin pracy. Takiego połączenia specjalistycznej wiedzy z praktycznymi poradami dla projektantów i programistów nie znajdziesz w żadnej innej książce.
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 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 XML Kompendium programisty Autor: Fabio Arciniegas T‡umaczenie: Tomasz flmijewski ISBN: 83-7197-573-2 Tytu‡ orygina‡u: Format: B5, stron: 589 Zawiera CD-ROM XML Developer Ksi„¿ka ta pomo¿e Ci przy tworzeniu wydajnych aplikacji XML oraz przygotowywaniu elastycznych struktur dokument(cid:243)w. Przedstawiono tu wiele technologii XML (cid:151) m.in.(cid:160) XML bezprzewodowe (WAP, VoiceXML i inne), a tak¿e wiele przyk‡ad(cid:243)w oraz jŒzyk i(cid:160) powi„zane z nim technologie. Ksi„¿ka jest przeznaczona dla (cid:156)redniozaawansowanych i(cid:160) zaawansowanych tw(cid:243)rc(cid:243)w publikacji sieciowych. Mo¿na z niej nauczy(cid:230) siŒ, jak wykorzysta(cid:230) XML do publikacji w Sieci i do wymiany danych; mo¿na pozna(cid:230) nowopowstaj„ce standardy, w tym schematy XML, XSLT, XPath, XLink i wiele innych. Tworzenie elastycznej struktury dokument(cid:243)w XML. Dodawanie informacji (cid:159)r(cid:243)d‡owych do dokument(cid:243)w XML. Zrealizowanie relacji w bazie danych XML. Okre(cid:156)lenie sposobu odczytywania dokumentu XML. Wysoka jako(cid:156)(cid:230) rozwi„zaæ. Zasady u¿ycia siŒ XML. Na do‡„czonej do ksi„¿ki p‡ycie CD znajduje siŒ przyk‡adowy kod, edytory XML i(cid:160) parsery, kt(cid:243)re umo¿liwiaj„ zaoszczŒdzenie wielu godzin pracy. Takiego po‡„czenia specjalistycznej wiedzy z praktycznymi poradami dla projektant(cid:243)w i programist(cid:243)w nie znajdziesz w ¿adnej innej ksi„¿ce. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl O Autorze................................................................................................. 15 Wstęp...................................................................................................... 17 Część I Struktura, składnia i użycie XML ............................... 21 Rozdział 1. Podstawy XML........................................................................ 23 Wprowadzenie...................................................n...................................................n................23 Mity na temat znaczników ...................................................n................................................23 Czym są znaczniki? ...................................................n...................................................n..24 Definicja XML ......................................n...................................................n......................... ...29 Definicja ścisła ...................................................n...................................................n.........29 Definicja z punktu widzenia Sieci...................................................n...............................29 Definicja z punktu widzenia danych ...................................................n...........................30 Album rodzinny XML...................................................n...................................................n....30 Składnia i najważniejsze cechy XML...................................................n...............................30 Wprowadzenie...................................................n...................................................n..........30 XML — szczegóły ...................................................n...................................................n...33 Przykładowy dokument XML...................................................n...........................................46 Podsumowanie ...................................................n...................................................n............. ..46 Rozdział 2. DTD: Charakterystyka i techniki ............................................. 47 Wprowadzenie...................................................n...................................................n................47 Wprowadzenie do DTD ...................................................n...................................................n.47 DTD a dokumenty ...................................................n...................................................n....47 Deklarowanie elementów ...................................................n............................................48 Deklarowanie atrybutów ...................................................n.............................................50 Deklarowanie encji...................................................n...................................................n...53 Więcej szczegółów na temat DTD...................................................n....................................55 Deklaracje typu elementu ...................................................n............................................55 Deklaracje list atrybutów...................................................n.............................................59 Więcej o encjach ...................................................n...................................................n............67 Rodzaje encji ...................................................n...................................................n............67 Zewnętrzne encje ogólne...................................................n.............................................67 4 XML. Kompendium programisty Wewnętrzne encje ogólne...................................................n............................................68 Encje nieparsowane ...................................................n...................................................n..68 Przydatny zestaw encji parametrycznych ...................................................n.........................69 Sekcje warunkowe...................................................n...................................................n....71 Wewnętrzny i zewnętrzny podzbiór DTD...................................................n...................71 ..72 Podsumowanie ...................................................n...................................................n............. Rozdział 3. Przestrzenie nazw. Wprowadzenie do przetwarzania XML......... 73 Wprowadzenie...................................................n...................................................n................73 Przestrzenie nazw...................................................n...................................................n...........73 Definicja i przykład ...................................................n...................................................n..73 Przykład ...................................................n...................................................n....................75 Deklaracja przestrzeni nazw...................................................n........................................76 Nazwy kwalifikowane ...................................................n.................................................77 Struktura — szczegóły ...................................................n................................................78 Typowe nieporozumienia ...................................................n............................................80 Modele przetwarzania ...................................................n...................................................n....82 Paradygmaty ...................................................n...................................................n.............82 Możliwości parserów...................................................n...................................................n83 Podsumowanie ...................................................n...................................................n............. ..84 Część II Parsowanie i programowe przetwarzanie XML ........... 85 Struktura SAX2...................................................n...................................................n........... Rozdział 4. SAX i SAX2 (wersje 1.0 i 2.0) ................................................ 87 Do czego służą SAX i SAX2? ...................................................n..........................................87 Użycie SAX 1.0/SAX2 ...................................................n...................................................n..88 Prosty program SAX ...................................................n...................................................n......88 Definiowanie procedur obsługi zdarzeń...................................................n......................89 Zgłaszanie procedur obsługi zdarzeń parserowi, początek analizy XML......................90 ...90 Interfejsy SAX...................................................n...................................................n..........91 Zaawansowane zagadnienia związane z SAX2 ...................................................n..............104 Filtry ...................................................n...................................................n.......................104 Adaptery ...................................................n...................................................n.................105 Typowe błędy w programach korzystających z SAX...................................................n.....106 Niespójne procedury obsługi zdarzeń ...................................................n.......................106 Nadużywanie DefaultHandler ...................................................n...................................106 Bezpośrednie modyfikowanie stanu danych (mimo zapotrzebowania na historię) .....107 Podsumowanie ...................................................n...................................................n.............108 Rozdział 5. Zaawansowane techniki programowania w SAX i SAX2......... 109 Wprowadzenie...................................................n...................................................n..............109 Kilka słów o szablonach...................................................n............................................109 Wzorzec Builder w aplikacjach SAX2 ...................................................n...........................110 Użycie...................................................n...................................................n.....................110 Przykład ...................................................n...................................................n..................110 Budowa szablonu...................................................n...................................................n....113 Przykład ...................................................n...................................................n..................114 Konsekwencje użycia szablonu Builder...................................................n....................119 Spis treści 5 Szablon Command w aplikacjach SAX2 ...................................................n........................119 Użycie...................................................n...................................................n.....................119 Przykład ...................................................n...................................................n..................119 Budowa szablonu...................................................n...................................................n....121 Przykład ...................................................n...................................................n..................122 Konsekwencje użycia szablonu Command ...................................................n...............125 Sztafeta wywołań ...................................................n...................................................n.........125 Zastosowanie ...................................................n...................................................n..........125 Przykład ...................................................n...................................................n..................126 Budowa...................................................n...................................................n...................127 Przykład ...................................................n...................................................n..................129 Konsekwencje użycia sztafety wywołań...................................................n...................130 Podsumowanie ...................................................n...................................................n.............130 Rozdział 6. Obiektowy model dokumentu Level 2 (DOM2)....................... 131 Wprowadzenie...................................................n...................................................n..............131 Historia DOM...................................................n...................................................n.........132 Czym jest DOM...................................................n...................................................n......133 Mała aplikacja DOM...................................................n...................................................n....135 Problem...................................................n...................................................n.................. Rozwiązanie ...................................................n...................................................n...........136 .135 Budowa DOM ...................................................n...................................................n..............138 Przewodnik po DOM...................................................n.................................................138 Główne interfejsy DOM ...................................................n............................................139 Bardziej złożony przykład...................................................n.........................................143 Podsumowanie ...................................................n...................................................n.............148 Rozdział 7. Zaawansowane techniki DOM2 ............................................ 149 Wprowadzenie...................................................n...................................................n..............149 Aplikacje DOM2 wykorzystujące szablon Visitor ...................................................n.........149 Użycie szablonu Visitor ...................................................n............................................150 Przykład ...................................................n...................................................n..................150 Struktura ...................................................n...................................................n.................156 Przykład ...................................................n...................................................n..................157 Konsekwencje zastosowania szablonu Visitor...................................................n..........158 Aplikacje DOM2 wykorzystujące szablon Iterator...................................................n.........159 Użycie szablonu Iterator...................................................n............................................159 Przykład ...................................................n...................................................n..................159 Budowa szablonu Iterator...................................................n..........................................163 Przykład ...................................................n...................................................n..................164 Konsekwencje zastosowania szablonu Iterator ...................................................n.........166 Aplikacje DOM2 wykorzystujące szablon Mediator...................................................n......166 Użycie...................................................n...................................................n.....................167 Przykład ...................................................n...................................................n..................167 Struktura ...................................................n...................................................n.................170 Przykład ...................................................n...................................................n..................170 Konsekwencje zastosowania szablonu Mediator ...................................................n......172 Podsumowanie ...................................................n...................................................n.............173 6 XML. Kompendium programisty Część III Technologie pomocnicze XML................................ 175 Rozdział 8. XPath — język ścieżek XML................................................. 177 Wprowadzenie...................................................n...................................................n..............177 XPath — teoria empiryczna ...................................................n............................................177 Uwagi wstępne ...................................................n...................................................n.......177 Podstawy XPath...................................................n...................................................n......178 Narzędzia XPath...................................................n...................................................n...........187 Tester ścieżek XPath ...................................................n.................................................188 Rozszerzenia XPath w Emacs ...................................................n...................................189 Biblioteki ...................................................n...................................................n................189 Programowe użycie XPath...................................................n..............................................190 Kilka szczegółów dotyczących XPath ...................................................n............................191 Ścieżki lokalizacji...................................................n...................................................n...191 Etapy...................................................n...................................................n.......................191 Osie...................................................n...................................................n..................... ....191 Zapis skrócony...................................................n...................................................n........192 Podsumowanie ...................................................n...................................................n.............192 Rozdział 9. XPointer ............................................................................... 193 Wprowadzenie...................................................n...................................................n..............193 Podstawy XPointer...................................................n...................................................n.......193 Zadania XPointer i związane z nim pojęcia ...................................................n..............194 Model i język XPointer ...................................................n...................................................n195 Krótko o ścieżkach logicznych...................................................n..................................195 Postaci przyjmowane przez XPointer...................................................n........................195 Cytowanie w XPointer ...................................................n...................................................n.197 Cytowanie w URI XPointer...................................................n.......................................197 Cytowanie XML w XPointer...................................................n.....................................198 Cytowanie XPointer ...................................................n..................................................199 Rozszerzenia XPath w XPointer ...................................................n.....................................199 Nowe zadania XPointer w XPath...................................................n..............................199 Nowe funkcje w XPath...................................................n..............................................201 Dodatki do XPath — podsumowanie...................................................n........................203 Narzędzia XPointer ...................................................n...................................................n......203 Podsumowanie ...................................................n...................................................n.............204 Rozdział 10. XLink.................................................................................. 205 Wprowadzenie...................................................n...................................................n..............205 Powiązania między danymi XML...................................................n.............................205 Elementy XLink ...................................................n...................................................n...........207 XLink rozszerzone i proste na przykładach...................................................n....................208 Przykładowa struktura ...................................................n...............................................209 Znaczniki XLink...................................................n...................................................n.....216 Łącza rozszerzone ...................................................n...................................................n..217 Łącza proste...................................................n...................................................n............220 Prezentacja łączy XLink...................................................n............................................221 Podsumowanie: atrybuty globalne XLink i zasady ich użycia ....................................222 Spis treści 7 Przykład łączy XLink nie związanych z prezentacją...................................................n......223 O grafach ...................................................n...................................................n................224 Użycie XLink przy opisywaniu w XML grafów skierowanych ..................................224 Modelowanie grafów w Javie...................................................n....................................226 Tworzenie grafów Javy na bazie grafów XML...................................................n.........227 Podsumowanie ...................................................n...................................................n.............227 Rozdział 11. XSLT: przekształcanie XML ................................................ 229 Wprowadzenie...................................................n...................................................n..............229 Ogólne wiadomości o XSLT...................................................n...........................................229 Podstawy...................................................n...................................................n.................229 Proste przekształcenie XSLT ...................................................n....................................230 Dodatkowe wiadomości o przekształceniach ...................................................n.................233 Działanie na węzłach...................................................n.................................................233 Wizualizacja sposobu przekształcania ...................................................n......................234 Procesory XSLT...................................................n...................................................n...........235 Instalacja i wywołanie Xalan...................................................n.....................................236 Instalacja i wywołanie XT...................................................n.........................................236 Wszystko o języku XSLT ...................................................n...............................................237 Dane źródłowe...................................................n...................................................n........237 Wstawianie nowych elementów i atrybutów...................................................n.............238 Wstawianie tekstu...................................................n...................................................n...241 Wstawianie generowanego tekstu ...................................................n.............................242 Kopiowanie...................................................n...................................................n.............243 Numerowanie ...................................................n...................................................n.........243 Wyrażenia warunkowe ...................................................n..............................................245 Pętle ...................................................n...................................................n.................... ....247 Sortowanie...................................................n...................................................n..............247 Zmienne ...................................................n...................................................n..................250 Reguły nazwane...................................................n...................................................n......251 Przekazywanie regułom parametrów ...................................................n........................252 Podsumowanie ...................................................n...................................................n.............254 Rozdział 12. XSLT: zaawansowane techniki i ich zastosowanie ............... 255 Wprowadzenie...................................................n...................................................n..............255 Od struktury do prezentacji: wymagania funkcjonalne ...................................................n..255 Wymagania...................................................n...................................................n.............256 Modelowanie informacji ...................................................n...........................................256 Przekształcanie w XHTML ...................................................n.......................................259 Uwagi o przekształcaniu na format PDF...................................................n...................264 Graficzna postać danych: generacja SVG...................................................n.......................264 Dane prezentowane graficznie ...................................................n..................................265 Modelowanie informacji ...................................................n...........................................265 Pokazywanie danych w postaci SVG...................................................n........................267 Przekształcanie danych statystycznych w obrazki SVG ..............................................269 Wielokrotne użycie arkuszy stylów ...................................................n................................271 Dwie drogi do tego samego celu ...................................................n...............................272 8 XML. Kompendium programisty Rozszerzanie XSLT ...................................................n...................................................n.....272 Kiedy rozszerzać XSLT ...................................................n............................................272 Rozwiązania bez rekursji...................................................n...........................................273 Implementacja instrukcji times ...................................................n.................................273 O innych rodzajach rozszerzeń...................................................n..................................276 Inne rozszerzenia ...................................................n...................................................n....276 Krótki przewodnik po XSLT ...................................................n..........................................276 Podsumowanie ...................................................n...................................................n.............280 Rozdział 13. XML Schema ...................................................................... 281 Wprowadzenie...................................................n...................................................n..............281 XML Schema — krótkie wprowadzenie ...................................................n........................281 Typy...................................................n...................................................n........................282 Fazy ...................................................n...................................................n........................287 Typy anonimowe ...................................................n...................................................n....292 Modele zawartości...................................................n...................................................n..293 Wielokrotne użycie elementów i atrybutów: grupy nazwane ......................................295 Adnotacje...................................................n...................................................n................295 Podsumowanie ...................................................n...................................................n.............296 Rozdział 14. Zaawansowane techniki modelowania danych w XML Schema................................................................... 297 Wprowadzenie...................................................n...................................................n..............297 Zaawansowane zagadnienia związane z XML Schema...................................................n..297 Wyprowadzanie nowych typów i inne relacje między typami ....................................298 Niepowtarzalność ...................................................n...................................................n...306 Modularyzacja i wielokrotne użycie ...................................................n.........................307 Porównanie XML Schema z DTD (Rick Jelliffe)...................................................n...........308 Podsumowanie ...................................................n...................................................n.............310 Część IV Najważniejsze aplikacje XML ................................. 313 Rozdział 15. XML bezprzewodowe: WAP, VoiceXML i inne ...................... 315 Wprowadzenie...................................................n...................................................n..............315 WAP ...................................................n...................................................n.............................316 Zasady działania WAP ...................................................n..............................................316 Model WAP...................................................n...................................................n............317 Struktura WAP ...................................................n...................................................n.......318 WAE ...................................................n...................................................n.......................318 WML ...................................................n...................................................n............................319 Środowisko tworzenia WAP ...................................................n.....................................320 Użycie WML ...................................................n...................................................n..........321 Wszystko o WML...................................................n...................................................n...322 Architektura...................................................n...................................................n............332 WMLScript...........................................n...................................................n...........................336 Struktura WMLScript...................................................n................................................336 VoiceXML...................................................n...................................................n..............343 Podsumowanie ...................................................n...................................................n.............344 Spis treści 9 Rozdział 16. XML i bazy danych .............................................................. 345 Wprowadzenie...................................................n...................................................n..............345 Bazy danych a XML ...................................................n...................................................n....345 Typy dokumentów...................................................n...................................................n..346 Stopień powiązania...................................................n...................................................n.348 Specjalne klasy dla poszczególnych słowników XML...................................................n...349 API rozdzielający bazę danych ...................................................n.......................................352 Narzędzia warstwy pośredniej ...................................................n........................................356 Szablony a odwzorowanie...................................................n.........................................357 xml-dbms...................................................n...................................................n................358 Podsumowanie: kompletny przykład ...................................................n........................360 Przekształcanie metadanych...................................................n............................................364 System zarządzania treścią...................................................n..............................................364 Serwery XML jako bazy danych ...................................................n....................................365 Lista dostępnych produktów ...................................................n...........................................368 Podsumowanie ...................................................n...................................................n.............369 Rozdział 17. XML między serwerami: XML-RPC i B2B ............................. 371 Wprowadzenie...................................................n...................................................n..............371 XML-RPC ...................................................n...................................................n.................. ..371 Podstawy zdalnego wywoływania procedur ...................................................n...................372 Postać wywołania ...................................................n...................................................n...373 Postać odpowiedzi ...................................................n...................................................n..373 Postaci informacji o błędzie ...................................................n......................................374 Testowanie serwisów XML-RPC...................................................n..............................375 Zalety i wady XML-RPC ...................................................n..........................................376 Praktyczne wprowadzenie do programowania XML-RPC..........................................378 Szczegóły specyfikacji XML-RPC ...................................................n...........................381 Aplikacje B2B tworzone przy użyciu XML-RPC — porównanie cen DVD ....................386 Architektura...................................................n...................................................n............387 Serwis DVDTitles ...................................................n...................................................n..388 Serwer DVDTitles ...................................................n...................................................n..390 Klient DVDTitle...................................................n...................................................n.....391 Serwis DVDPrices...................................................n...................................................n..392 Podsumowanie ...................................................n...................................................n.............395 Część V Obszerne omówienie poszczególnych przykładów..... 397 Rozdział 18. XML a wygląd: CSS2, XHTML, SVG i SMIL .......................... 399 Wprowadzenie...................................................n...................................................n..............399 XML i CSS...................................................n...................................................n...................399 Praktyczne wprowadzenie do pracy z CSS i XML ...................................................n...400 Składnia i dostępne mechanizmy ...................................................n..............................406 Model ramek prezentacji w CSS ...................................................n...............................414 Kompletny przykład ...................................................n..................................................415 Podsumowanie ...................................................n...................................................n.............420 Zestawienie właściwości ...................................................n...........................................421 10 XML. Kompendium programisty Rozdział 19. Aplikacja przeznaczona do usuwania błędów ....................... 429 Wprowadzenie...................................................n...................................................n..............429 Wymagania..........................................n...................................................n............................430 Wymagania względem XMLBugTrack (wygenerowane przez req2txt.xsl)................430 Wymagania wobec XMLBugTrack (wygenerowane przez req2xhtml.xsl) ................432 Wymagania wobec XMLBugTrack (oryginalny XML) ..............................................432 Analiza i projekt...................................................n...................................................n...........435 Struktura aplikacji ...................................................n...................................................n..435 Projekt...................................................n...................................................n.....................436 Implementacja ...................................................n...................................................n........440 Połączenie bazy danych i XML, przetwarzanie XSLT ................................................441 Podsumowanie ...................................................n...................................................n.............455 Rozdział 20. Aplikacja przeznaczona do zarządzania informacjami ........... 457 Wprowadzenie...................................................n...................................................n..............457 Na czym polega zarządzanie informacjami ...................................................n....................458 Wymagania..........................................n...................................................n............................458 Budowa systemu...................................................n...................................................n.....462 Wykorzystanie DTD ...................................................n...................................................n....463 DTD komentarzy ...................................................n...................................................n....463 Słownik...................................................n...................................................n.................. .470 Edytor dokumentów z notatkami ...................................................n....................................473 Wykorzystanie SMIL/HTML przy tworzeniu prezentacji.................................................475 Rzut oka na wyniki...................................................n...................................................n.475 Podsumowanie ...................................................n...................................................n.............482 Dodatki...................................................r............................ 483 Dodatek A Składnia XML........................................................................ 485 Elementy i atrybuty ...................................................n...................................................n......485 Deklaracje DTD ...................................................n...................................................n...........486 Odwołania do encji ...................................................n...................................................n......486 Dodatek B Specyfikacja XML 1.0 ........................................................... 487 Rozszerzalny Język Znaczników (XML) 1.0 (wydanie drugie) ........................................487 Rekomendacja W3C z 6 października 2000r. ...................................................n...........487 Streszczenie ...................................................n...................................................n............488 Status tego dokumentu ...................................................n..............................................488 1. Wprowadzenie...................................................n...................................................n..........489 1.1. Historia dokumentu i jego zadania...................................................n.....................489 1.2. Terminologia ...................................................n...................................................n...490 2. Dokumenty...................................................n...................................................n...............491 2.1. Poprawne składniowo dokumenty XML...................................................n............491 2.2. Znaki...................................................n...................................................n................492 2.3. Typowe konstrukcje składniowe ...................................................n........................492 2.4. Dane znakowe i znaczniki...................................................n..................................494 2.5. Komentarze...................................................n...................................................n......495 Spis treści 11 2.6. Instrukcje przetwarzania...................................................n.....................................495 2.7. Sekcje CDATA...................................................n...................................................n495 2.8. Prolog i deklaracja typu dokumentu...................................................n...................496 2.9. Deklaracja samodzielności dokumentu ...................................................n..............499 2.10. Jak traktować białe znaki?...................................................n................................500 2.11. Obsługa końca wiersza ...................................................n.....................................501 2.12. Określanie języka ...................................................n.............................................501 3. Struktury logiczne ...................................................n...................................................n....502 3.1. Znaczniki początkowe, końcowe i znaczniki elementów pustych........................503 3.2. Deklaracje typu elementu...................................................n...................................504 3.3. Deklaracje list atrybutów...................................................n....................................506 3.4. Sekcje warunkowe...................................................n..............................................511 4. Struktury fizyczne ...................................................n...................................................n....512 4.1. Znaki i encje ...................................................n...................................................n....512 4.3. Encje parsowane...................................................n.................................................516 4.4. Sposób traktowania encji i odwołań przez procesor XML ...................................518 4.5. Konstrukcja tekstu podstawienia encji wewnętrznej ............................................520 4.6. Encje predefiniowane ...................................................n.........................................521 4.7. Deklaracje notacji...................................................n...............................................521 4.8. Encja dokumentu ...................................................n................................................522 5. Zgodność ...................................................n...................................................n..................522 5.1. Procesory z walidacją i bez walidacji...................................................n.................522 5.2. Użycie procesorów XML ...................................................n...................................523 6. Wybór notacji...................................................n...................................................n......... ..523 A. Bibliografia...................................................n...................................................n..............525 A.1. Dokumenty normatywne ...................................................n...................................525 A.2. Inne publikacje ...................................................n..................................................526 B. Klasy znaków ...................................................n...................................................n..........529 C. XML a SGML (nienormatywne)...................................................n................................531 D. Rozwijanie odwołań do encji i znaków (nienormatywne)............................................531 E. Deterministyczne modele zawartości (nienormatywne) ...............................................533 F. Autodetekcja kodowania znaków (nienormatywne) ...................................................n..533 F.1. Detekcja w przypadku braku informacji zewnętrznych........................................534 F.2. Priorytety przyjęte wobec istnienia zewnętrznych informacji o kodowaniu ........535 G. Grupa robocza XML w W3C (nienormatywne) ...................................................n........536 H. Skład grupy W3C XML Core (nienormatywne)...................................................n........536 I. Uwagi o przygotowaniu specyfikacji (nienormatywne).................................................537 Dodatek C Najważniejsze DTD przeznaczone do prezentacji .................... 539 WML ...................................................n...................................................n............................539 XHTML (wersja ścisła)...................................................n...................................................n545 SMIL .................................................n...................................................n....................... .......562 Dodatek D Krótki przewodnik po UML ..................................................... 567 Diagram klas ...................................................n...................................................n............. ...567 Diagramy przypadków użycia...................................................n.........................................568 12 XML. Kompendium programisty Dodatek E Najważniejsze przykłady wyspecjalizowanych DTD.................. 571 Wprowadzenie...................................................n...................................................n..............571 Wymagania funkcjonalne...................................................n................................................571 Encje pomocnicze ...................................................n...................................................n........573 DTD komentarzy (wersja prosta) ...................................................n..............................575 Skorowidz .............................................................................................. 577 Rozdział 16. Wprowadzenie Tworzenie dużych witryn sieciowych oraz innych aplikacji zależy od możliwości przechowywania, wyszukiwania i pobierania dużych ilości danych. Mimo że doku- menty XML są elastyczne i niosą w sobie dużo treści, to z uwagi na wydajność wy- maganą przy przechowywaniu dużych ilości danych, nie mogą równać się z tradycyj- nymi bazami danych, jak np. Oracle czy PostgreSQL. W tym rozdziale przyjrzymy się, jak wyglądają związki między XML a bazami da- nych z punktu widzenia twórcy systemów. Szczególnie będą nas interesowały prak- tyczne ich zastosowania. Nie będziemy zajmować się podstawowymi konstrukcjami baz danych, zakładamy znajomość samego XML i zagadnień omawianych w roz- działach 4. i 6. (szczególnie interfejsu SAX). Rozdział ten podzielony został na kilka części: w pierwszej omawiamy podstawowe zagadnienia ogólne, związane z bazami danych i XML oraz sposób ich zapisania w pięciu różnych zastosowaniach. Następnie dokładnie objaśnimy poszczególne za- stosowania oraz pokażemy przykłady ich implementacji. Dodatkowo pokażemy ze- stawienia najlepszych bibliotek i produktów, podziedlone według kategorii. Bazy danych a XML XML jest szczególnie przydatny przy przenoszeniu danych i opisywaniu ich seman- tyki. Dzięki niemu otrzymujemy metodę przejrzystego zapisania danych i metada- nych w hierarchicznym dokumencie, łatwo będzie nam takie dokumenty przenosić. Z kolei bazy danych są użyteczne wtedy, kiedy trzeba przechowywać duże ilości da- nych w wydajny sposób. 346 Czlć IV  Najwarniejsze aplikacje XML Podczas tworzenia dużych aplikacji sieciowych XML (przykład w rozdziale 19.) lub jakichkolwiek innych aplikacji, w których mamy do czynienia z dużą ilością danych, przechowywanie tych danych bezpośrednio, w postaci dokumentów XML staje się coraz mniej opłacalne. W takich sytuacjach konieczne staje się powiązanie dwóch technologii: XML i klasycznych baz danych. Połączenie to może przybierać różne postaci, w zależności od obsługiwanych doku- mentów, zadań stawianych przed aplikacją i od tego, jak intensywne będzie prze- kształcanie danych z dokumentów XML w tabele (obiektyd baz danych) i odwrotnie. Typy dokumentów Z punktu widzenia trwałości danych, rozróżnia się XML opisujący dokumenty i XML opisujący dane. XML opisujący dane ma sztywne struktury, które są standardowymi, powtarzalnymi obiektami, składającymi się z atrybutów. W tego typu dokumentach dane typu $ występują zwykle jedynie jako elementy-liście, rzadko zdarza się też zawartość mie- szana. Poniższy kod stanowi przykład XML opisującego dane (kolekcja płyt kompaktowych). Inne przykłady to dokumenty wysyłki i pliki konfiguracdyjne. :/6732  $ 3/-+)-.##$-. .8. 3/-+)-. 889o74+-/46/7/6:/ 6o+.3;06+1/28 3/- 889o -..+3 3 889o74+-/46/7/6:/23967//4 889o +6878++96/2./6732+439 //. +6878+ 463.9-/286+223 463.9-/28 63  63 98;=629/6 23967//4 98;=6 98;=629/6  98;=6  -. -..+33 889o74+-/46/7/6:/$6+2739634/46/77 889o +6878+6+08;/6 +6878+ 463.9-/286+08;/6 463.9-/28 63  63 98;=629/6 9634/2./77 98;=6  -. 33898+3 /,2=78;3.+7-4o833  3/-+)-. W przypadku XML opisującego dokumenty, gdy prezentowane w nich dane mają być przede wszystkim czytelne, struktura jest bardziej swobodna, często pojawia się za- wartość mieszana. Tak jest w przypadku większości witryn sieciowych, listów i in- nych dokumentów zakodowanych w XML. Poniższy urywek artykułu (zakodowany za pomocą DTD Docbook) należy do takiego właśnie typu dodkumentów: Rozdział 16.  XML i bazy danych 347 $ +68-/ 3 +:/24368 $3-33   $$/+0+,3:+.9-8 -3 $$,9/8$4/-6-/ $$:/6732.+2 K:    7  0++4 $$78+897.6+08  $$463/-8 463;+./2/.32 $$+,786+-8##$+,786+-8  $$;+8##$;+8  $$2863##$2863  $$;##$;  $$3;##$3;  $$6/0/6/2-/7##$1377+6   +68-/ +68/+./6 88/23,+232/ 88/ 88/ 463;+./2/.32 88/ +9836 7962+/6-2/1+7  7962+/ 06782+/+,3 06782+/  +9836 33+,786+-833  +68/+./6 2863 ;+8 ; 3; 6/0/6/2-/7  +68-/ Oto jeden z plików z danymi, abstract.xml: 4+68.286334+68 .3-203 88/#86/7-/2/ 88/  .3-203 88/#86/7-/2/ 88/ -+48/6.+232863.9-832 88/ 463;+./2/.3/5/8 31=2/13/.836+.+23/ 88/ 4+6+ /;//8/-2331+6/00+63.2 + ,o33-/;+2-8+43;7/-2/8+2/-/64;3-K +/4+772 /4+77  4+6+ 33 898+-1.+733 W tej chwili różnica między XML opisującym dane a służącym do zapisu dokumen- tów będzie miała dla nas kapitalne znaczenie, gdyż wiąże się z nią zasadnicze pyta- nie: czy interesują nas dane zapisane w XML, czy sam XML? W przypadku dokumentów interesują nas raczej same dokumenty: budowa doku- mentu, zawarte w nim komentarze, użycie encji i tak dalej — wszystko, co dotyczy opisywanego problemu. 348 Czlć IV  Najwarniejsze aplikacje XML W przypadku XML opisującego dane interesują nas głównie (lub wyłącznie) dane znajdujące się w dokumencie. To, czy dokument składa się z pięciu zewnętrznych en- cji, czy też jest zapisany w całości zapisany w jednym pliku, nie ma znaczenia1. Tak samo nie mają znaczenia komentarze, wcięcia, a czasem nawet kolejność elementów (kolejność akapitów w liście jest bardzo ważna, natomiast kolejność pozycji faktury nie ma już takiego znaczenia). W większości aplikacji związanych z bazami danych XML traktuje się jako źródło danych, zaś kluczowe aspekty to: wydajne przetwarzanie dużych ilości dokładnych danych (przykładami mogą być spis towarów w hurtowni, zbiór danych geograficz- nych i tak dalej). Dlatego w tym rozdziale poświęcimy dużo uwagi narzędziom i tech- nikom potrzebnym do przekazywania danych między XMLd a bazami danych. Stopień powiązania Natkniemy się też na problem z określeniem, ile aplikacja „wie” o bazie danych, czyli na ile jest z nią powiązana. Tak naprawdę jest to pytanie o to, na ile warstwa aplikacji odpowiada warstwie bazy danych — może być to związek od bardzo ścisłego aż po całkowitą niezależność. Z bardzo ścisłym związkiem mamy do czynienia wtedy, gdy klasy specjalizowane znają strukturę bazy danych, potrafią ustanawiać połączenia i tworzyć zapytania oraz generować kod XML na podstawie wyników. Kiedy związek ten jest bardzo luźny, aplikacja nie wie nic o różnych sposobach zapi- su danych i po prostu wywołując odpowiednie funkcje API serwera XML, otrzymuje dokument XML. W przypadku powiązania pośredniego stopnia, do połączenia tradycyjnej bazy danych (zwykle relacyjnej, jak PostreSQL czy MS SQL) z dokumentami XML używa się opro- gramowania pośredniego. Z analogiczną warstwą oprogramowania pośredniego mamy do czynienia, jeśli uży- wany jest parser, pobierający tabele i generujący zdarzenia SAX. Parser taki (będący też pewnego rodzaju oprogramowaniem pośrednim) umieszczony jest między aplika- cją a bazą danych i tworzy w ten sposób interfejs do bdazy relacyjno-obiektowej. Jeśli uwzględnimy wspomniane dwa czynniki, otrzymamy diagram taki, jak na ry- sunku 16.1. Wybranie odpowiedniej technologii z powyższego diagramu zależy od trzeciego czyn- nika, o którym wspomniano na początku tego rozdziału: wymagań wobec aplikacji. Omówione w następnych punktach przykłady i teoria zilustrują zastosowanie oma- wianych zasad w praktyce i pokażą, jak podejmować decyzję o doborze technologii właściwej dla danego projektu. 1 Stoi to w jawnej sprzeczności z XML opisującym dokeumenty, w którym podział na encje jest podstawowym mechanizmem modularyzacji i możliwości ewielokrotnego użycia. Rozdział 16.  XML i bazy danych 349 Rysunek 16.1. Diagram, przedstawiający sposoby powiązania XML i baz danych Specjalne klasy dla poszczególnych słowników XML Pierwszym, najprostszym sposobem tworzenia dokumentu XML na podstawie bazy danych jest jawne zapisanie logiki dla konkretnego słownika XML w specjalizowanej klasie. Klasa taka jest ściśle powiązana z bazą danych i XML. Mimo że takie rozwią- zanie bardzo poprawia wydajność, to jest ono ograniczone i trudne do rozszerzania i utrzymania. Niezależnie od wspomnianych ograniczeń, takie „domowe” rozwiązanie jest czasem przydatne. Poniższy kod to implementacja specjalizowanej klasy, pobierającej z tabeli zbiór rekordów dotyczących filmów: 4368+:+ 75 322/-832 4368+:+ 75 6:/6+2+1/6 4368+:+ 75 #8+8//28 4368+:+ 75  /798#/8 4368+:+ 98  634/68/7 4368+:+ 98  634/68/7 4368+:+ 3 /2498#86/+ 49,--+779783$+,/ 49,-78+8-:3.+2V#8621+61:W 0V+61: /218 W #78/ 398 46282V -/+:+ 9783$+,/  o+-7;3-W #78/ /8V3 W  322/-832-32229 #8+8//2878829 350 Czlć IV  Najwarniejsze aplikacje XML  /798#/86729  634/68/72/; 634/68/7VW 86   3+.V2/;/2498#86/+V+61: WW +77 036+/V 1/8 634/68V.6:/6WW -3226:/6+2+1/6 1/8322/-832V  1/8 634/68V WK  1/8 634/68V97/6WK  1/8 634/68V4+77;36.WW 788-322 -6/+8/#8+8//28VW 67788 //-98/!9/6V#$Z [  1/8 634/68V8+,/WW -6/+8/3-9/28V67W  -+8-V+:+ +21 +7738392.-/4832-20/W  #78/ 398 46282V/2+/32378/63;2+W #78/ /8V3 W  -+8-V+:+ 75 #!-/483275/W  #78/ 398 46282V/43;3.o3743o-/2/ ,+.+2-V#!W[75/W #78/ /8V3 W  -+8-V+:+ +21 -/4832/W  #78/ 398 46282V/43;3.o3743o-/2/ ,+.+2-[/W #78/ /8V3 W    +2/8+,//63;+2/7.3#$ $+3 49,-78+8-:3.-6/+8/3-9/28V /798#/867W 863;7+:+ 75 #!-/4832K +:+ 3 -/4832  #78/ 398 46282V:/6732 W #78/ 398 46282V33 ;1/2/63;+2 2+43.78+;/,+.+2-3:/7733W #78/ 398 46282V3:/7W   6316+2+78698968+,/K7869896+8+378+o+  +3.3;+2+2+78+o/ ;/V67 2/8VWW  #78/ 398 46282V.:.. [ 67 1/828V W[ W #78/ 398 46282V6//+7/.+8/ [ 67 1/8+8/V //+7/.W 83#8621VW[ 7W #78/ 398 46282V88/[ 67 1/8#8621V $8/W[ 88/7W #78/ 398 46282V8+12/[ 67 1/8#8621V$+12/W[ 8+12/7W #78/ 398 46282V-+8/136[ 67 1/8#8621V+8/136W[ -+8/1367W Rozdział 16.  XML i bazy danych 351 #78/ 398 46282V789.3[ 67 1/8#8621V#89.3W[ 789.3W #78/ 398 46282V .:.W  #78/ 398 46282V 3:/7W   Jeśli tabela zawiera dane takie, jak na rysunku 16.2, da plik właściwości ma postać:  ;o+-;3-9783$+,/ .,-3.,-$7 97/6 4+77;36. 8+,/3:/7 .6:/6792 .,- 3.,- .,-.,-6:/6 Rysunek 16.2. Tabela Movies To wygenerowany zostanie następujący dokument: :/6732  33 ;1/2/63;+22+43.78+;/,+.+2-3:/733 3:/7 .:.. 6//+7/.+8/ 3 3  88//,/4/-2/; 88/ 8+12/ .+K9;/./2/K/78+ 6+K+/2/2+7  8+712/ -+8/1366++8 -+8/136 789.3  789.3  .:. .:..  6//+7/.+8/ 3 3  88/ 9736/ 88/ 8+12/o3  12+2/  /;39-+  8+12/ -+8/1363/.+ -+8/136 789.3  789.3  .:. .:..  6//+7/.+8/ 3 3  88/+32+3:- 88/ 8+12/-+o/,223839 3 /7  8+12/ -+8/1363/.+ -+8/136 789.3  789.3  .:.  3:/7 352 Czlć IV  Najwarniejsze aplikacje XML API rozdzielajcy baz danych Kiedy zmniejszymy stopień powiązania oprogramowania z danymi, natkniemy się na ciekawe rozwiązanie: parsery, które pobierają dowolne tabele2 jako dane wejściowe, a jako dane wyjściowe generują standardowe zdarzenia SAX lub DOM. Z punktu wi- dzenia reszty aplikacji, nie ma różnicy między takim parserem a zwykłym parserem XML. Całe przetwarzanie bazy danych zostaje oddzielone w klasie parsera, zaś apli- kacja może zająć się jedynie przetwarzaniem procedur obsługi, potrzebnych do ob- sługi zdarzeń SAX (rysunek 16.3). Rysunek 16.3. API SAX do baz danych Poniższy kod to klasa  +67/6, implementująca interfejs parsera SAX: 4368361  7+ Z 4368361  7+ /4/67 3-+8364 4368361  7+ /4/67 886,98/784 4368+:+ +21 28/1/6 4368+:+ 75  /798#/8 4368+:+ 75  /798#/8/8++8+ 4368+:+ 75 #!-/4832 4368+:+ 3 -/4832 4368+:+ 98 3-+/ 4368+:+ 98  /-836 49,--+77 +67/64//287 +67/6 2 W tym rozdziale częściej będziemy mówić o tabelach i reelacjach niż o obiektach. Przyczyna tego jest prosta: w przypadku baz danych model relacyjny ejest stosowany znacznie częściej niż model obiektowy. Jednak te same zasady działania i te same erozwiązania moż
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

XML Kompendium programisty
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ą: