Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00740 010425 11035399 na godz. na dobę w sumie
XML na poważnie - książka
XML na poważnie - książka
Autor: , Liczba stron: 464
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-765-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
Książka ta to przegląd głównych standardów związanych z językiem XML: a także najnowszych standardów zatwierdzonych w 2001 r.: Interesująco zapowiada się część poświęcona zastosowaniom języka XML: Autorzy umieścili informacje o ograniczeniach poszczególnych standardów, jak również różnorodne zalecenia będące owocem ich przemyśleń a dotyczących np. sposobów tworzenia (modelowania) dokumentów, strategii budowy schematów XML Schema czy stosowania polskich liter.

Książka może być z powodzeniem wykorzystywana jako podręcznik języka XML dla studentów kierunków informatycznych. Przeznaczona jest także dla programistów, projektantów oraz analityków, jak również zwykłych użytkowników komputerów, posiadających jednak pewne obycie informatyczne.

'XML na poważnie' zawiera wiele przykładów, a większość z nich jest dostępna na załączonej płycie CD-ROM w postaci prawie 300 plików.

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

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI XML na powa¿nie KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE Autorzy: Przemys‡aw Kazienko, Krzysztof Gwiazda ISBN: 83-7197-765-4 Format: B5, stron: 444 Zawiera CD-ROM 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 Ksi„¿ka ta to przegl„d g‡(cid:243)wnych standard(cid:243)w zwi„zanych z jŒzykiem XML: XML 1.0. DTD -- opis struktury dokumentu. XSLT -- transformacje dokument(cid:243)w. XPath -- nawigacja i wyszukiwanie. XPointer -- wskazania wewn„trz dokument(cid:243)w. DOM (Level 1, 2, 3) -- dostŒp do dokumentu jako drzewa wŒz‡(cid:243)w. SAX -- zdarzeniowe przetwarzanie dokument(cid:243)w. Namespaces -- przestrzenie nazw. ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK a tak¿e najnowszych standard(cid:243)w zatwierdzonych w 2001 r.: CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE XML Schema -- schematy zawarto(cid:156)ci. XLink -- odsy‡acze hipertekstowe. XSL FO -- prezentacja danych. XML Base -- adresy odniesienia. SVG -- grafika wektorowa. Interesuj„co zapowiada siŒ czŒ(cid:156)(cid:230) po(cid:156)wiŒcona zastosowaniom jŒzyka XML: Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl serwisy internetowe, elektroniczna wymiana danych (EDI), bazy danych XML -- XDBMS, pseudostrukturalne dane tekstowe, systemy prezentacji i systemy interaktywne, dane specjalistyczne (np. MathML, CML). Autorzy umie(cid:156)cili informacje o ograniczeniach poszczeg(cid:243)lnych standard(cid:243)w, jak r(cid:243)wnie¿ r(cid:243)¿norodne zalecenia bŒd„ce owocem ich przemy(cid:156)leæ a dotycz„cych np. sposob(cid:243)w tworzenia (modelowania) dokument(cid:243)w, strategii budowy schemat(cid:243)w XML Schema czy stosowania polskich liter. Ksi„¿ka mo¿e by(cid:230) z powodzeniem wykorzystywana jako podrŒcznik jŒzyka XML dla student(cid:243)w kierunk(cid:243)w informatycznych. Przeznaczona jest tak¿e dla programist(cid:243)w, projektant(cid:243)w oraz analityk(cid:243)w, jak r(cid:243)wnie¿ zwyk‡ych u¿ytkownik(cid:243)w komputer(cid:243)w, posiadaj„cych jednak pewne obycie informatyczne. (cid:132)XML na powa¿nie(cid:148) zawiera wiele przyk‡ad(cid:243)w, a wiŒkszo(cid:156)(cid:230) z nich jest dostŒpna na za‡„czonej p‡ycie CD-ROM w postaci prawie 300 plik(cid:243)w. Wprowadzenie ...................................................n.................................................11 Rozdział 1. Geneza i stan obecny języka XML ...................................................n..19 1.1. Początki języka znaczników. Historia XML...................................................k...........19 1.2. Ograniczenia języka HTML...................................................k....................................21 1.3. XML — wzbogacony HTML czy zubożony SGML? ...............................................24 1.4. Języki znaczników...................................................k...................................................k24 1.5. Standardy języka XML ...................................................k...........................................25 1.6. Przyszłość języków systemu WWW...................................................k.......................29 Rozdział 2. XML — pojęcia podstawowe ...................................................n..........31 2.1. Dokument XML ...................................................k...................................................k...31 2.2. Podstawowe składniki dokumentu XML ...................................................k................32 2.2.1. Elementy ...................................................k...................................................k.....32 2.2.2. Atrybuty ...................................................k...................................................k......35 2.2.3. Elementy puste...................................................k...............................................36 2.3. Podelementy. Hierarchia elementów...................................................k.......................38 2.4. Rodzaje elementów ...................................................k.................................................40 2.5. Postać elementów...................................................k...................................................k.41 2.6. Deklaracja XML...................................................k...................................................k...43 2.7. Poprawny dokument XML...................................................k......................................44 2.8. Przetwarzanie dokumentów XML ...................................................k..........................45 2.9. Inne składniki języka XML...................................................k.....................................46 2.9.1. Deklaracje ...................................................k...................................................k...46 2.9.2. Instrukcje przetwarzania ...................................................k................................49 2.9.3. Entity — jednostki ...................................................k.........................................50 2.10. Nośniki informacji w dokumencie XML ...................................................k..............52 2.11. Konwersja dokumentów HTML do XML ...................................................k............53 Rozdział 3. DTD — opis struktury dokumentu ...................................................n..55 3.1. Poprawność strukturalna dokumentu ...................................................k...........................56 3.2. Struktura DTD...................................................k...................................................k......58 3.2.1. DTD wewnętrzne ...................................................k...........................................58 3.2.2. DTD zewnętrzne ...................................................k............................................58 3.3. Deklaracja elementu ...................................................k................................................61 3.3.1. Deklaracja elementu tekstowego ...................................................k...................61 3.3.2. Deklaracja elementu pustego ...................................................k.........................62 3.3.3. Deklaracja elementu dowolnego...................................................k....................62 3.4. Deklarowanie podelementów — sekwencje i wybory ...............................................63 3.4.1. Sekwencja podelementów...................................................k..............................63 3.4.2. Wybór podelementów ...................................................k....................................64 3.4.3. Połączenie sekwencji i wyboru ...................................................k......................65 6 XML na poważnie 3.5. Wskaźniki liczby wystąpień...................................................k....................................67 3.6. Modele zawartości elementu ...................................................k...................................71 3.7. Budowanie hierarchii elementów...................................................k............................73 3.8. Problemy zawartości elementowej...................................................k..........................76 3.9. Deklaracje atrybutów ...................................................k..............................................78 3.9.1. Typy atrybutów ...................................................k..............................................78 3.9.2. Wartości domyślne atrybutów ...................................................k.......................81 3.10. Dylemat: podelementy czy atrybuty ...................................................k.....................83 3.11. Namespaces — przestrzenie nazw ...................................................k........................85 3.11.1. Wykorzystanie wielu nazw z przestrzeni...................................................k.....87 3.11.2. Wiele przestrzeni. Przestrzenie domyślne ...................................................k...88 3.11.3. DTD a przestrzenie nazw...................................................k.............................89 3.11.4. Przestrzenie standardowe...................................................k.............................89 3.12. Atrybuty predefiniowane...................................................k.......................................91 3.12.1. Atrybuty xml:lang oraz xml:space...................................................k...............91 3.12.2. Atrybut xml:base...................................................k..........................................92 3.13. Jednostki (encje)...................................................k...................................................k.94 3.13.1. Jednostki parametryczne ...................................................k..............................95 3.13.2. Jednostki ogólne...................................................k...........................................98 3.14. Deklaracje notacji...................................................k................................................102 3.15. Sekcje warunkowe...................................................k...............................................102 3.16. Problemy i ograniczenia DTD...................................................k.............................104 3.17. Podsumowanie ...................................................k...................................................k.105 Rozdział 4. XML Schema — schematy dokumentów .........................................107 4.1. Budowa schematu ...................................................k.................................................108 4.1.1. Przestrzeń nazw XML Schema. Korzeń schematu .........................................108 4.1.2. Zasadnicze składowe schematu ...................................................k...................109 4.2. Łączenie schematu z dokumentem XML...................................................k..............110 4.2.1. Przydzielanie schematów do przestrzeni nazw...............................................110 4.2.2. Odwołania do schematów bez przestrzeni nazw ............................................112 4.2.3. Odwołania do schematów z przestrzenią nazw ..............................................113 4.3. Sprawdzanie poprawności dokumentu XML ...................................................k........115 4.4. Typy proste a typy złożone ...................................................k...................................116 4.5. Wbudowane typy danych ...................................................k......................................119 4.6. Aspekty..........................................k...................................................k........................125 4.6.1. Aspekty określające długość...................................................k........................127 4.6.2. Aspekty ograniczające wartości liczbowe ...................................................k...128 4.6.3. Wzorce wartości...................................................k...........................................129 4.6.4. Wyliczenia ...................................................k...................................................k134 4.6.5. Łączenie aspektów ...................................................k.......................................135 4.6.6. Blokowanie wartości aspektów...................................................k....................135 4.7. Wymuszenia występowania ...................................................k..................................135 4.7.1. Liczby wystąpień elementu...................................................k..........................135 4.7.2. Liczby wystąpień w deklaracjach DTD a schematy XML Schema ...............136 4.7.3. Występowanie atrybutu ...................................................k...............................137 4.8. Wyprowadzanie typów...................................................k..........................................137 4.9. Typy złożone zawierające podelementy. Składacze ................................................140 4.10. Typy złożone z atrybutami — bez podelementów. Elementy puste ......................146 4.11. Deklaracje globalne i lokalne. Odesłania do elementów i atrybutów ....................148 4.12. Grupy elementów i atrybutów...................................................k.............................151 4.13. Domyślne oraz stałe wartości elementów i atrybutów...........................................154 4.14. Wartości niepowtarzalne ...................................................k.....................................155 Spis treści 7 4.15. Listy...................................................k...................................................k.............. 4.16. Kombinacje ...................................................k...................................................k......161 4.17. Elementy zastępcze ...................................................k.............................................162 4.18. Strategie budowy schematów...................................................k..............................163 4.18.1. Metoda zagnieżdżania...................................................k................................163 4.18.2. Metoda płaskiego katalogu ...................................................k........................167 4.18.3. Metoda definiowania typów ...................................................k......................171 4.18.4. Wnioski ...................................................k...................................................k...175 ....160 4.19. XML Schema a DTD ...................................................k..........................................175 4.20. Podsumowanie ...................................................k...................................................k.179 Rozdział 5. XPath — nawigacja i wyszukiwanie ................................................181 5.1. Budowa wyrażeń XPath ...................................................k........................................181 5.2. Wędrówka po drzewie dokumentu XML...................................................k..............182 5.2.1. Drzewo węzłów ...................................................k...........................................183 5.2.2. Dostęp do węzłów drzewa ...................................................k...........................184 5.3. Wyszukiwanie węzłów...................................................k..........................................188 5.3.1. Operatory ...................................................k...................................................k..189 5.3.2. Numer kolejnego węzła ...................................................k...............................190 5.3.3. Wyszukiwanie poprzez zawartość elementu ..................................................192 5.3.4. Wyszukiwanie poprzez wartość atrybutu ...................................................k....192 5.4. Funkcje ...................................................k...................................................k...............193 5.4.1. Operacje dotyczące tekstu...................................................k............................193 5.4.2. Operacje dotyczące liczb ...................................................k.............................196 5.4.3. Operacje dotyczące wartości logicznych ...................................................k.....197 5.4.4. Pozostałe operacje...................................................k........................................198 5.5. Ograniczenia języka XPath ...................................................k...................................200 Rozdział 6. XLink — odsyłacze hipertekstowe ..................................................201 6.1. Podstawy języka XLink ...................................................k........................................202 6.1.1. Deklaracja przestrzeni nazw ...................................................k........................202 6.1.2. Rodzaje odsyłaczy ...................................................k.......................................202 6.2. Odsyłacze proste ...................................................k...................................................k203 6.3. Podelementy odsyłaczy rozszerzonych ...................................................k.................204 6.4. Atrybuty odsyłaczy XLink ...................................................k....................................205 6.5. Dwa sposoby wskazywania struktur XML ...................................................k...........208 6.6. Łuki. Reguły przechodzenia...................................................k..................................209 6.7. Odsyłacze rozszerzone. Bazy odsyłaczy ...................................................k...............211 6.7.1. Prezentacja łuków ...................................................k........................................213 6.7.2. Wiązanie wielu zasobów za pomocą jednego łuku.........................................214 6.7.3. Prezentacja rozbudowanych łuków...................................................k..............218 6.7.4. Zastosowanie baz odsyłaczy ...................................................k........................219 6.8. Zachowanie odsyłaczy ...................................................k..........................................220 6.9. Definiowanie struktur zawierających odsyłacze ...................................................k...221 6.10. Podsumowanie ...................................................k...................................................k.224 Rozdział 7. XPointer — wskazania wewntrz dokumentów ................................225 7.1. Rodzaje wskazań ...................................................k...................................................k225 7.2. Sekwencje dzieci ...................................................k...................................................k228 7.3. Funkcje XPointer...................................................k...................................................k228 7.4. Punkty..........................................k...................................................k..........................229 7.4.1. Punkt początkowy ...................................................k........................................229 7.4.2. Punkt końcowy...................................................k.............................................230 8 XML na poważnie 7.5. Zakresy ...................................................k...................................................k...............231 7.5.1. Wskazanie zakresu poprzez wyszukanie ciągu znaków .................................231 7.5.2. Wskazanie zakresu poprzez podanie początku i końca ..................................233 7.5.3. Zamiana elementu na zakres ...................................................k........................234 7.6. Wskazania względne ...................................................k.............................................234 7.7. Kodowanie znaków specjalnych ...................................................k...........................235 7.8. Wyrażenia XPointer zawierające wyrażenia XPath.................................................236 7.9. Podsumowanie ...................................................k...................................................k...237 Rozdział 8. XSLT — transformacje dokumentów ...............................................239 8.1. Transformacje...................................................k...................................................k.....241 8.2. Budowa dokumentu XSLT...................................................k....................................242 8.3. Wzorce — definiowanie, wywoływanie...................................................k.................244 8.3.1. Definiowanie szablonów...................................................k..............................244 8.3.2. Wywoływanie szablonów ...................................................k............................247 8.4. Wydobywanie informacji z dokumentu wejściowego .............................................250 8.5. Kontrola przebiegu transformacji...................................................k..........................251 8.6. Zmienne, zbiory atrybutów ...................................................k...................................255 8.7. Elementy sterujące ...................................................k................................................258 8.8. Elementy kopiujące ...................................................k...............................................259 8.9. Klucze...................................................k...................................................k.................261 8.10. Przetwarzanie białych znaków ...................................................k............................263 8.11. Numerowanie ...................................................k...................................................k...263 8.12. Funkcje ...................................................k...................................................k.............270 8.13. Dołączanie arkuszy ...................................................k.............................................273 8.14. Tworzenie nowego arkusza stylów ...................................................k.....................275 8.15. Rodzaje dokumentu wynikowego ...................................................k.......................277 8.16. Wykorzystanie kaskadowych arkuszy stylów CSS................................................279 8.17. Transformacje do XSL FO...................................................k..................................283 8.18. Transformacje do dokumentu XML o innej strukturze..........................................285 8.19. Przeglądarki internetowe a aplikacje serwerowe ...................................................k287 Rozdział 9. XSL FO — prezentacja danych...................................................n.....289 9.1. XSLT a XSL FO ...................................................k...................................................k289 9.2. Budowa arkusza ...................................................k...................................................k.290 9.2.1. Deklaracja przestrzeni nazw. Element główny ...............................................290 9.2.2. Struktura dokumentu XSL ...................................................k...........................291 9.3. Struktura strony ...................................................k...................................................k..293 9.4. Szablony ...................................................k...................................................k............ 9.5. Zawartość strony ...................................................k...................................................k301 9.6. Atrybuty prezentacji ...................................................k..............................................303 9.7. Obszar bloku ...................................................k...................................................k......310 .296 9.7.1. Bloki...................................................k...................................................k..........310 9.7.2. Tabele...................................................k...................................................k........310 9.7.3. Listy ...................................................k...................................................k..........314 9.8. Obiekty graficzne ...................................................k..................................................316 9.9. Linie rozdzielające ...................................................k................................................318 9.10. FOP — transformacja do formatu PDF...................................................k...............319 9.11. Podsumowanie ...................................................k...................................................k.321 Rozdział 10. DOM — budowanie i dostęp do drzewa dokumentu XML..................323 10.1. Core — zasadnicza część DOM...................................................k..........................324 10.1.1. DOMImplementation ...................................................k.................................324 10.1.2. Document ...................................................k...................................................k326 Spis treści 9 10.1.3. Node oraz NodeList ...................................................k...................................329 10.1.4. Element ...................................................k...................................................k...332 10.1.5. Attr ...................................................k...................................................k..........333 10.1.6. CharacterData, Comment, Text ...................................................k.................334 10.2. DOM StyleSheets...................................................k................................................335 10.3. Events, Views, Traversal, Range ...................................................k........................336 10.4. Podsumowanie ...................................................k...................................................k.337 Rozdział 11. SAX — przetwarzanie zdarzeniowe..................................................339 11.1. Zasada działania ...................................................k..................................................340 11.2. Klasy i interfejsy SAX ...................................................k........................................341 11.2.1. XMLReader, XMLFilter...................................................k............................343 11.2.2. ContentHandler ...................................................k..........................................346 11.2.3. Error handler, Locator...................................................k................................348 11.2.4. DTD Handler ...................................................k.............................................349 11.2.5. Entity resolver, InputSource ...................................................k......................350 11.2.6. Attributes...................................................k...................................................k.351 11.3. Klasy pomocnicze ...................................................k...............................................352 11.4. Podsumowanie ...................................................k...................................................k.353 Rozdział 12. Zastosowanie języka XML ...................................................n...........355 12.1. Serwisy WWW...................................................k...................................................k.356 12.1.1. Warstwa treści i wyglądu — rozdzielenie informacjik zawartych na stronach HTML ...................................................k...................356 12.1.2. Transformacje dokonywane na serwerze...................................................k...358 12.1.3. Transformacje dokonywane po stronie klienta .............................................358 12.1.4. Strony WWW o złożonej strukturze ...................................................k..........360 12.1.5. Wielokrotne wykorzystanie struktur XML. Różne sposoby prezentacji ......361 12.2. Wymiana danych EDI ...................................................k.........................................361 12.2.1. Koncepcja elektronicznej wymiany danych EDI ..............................................361 12.2.2. Wymiana danych z zastosowaniem języka XML a tradycyjna wymiana EDI ...................................................k........................362 12.2.3. Obszary zastosowania języka XML w wymianie EDI .................................364 12.2.4. Bezpośrednia wymiana pomiędzy dwoma partnerami .................................365 12.2.5. Zastosowanie formatu wymiennego ...................................................k..........367 12.2.6. Inicjatywy EDI XML ...................................................k.................................368 12.2.7. ebXML ...................................................k...................................................k....368 12.2.8. BizTalk...................................................k...................................................k....370 12.2.9. RosettaNet...................................................k..................................................373 12.2.10. BASDA ...................................................k...................................................k.374 12.2.11. Inne inicjatywy...................................................k.........................................375 12.3. Bazy danych ...................................................k...................................................k.....376 12.3.1. XDBMS — bazy danych w formacie XML .................................................377 12.3.2. Tamino XML Server...................................................k..................................379 12.3.3. XML jako interfejs pomiędzy bazą danych a serwisem WWW...................381 12.3.4. XML a Microsoft SQL Server ...................................................k...................382 12.3.5. XML a bazy Oracle...................................................k....................................385 12.4. Pseudostrukturalne dane tekstowe ...................................................k......................386 12.5. Systemy prezentacji oraz systemy interaktywne...................................................k.390 12.5.1. SVG — grafika wektorowa ...................................................k.......................390 12.5.2. SMIL — integracja i synchronizacja mediów ..............................................392 12.5.3. VoiceXML — dźwiękowa prezentacja informacji .......................................395 12.5.4. WML — prezentacje internetowe w telefonie komórkowym ......................396 10 XML na poważnie 12.6. Przechowywanie danych specjalistycznych...................................................k........398 12.6.1. CML — opis struktur chemicznych...................................................k...........398 12.6.2. MathML — wzory matematyczne ...................................................k.............399 12.6.3. MML — zapis muzyczny ...................................................k..........................401 12.6.4. NVML — nawigacja w terenie...................................................k..................401 12.6.5. Inne języki specjalistyczne ...................................................k........................402 Rozdział 13. System informacyjny „Plan zajęć uczelni” .......................................405 13.1. Struktura danych systemu (DTD) ...................................................k.......................405 13.2. Architektura systemu...................................................k...........................................406 13.3. SAX...................................................k...................................................k..................407 13.3.1. Część prezentacyjna systemu...................................................k.....................407 13.2.2. Opis techniczny...................................................k..........................................408 13.4. DOM...........................................k...................................................k.........................411 13.4.1. Część administracyjna systemu ...................................................k.................411 13.4.2. Opis techniczny...................................................k..........................................412 13.5. Podsumowanie ...................................................k...................................................k.414 Dodatek A Procesory msxml ...................................................n........................415 Dodatek B Atrybuty XSL FO ...................................................n.........................419 Dodatek C Słownik wyrare angielskich ...................................................n.......423 Dodatek D Słownik skrótów ...................................................n.........................429 Literatura ...................................................n...................................................n...435 Skorowidz...................................................n...................................................n...445 Rozdział 2. XML, ponieważ jest językiem znaczników, służy do opisywania zawartości dokumentów elektronicznych w sposób zrozumiały zarówno dla komputerów, jak i dla ludzi. Jego za- letą jest to, że nawet osoba nie mająca z nim nic wspólnego będzie w stanie w znacznym stopniu rozszyfrować informację zakodowaną w dokumencie XML. Wynika to z prostoty i harmonii tego języka. 2.1. Dokument XML Aby rozgraniczyć niektóre pojęcia, ustalmy — dla potrzeb niniejszej książki — że dokument XML to dokument tekstowy (przechowywany zwykle w postaci pojedynczego pliku), w którym za pomocą elementów języka XML autor umieścił jakąś informację. Po- zostałe dokumenty, np. DTD, schematy, arkusze stylów — jakkolwiek także wyrażone za pomocą języka XML — będą określane innymi terminami, np. „definicje typu doku- mentu DTD”, „schematy XML Schema”, „arkusze stylów XSL” ited. Definicje DTD, schematy, arkusze stylów, transformacje, a nawet bazy odsyłaczy są dodatkowymi specyfikacjami języka XML, odnoszącymi się do zasadniczej informacji zawartej w dokumencie XML — rysunek 2.1. Oczywiście często są to specyfikacje bardzo istotne dla konkretnych zastosowań. W dokumencie XML można więc wyko- rzystać definicje z DTD i schematów. Jednocześnie do dokumentu XML można zastoso- wać transformacje, uzyskując np. postać gotową do wydruku — arkusze stylów. Specyfi- kacje XML przechowywane są zwykle w osobnych plikach, aczkolwiek mogą być także umieszczane wewnątrz dokumentu XML. Ograniczenie znaczenia terminu „dokument XML” służy przede wszystkim łatwiej- szemu zrozumieniu opisów, w których występuje więcej niż jedno pojęcie związane z językiem XML, np. „dokument XML zgodny z deklaracjami DTD” oznacza zbiór elementów XML (czyli dokument XML), który jest strukturalnie poprawny względem pewnego DTD. 32 Rysunek 2.1. Dokument XML XML na powarnie Deklaracje typu dokumentu DTD Schematy XML Schema Dokument XML Transfor- macje XSLT Arkusze stylów XSL (XSL FO) Bazy odsyłaczy XLink 2.2. Podstawowe składniki dokumentu XML Podstawowymi składnikami dokumentu XML są:  elementy,  atrybuty, które są umieszczane w elementach, jako dodatkowee informacje. Elementy mogą być przy tym:  nie puste — posiadające treść,  puste — bez treści. Oprócz tego w dokumencie XML można umieszczać:  deklaracje,  instrukcje przetwarzania,  jednostki. Przyjrzyjmy się bliżej ww. składnikom dokumentów XMLe. 2.2.1. Elementy Podstawowym budulcem dokumentu XML jest element (element). Posiada on zwykle tekstową treść poprzedzoną znacznikiem początkowym (start-tag) i zakończoną znacznikiem końcowym (end-tag) — rysunek 2.2. Oba znaczniki zawierają nazwę elementu objętą znakami „” i „”, przy czym w znaczniku końcowym nazwa jest zawsze poprzedzona znakiem „ ”. Rozdział 2.  XML — pojcia podstawowe 33 Rysunek 2.2. Składowe elementu nazwa (typ elementu) autor Jan Kowalski /autor treść elementu znacznik początkowy (bez /) znacznik końcowy (z /) Element Jeżeli element nie jest pusty (posiada jakąś treść), to w języku XML znacznik po- czątkowy i końcowy zawsze muszą wystąpić. Brak któregoś ze znaczników oznacza, że dany element — a co za tym idzie cały dokument — sąj niepoprawne. W nazwach elementów małe i duże litery są rozróżniane. Tworząc dokument XML, należy zwrócić uwagę na to, by nazwa występująca w znaczniku początkowym była taka sama jak nazwa umieszczona w znaczniku końcowym. Element o nazwie autor jest inny niż element o nazwie 9836,  $ lub + 836. W praktyce w nazwach używa się zwykle małych liter. Nie jest to jednak regułą i są tacy, którzy pre- ferują duże litery, np. [125]. Poniższy element nie jest poprawny, gdyż nazwa umieszczona w jego znaczniku po- czątkowym jest inna niż w znaczniku końcowym: +9836+23;+7  $  Natomiast elementy +983622+3;-+ +9836 +9836+23;+7 +9836  $ 86/-  $  są poprawne. Pierwsze dwa są tego samego rodzaju, zaś trzeci jest inny — ma inną na- zwę, a co za tym idzie zwykle także inne znaczenie. Nie poleca się jednak wykorzystywać małych i dużych liter w celu tworzenia ele- mentów o nazwach tak samo brzmiących (jak wyżej). Powoduje to zwykle więcej zamieszania, niż daje pożytku. W nazwach elementów mogą występować polskie znaki diakrytyczne (ą, Ą, ć, Ć, ...)1, jednak wymaga to odpowiedniego zadeklarowania i ścisłego przestrzegania kodo- wania znaków (patrz: punkt 2.6) we wszystkich dokumentach XML, a także doku- mentach związanych, np. arkuszach stylów. Niektóre programy przetwarzające mogą niepoprawnie interpretować polskie znaki w nazwach. 1 Podobnie jak i inne znaki narodowe. Lista dozwolonyach znaków w standardzie Unicode jest umieszczona w specyfikacji XML 1.0 pod adresem: http://www.w3.org/TR/2000/REC-xml-20001006#NT-Letter. 34 XML na powarnie Dlatego też poprawnym elementem jest: (cid:5) onqp(cid:11)~ 22+3;-+ (cid:5) onqp(cid:11)~  Problemy z polskimi literami w nazwach elementów mogą wystąpić także w przypad- ku zastosowania dokumentów XML w kontaktach międzynarodowych. Kłopoty mogą również pojawić się przy wykorzystaniu dokumentów XML w połączeniu z bazami da- nych, które miewają różne standardy kodowania2. Z tego powodu w dużych projektach należałoby zalecić powstrzymanie się od polskich liter w nazwach elementów. W przy- padku małych systemów, zwłaszcza wykorzystywanych przez zamknięte grono odbior- ców, stosowanie polskich znaków może jednak zwiększeyć czytelność dokumentów. Nazwy elementów mogą zawierać cyfry, myślniki3 i kropki, ale nie mogą się od nich zaczynać. Natomiast nazwy mogą się zaczynać od podkreśjleń i dwukropków. Poniższe elementy są poprawne4: +;+ (cid:25))$6/ +;+ (cid:25)) )+;+ (cid:25))$6/ )+;+ (cid:25)) +;+ (cid:25))$6/ +;+ (cid:25)) Natomiast:  +;+ (cid:25))$6/ +;+ (cid:25))(cid:30)(cid:30)-06+2+43-89(cid:30)(cid:30)  +;+ (cid:25))$6/ +;+ (cid:25))(cid:30)(cid:30)634+2+43-89(cid:30)(cid:30) (cid:25)+;+ (cid:25))$6/ (cid:25)+;+ (cid:25))(cid:30)(cid:30)22+43-89(cid:30)(cid:30) są niezgodne ze standardem XML 1.0 [22]. Nazwa elementu niesie ze sobą bardzo ważną informację. Dzięki niej można określić znaczenie treści zawartej między znacznikami. Nazwę można więc traktować jako określenie typu elementu. Z tego względu należy nadawać takie nazwy, aby były one zrozumiałe dla człowieka. Nie zaleca się korzystać z jakiegokolwiek sposobu ich kodowania, tak powszechnego w przypadku nazewnictwa funkcji i zmiennych w językach programowania, np. zamiast 086 lepiej użyć po prostu 0+896+. Oczywiście wielu programistów preferuje zapis zwięzły, co zwykle wynika z ograniczenia długości nazwy. W języku XML jednak nie ma żadnych ograniczeń długości nazwy, więc nie ma konieczności używania skrótów. Istotne jest tutaj także to, że dokumenty XML są najczęściej przeznaczone nie dla programistów, ale dla zwy- kłych użytkowników komputerów, którzy wolą czytelniejsze weersje nazw. Autorzy nie powinni się bać nadawania elementom długijch, opisowych nazw. Treścią elementu jest tekst, tzn. nawet jeżeli będzie on miał postać liczby, to i tak można ją traktować jako znakowy ciąg cyfr. 2 3 4 Problem polskich liter w nazwach jest także omawianay nieco dalej, w punkcie 2.6. Dotyczy to także podobnych znaków: półpauzy, pauzy oraaz innych łączników (Combining Characters). Znak dwukropka rozdziela prefiks przestrzeni nazw oad nazwy właściwej (patrz: punkt 3.11) i w związku z tym nie zaleca się używania go w innym acelu. Przykładowo, parser XML zawarty w Microsoft Internet Explorerze nie dopuszcza stosowaania znaku dwukropka na początku nazwy. Rozdział 2.  XML — pojcia podstawowe 35 Ponieważ znaki „” oraz „” oznaczają początek i koniec znacznika, to nie mogą one występować w treści ujętej pomiędzy znacznikiem początkowym a końcowym (w treści elementu). Dlatego należy używać specjalnych symboli, tzw. jednostek wbudowanych (o których będzie mowa dalej), odpowiadających powyższym znakom. I tak: znak „” jest zastępowany przez „8”, natomiast „” przez „18”. 2.2.2. Atrybuty Autor dokumentu XML może przekazywać informacje nie tylko przez treść i nazwę elementu. Dodatkowe informacje można również umieszczać, w postaci atrybutów, w znaczniku początkowym elementów — rysunek 2.3. Atrybut zawsze posiada nazwę i poprzedzoną znakiem równości wartość. Rysunek 2.3. Element zawierający atrybut atrybut nazwa atrybutu wartość atrybutu autor miejsce= drugi Jan Kowalski /autor znacznik początkowy treść elementu znacznik końcowy Element Atrybuty mogą występować jedynie w znaczniku początkowym lub w znaczniku ele- mentu pustego5. Podobnie jak w przypadku nazw elementów, małe i duże litery w nazwach atrybutów są rozróżniane. W jednym elemencie nie mogą istnieć dwa atrybuty o tajkiej samej nazwie. Dzięki umieszczeniu wartości atrybutu w cudzysłowie możliwe jest przechowywanie w nich dowolnych struktur tekstowych. Oczywiście — tak jak w przypadku treści elementów — ewentualne liczby traktowane są jako ciągei cyfr. Zgodnie z powyższymi zasadami poniższy element jest epoprawny: +9836/7-/4/6;7/7-/ .691 # 86/- +23;+7 +9836 natomiast element +9836/7-/.691/7-/ 86/- +23;+7 +9836 jest niepoprawny, gdyż posiada dwa atrybuty o tej seamej nazwie. 5 Elementy puste będą omówione w następnym podrozdzialea. 36 XML na powarnie W nazwach atrybutów również mogą występować polskie znaki diakrytyczne. Jednakże niektóre programy przetwarzające mogą je niepoprawnie jinterpretować6. Dlatego też poprawnym atrybutem jest:  (cid:5) onqp(cid:11)~  ;2+86,98 22+3;-+  Wartości atrybutów muszą być zawsze umieszczone w cudzysłowach ( ) lub apo- strofach ( ). Element: +9836-,+)+98363;  22+3;-+/+23;+7+9836 jest poprawny, natomiast elementy: +9836-,+)+98363;22+3;-+/+23;+7+9836 +9836-,+)+98363; 22+3;-+/+23;+7+9836 są niepoprawne, gdyż brak jest w nich takich samych znaków cudzysłowu lub apo- strofów okalających wartość atrybutu. Według standardu XML 1.0 kolejność atrybutów jest dowolnja. Może się jednak czasami zdarzyć, że program przetwarzający konkretny rodzaj do- kumentów XML ma wbudowaną kolejność atrybutów lub ściśle przestrzega kolejno- ści podanej w definicjach typu dokumentu DTD. Dobrym nawykiem jest więc zachowy- wanie tej samej kolejności atrybutów. Podobnie jak znaki: „” oraz „” nie mogły występować w treści elementu, tak i tutaj zarówno apostrof ( ), jak i cudzysłów ( ) nie powinny się pojawiać w polu wartości atrybutu. Dlatego należy zastąpić je odpowiednio przeze „5938” oraz „+437”. W praktyce wystarczy zwykle przestrzegać, aby wartość atrybutu zaczynała się i kończyła tym samym znakiem (apostrofu lub cudzysłowu), zaś w środku tej war- tości może wystąpić drugi ze znaków (odpowiednio — cudjzysłów lub apostrof). Prawidłowy jest więc element: +98364/6;7 ;2+86,98 .691 +4378630;63.9 22+3;-+  +9836 2.2.3. Elementy puste W języku XML elementy mogą nie posiadać treści. W takim przypadku można za- miast dwóch znaczników — początkowego i końcowego — użyć pojedynczego, innego znacznika: znacznika elementu pustego (empty-element tag). Składa się on z nazwy elementu, po której następuje znak „/” — rysunek 2.4. 6 Ograniczenia nałożone na nazwy atrybutów są takie samea jak przy nazwach elementów, np. nazwa nie może zaczynać się od cyfry ani od kropki. Rozdział 2.  XML — pojcia podstawowe 37 Rysunek 2.4. Element pusty zawierający atrybut atrybut odsylacz href= http://www.przyklad.pl / znacznik elementu pustego Element pusty Znacznik elementu pustego zawsze kończy się znakiem ukośnika „/”, po którym dopiero następuje symbol „ ”. Oczywiście można także wykorzystać oba znaczniki: początkowy i końcowy i nie umieszczać między nimi żadnej treści. Dlatego też oba poniższe przykłady są poprawne: 0+896+)9792/8+  0+896+)9792/8+ 0+896+)9792/8+ Naturalnie zalecaną formą jest ta pierwsza — krótsza. Elementy puste zwykle (ale nie zawsze) zawierają atrybeuty, np.: 3.7+-6/0 884 ;;; 32/8 4 2+;+ 368+2/8  Zgodnie z powyższą uwagą można oczywiście także użyć: 3.7+-6/0 884 ;;; 32/8 4 2+;+ 368+2/8  3.7+- Taka postać jest jednak rzadziej stosowana. Elementy puste wykorzystuje się najczęściej wtedy, gdy zawierają one wyłącznie atrybuty. Element pusty zazwyczaj składa się tylko ze znacznika elementu pustego, w którym można umieszczać atrybuty. Elementy puste można także stosować wtedy, gdy potrzebne jest przekazanie dodat- kowych informacji do programów przetwarzających dokumeent XML, np.: 969-3)63032  38 XML na powarnie 2.3. Podelementy. Hierarchia elementów Elementy mogą przechowywać tekst (pomiędzy znacznikiem początkowym i końco- wym), mogą być puste, ale mogą także zawierać inne elementy — podelementy — dla których są wtedy elementami nadrzędnymi, np.: +9836 ;743+983622+3;-+ ;743+9836 ;743+9836+23;+7 ;743+9836  +9836 Element +9836 zawiera w sobie dwa inne elementy (podelementy) — ;743+9836 — przy czym oba są tego samego rodzaju. Oczywiście zagnieżdżanie może być bardziej złożone: 746+;3.+2/ +9836-,+)+98363; ;743+9836 /22+ / 2+;733;-+ 2+;73  ;743+9836 ;743+9836 /+2 / 2+;733;+7 2+;73  ;743+9836  +9836 889/78+;/2/76; 3,6386; 889  746+;3.+2/ Element 746+;3.+2/ składa się tutaj z podelementu +9836 (także posiadającego podelementy), po którym następuje podelement 889. Kolejność podelementów jest istotna i zamiana podelementu +9836 na podelement 889 da zupełnie inny do- kument. Od strony standardu języka XML nie ma żadnych ograniczeń na liczbę poziomów zagnieżdżeń. Zagnieżdżając jedne elementy w drugich, umieszczamy w dokumencie XML infor- mację o zależnościach występujących pomiędzy tym, co zostało zawarte w podelemencie a samym elementem, a także o zależnościach pomiędzy podelementami. Relacje te na- zywane są hierarchią elementów — rysunek 2.5. Podelement zawiera zwykle informację bardziej szczegółowją niż element nadrzędny. W związku z tym język XML nadaje się szczególnie dobrze do przechowywania in- formacji, w których występują relacje podległości (typu: nadrzędny — podrzędny), np. ogół — szczegół, całość — część, lista — element listy. Rozdział 2.  XML — pojcia podstawowe 39 Nieco gorzej jest zbudować hierarchię dla relacji między obiektami o podobnym po- ziomie ogólności, np. klient — towar7, uczeń — przedmiot8, mąż — żona9. Rysunek 2.5. Hierarchia elementów korzeń sprawozdanie autorzy tytul (Zestawienie...) wspolautor wspolautor imie (Anna) nazwisko (Nowicka) imie (Jan) nazwisko (Kowalski) Zbudowanie odpowiedniej hierarchii elementów jest często najtrudniejszym proble- mem występującym przy tworzeniu dokumentów XML. Zagadnienie budowy właściwej hierarchiijest zwykle rozważane podczas definiowa- nia typu dokumentu DTD (rozdział 3.) lub schematu dokumeentu (rozdział 4.). W powyższym przykładzie widać, że 2+;73 umieszczone jest na tym samym po- ziomie co /, natomiast elementem najwyższym, głównym, czyli korzeniem, jest 746+;3.+2/. W dokumentach XML może istnieć tylko jeden korzeń — eljement główny. Cały dokument XML jest więc pojedynczą hierarchią z jeednym korzeniem. Elementy o takiej samej nazwie — nie będące korzeniem — mogą występować w róż- nych miejscach dokumentu, na różnych poziomach i mogą zawierać różnego rodzaju treść: .+2/)063;/ 2+;+ 63.9-/2831968(cid:11);™#94/6(cid:25).63;/˜#   2+;+ .378+;+ 3.,36-+ 2+;+9683;2+#43 ;-+™(cid:25)˜#4 3 3  2+;+ +.6/79 /-3./22+ //32+66+ +.6/7  3.,36-+ 7 8 9 Relacja pomiędzy klientem a towarem wyraża się zwykle apoprzez zakup lub sprzedaż. Jak jednak zbudować relację hierarchii dla dokumentu XML przechaowującego informacje o miesięcznych zakupach jakiejś firmy (dane zakupu, dane klienta i informacjea o towarze)? Dane o dostawcach lub towarach powielałyby się. Rozwiązaniem tutaj mogłyby się okazać oadsyłacze (patrz rozdział 6.). Tradycyjne relacyjne bazy danych lepiej się sprawdzają w podobnaych przypadkach. Uczeń jest w relacji z przedmiotem poprzez klasę, do aktórej uczęszcza. Rozwiązanie podobnego problemu za pomocą odsyłaczy standardu XLink umieszczono w roazdziale 6. W relacji mąż – żona zwykle bezpieczniej nie określać staopnia podległości. 40 XML na powarnie 83;+6 2+;+319682+896+2 2+;+ +1+2 2+;+ 2+;+  +1+2 34+3;+2/ 2+;+4+/8+ 2+;+ /.2378+)./8+78  /.2378+)./8+  34+3;+2/  83;+6  .378+;+  .+2/)063;/ Element 2+;+ został umieszczony w kilku różnych kontekstach (nazwa firmy, nazwa dostawcy, nazwa towaru, nazwa magazynu, nazwa jednostki miary) i posiada różne rodzaje danych (tekstowe — nazwy własne firm, numeryczne — nazwa magazynu, pojedyncze słowa — nazwa jednostki miary opakowaniae). Elementy mogą być zagnieżdżone, ale nie mogą na siebie zachodzić, tzn. znacznik końcowy podelementu musi wystąpić przez znacznikiem końcowym elementu nad- rzędnego. Innymi słowy, każdy element (oprócz korzenia) musi być w całości otoczony przez inny element. W związku z tym, poniższa postać jest nieprawidłowa: /+22+;733;+7 / 2+;73 Zamiast tego należy użyć: /+22+;733;+7 2+;73 / lub: 2+;733;+7/+2 / 2+;73 Ze względu na równorzędność imienia i nazwiska najlepszym rozwiązaniem jest tutaj: /+2 / 2+;733;+7 2+;73 2.4. Rodzaje elementów W przypadku, gdy element zawiera w sobie jakieś dane (tekst lub podelementy), jest nazywany pojemnikiem (container element). Element — pojemnik może mieć następujące rodzaje zawaertości: 1. Zawartość elementową (element content) — gdy pojemnik zawiera tylko i wyłącznie inne elementy, np.: +9836 347$3/78;74(cid:11)o+9836746+;3.+2+ 347 /+2 / 2+;733;+7 2+;73  +9836 Rozdział 2.  XML — pojcia podstawowe 41 2. Zawartość mieszaną (mixed content) — gdy pojemnik zawiera zarówno tekst, jak i inne elementy, np.: +9836 $3/78;74(cid:11)o+9836746+;3.+2+ /+2 / 2+;733;+7 2+;73  +9836 3. Zawartość tekstową (data content) — gdy pojemnik zawiera tylko i wyłącznie tekst, np.: +9836$3/78;74(cid:11)o+9836746+;3.+2++23;+7 +9836 W przypadku zawartości mieszanej elementy mogą być naweet wplecione w tekst: 746+;3.+2/ 9836+746+;3.+2+7+983622+3;-+ +983636++9836+23;+7  +9836 22-+9836(cid:11);2/+  746+;3.+2/ Zawartość mieszana nie jest jednak godna polecenia, gdyż może prowadzić do pewnego zamętu. Można ją stosować dla zwykłych tekstów, w których chcemy jedynie wydzielić pewne szczególne informacje. Jest to przydatne na etapie przejściowym, w którym tekst napisany w języku naturalnym przekształcamy w formye bardziej ustrukturalizowanej. Dla ww. przypadku lepszym rozwiązaniem może być zawartość elementowa z dodatko- wymi elementami, czyli z redundancją (powieleniem) ineformacji: 746+;3.+2/ +983622+3;-+ +9836 +9836+23;+7 +9836 3479836+746+;3.+2+722+3;-+36++223;+7 22-+98366;2/+  347  746+;3.+2/ lub (rozwiązanie gorsze): 746+;3.+2/ 3479836+746+;3.+2+7 347 +983622+3;-+ +9836 34736+ 347 +9836+23;+7 +9836 347 22-+98366;2/+  347  746+;3.+2/ 2.5. Postać elementów Tworząc dokumenty XML, należy zwrócić uwagę na sposób zapisu dokumentu, czyli na postać dokumentu. Zapis: 746+;3.+2/+9836-,+)+98363;+9836/22+ /2+;73 3;-+ 2+;73 +9836+9836/+2 /2+;733;+7  2+;73 +9836 +983636/7/7 - 362/7 746+;3.+2/ jest zupełnie nieczytelny! Poniższy zapis jest lepszey: 42 XML na powarnie 746+;3.+2/ +9836-,+)+98363; +9836 /22+ / 2+;733;-+ 2+;73  +9836 +9836 /+2 / 2+;733;+7 2+;73  +9836  +9836 36/7/7 - 36/7  746+;3.+2/ Brakuje mu jednak odpowiednich wcięć uwydatniających hierarchiczne zależności po- między elementami. Jeszcze lepszą postacią zapisu jeste więc: 746+;3.+2/ +9836-,+)+98363; +9836 /22+ / 2+;733;-+ 2+;73  +9836 +9836 /+2 / 2+;733;+7 2+;73  +9836  +9836 36/7/7 - 36/7  746+;3.+2/ Zaważmy, że niektóre elementy zawarte są w jednej linii, zaś w innych znacznik po- czątkowy i końcowy umieszczono w osobnych liniach. Można oczywiście znaczniki wszystkich elementów umieścić w osobnych liniach: 746+;3.+2/ +9836-,+)+98363; +9836 / 22+  / 2+;73 3;-+  2+;73  +9836 +9836 / +2  / 2+;73 3;+7  2+;73  +9836  +9836 36/7 /7 -  36/7  746+;3.+2/ Rozdział 2.  XML — pojcia podstawowe 43 Wydaje się jednak, że to ostatnie rozwiązanie nie tyle poprawia czytelność dokumentu, ile zwiększa jego objętość, a co za tym idzie, raczeej zmniejsza jego przejrzystość. 2.6. Deklaracja XML Jak już wspomniano, podstawowym składnikiem dokumentu XML są elementy. To one zwykle zawierają zasadniczą informację, którą chcemy umieścić w dokumencie. Aby jednak dany dokument mógł być identyfikowany jako dokument XML, należy na jego początku umieścić deklarację XML. W deklaracji tej należy:  określić wersję języka XML użytego w dokumencie — pareametr :/6732,  określić rodzaj kodowania znaków — parametr /2-3.21,  podać informację o pominięciu (lub nie) przetwarzania ezewnętrznych definicji typu dokumentu (DTD) oraz zewnętrznych jednostek — paraemetr 78+2.+32/ (informacja ta mówi o tym, czy dokument jest „samodzieelny”). Deklaracja XML zaczyna się znakami  i kończy sekwencją . Oto przykład de- klaracji XML: :/6732 /2-3.21 $(cid:25)78+2.+32//7 Parametr :/6732 jest obowiązkowy i zawsze powinien mieć wartość 1.0 (na razie istnieje tylko jedna wersja standardu XML). Pozostałe parametry (/2-3.21 oraz 78+2.+32/) deklaracji są opcjonalne (mogą nie wystąpić). Zalecanym rodzajem kodowania znaków w języku XML jestj standard Unicode. Standard Unicode jest obsługiwany przez większość systemów operacyjnych10. Każdy program przetwarzający dokumenty XML powinien potrafić odpowiednio interpretować kody Unicode w standardzie UTF-8 i UTF-1611. W UTF-8 wszystkie znaki zakodowane są w zmiennej liczbie bajtów (od 1 do nawet 6 bajtów), przy czym pierwsze 127 kodów ASCII (m.in. alfabet angielski, cyfry) zajmują tylko jeden bajt [71]. Polskie znaki są mniej uprzywilejowane (zajmują 2 bajty), zaś ich kody emożna znaleźć w [101]. Deklaracje XML wskazujące na kodowanie wg standardu Unicode wyglądają nastę- pująco: :/6732 /2-3.21 $(cid:25) :/6732 /2-3.21 $(cid:25)  Znaki mogą być także zakodowane za pomocą jednego ze standardów ISO, np. Latin 1 (bez polskich znaków diakrytycznych): :/6732 /2-3.21#(cid:25)(cid:25)  10 11 Obsługa ta nie zawsze jest pełna. Systemy często mają zaaimplementowany ograniczony zestaw znaków Unicode, np. domyślne fonty Unicode w Windows 98 zawiearają tylko 1 znak azjatycki. Wymóg ten został zapisany w standardzie XML 1.0 [22]. 44 XML na powarnie lub — jeżeli chcemy używać polskich znaków — Latin 2 e(ISO 8859-2): :/6732 /2-3.21#(cid:25)(cid:25) Dostępne są także standardy proponowane przez firmę Microsoft, znane z systemu Windows, np. dla polskich znaków może to być Windows-1250e12: :/6732 /2-3.21;2.3;7(cid:25)   Rodzaj kodowania zależy od tego, czy programy przetwarzające dokument będą ro- zumiały dany rodzaj kodowania. Nie można stosować sposobu kodowania innego dla nazw elementów i atrybutów, a innego dla ich treści i wartości. Możliwość stosowania tylko jednego kodowania może być pewnym ograniczeniem w przypadku zastosowania języka XML w połączeniu z bazami danych, w których często stosuje się różne standardy kodowania13. Dodatkowo nazwy elementów są często wykorzystywane w dokumentach związanych, np. w definicjach typu dokumentu DTD, schematach XML Schema, transformacjach XSLT czy wskazaniach XPath. Ewentualna zmiana kodowania polskich znaków (lub niezgodność z kodowaniem w dokumentach XML) spowoduje konieczność modyfikacji tych powiązanych dokumentów. Z tych po- wodów zwykle lepiej nie stosować polskich znaków diakrytycznych w nazwach elemen- tów i atrybutów. Przykładowy poprawny dokument XML, zawierający deklarację XML, może wyglądać następująco (plik Sprawozdanie1.xml): :/6732 /2-3.21#(cid:30)(cid:30) 746+;3.+2/ +9836-,+)+98363; ;743+983622+3;-+ ;743+9836 ;743+9836+23;+7 ;743+9836  +9836  746+;3.+2/ 2.7. Poprawny dokument XML Standard języka XML, jak już można było zauważyć, wyznacza pewne ograniczenia dotyczące zapisu elementu oraz relacji pomiędzy elementami. Przypomnijmy te ogra- niczenia: 1. Dokument musi się zaczynać od deklaracji XML, aby móegł być traktowany jako dokument XML. 12 13 Takie kodowanie może jednak nie być akceptowane przeza parsery inne niż firmy Microsoft. Wyobraźmy sobie sytuację, w której nazwy elementów w satandardowej fakturze zawierają polskie znaki w standardzie Unicode, natomiast dane w bazacah danych, niezbędne do wygenerowania ostatecznej wersji dokumentu przechowywane są w staandardzie ISO Latin-2. Wówczas, podczas procesu wymiany faktury pomiędzy jedną a drugą bazą, naiepotrzebnie należałoby dwukrotnie przekodowywać dane: najpierw ze standardu ISO Latin-2 doa Unicode, a następnie odwrotnie. Rozdział 2.  XML — pojcia podstawowe 45 2. W dokumencie może istnieć tylko jeden unikatowy elemeent główny — korzeń. Element o nazwie takiej jak korzeń nie może wystąpić jeako podelement w tym dokumencie. W związku z tym wszystkie elementy występeujące w dokumencie muszą się w całości zawierać wewnątrz korzenia. 3. Wszystkie niepuste elementy muszą posiadać znacznik peoczątkowy i końcowy. 4. 5. 6. Element pusty może składać się z pojedynczego znacznieka elementu pustego. Elementy mogą być zagnieżdżone, jednak nie mogą na siebiee zachodzić. Wartości atrybutów muszą być umieszczone w cudzysłowaech (lub apostrofach). Przestrzeganie wymienionych wyżej reguł prowadzi do dobrze uformowanego (well- formed), czyli poprawnego składniowo, dokumentu XML. Większość programów przetwarzających dokumenty XML umożliwia sprawdzenie, czy dany dokument XML jest dobrze uformowany. 2.8. Przetwarzanie dokumentów XML Dokumenty XML mogą być czytane przez użytkowników w zwykłych edytorach tek- stowych, jednak najczęściej są one przetwarzane przez programy, zwane parserami. Programy te powinny w pierwszej kolejności sprawdzić poprawność składniową doku- mentu, tzn. stwierdzić czy jest on dobrze uformowany — rysunek 2.6. Rysunek 2.6. Przetwarzanie dokumentów XML Dokument XML Parser - program przetwarzający dokumenty XML Dokument poprawny Dokument niepoprawny składniowo składniowo (dobrze uformowany) (źle uformowany) Dalsze przetwarzanie, np. wyświetlenie, aktualizacja bazy danych, ... Następnie mogą one wykorzystać informację, zawartą w dokumencie, w jakimś specy- ficznym celu, np.:  wyświetlić ją użytkownikowi w określonym formacie;  zmienić postać informacji, np. przekształcając dokumenet XML na stronę w języku HTML; 46 XML na powarnie  wygenerować nowy dokument XML i przekazać go innemu preogramowi;  przetworzyć informację do postaci zgodnej z określonyem formatem bazy danych i zaktualizować bazę danych. Do dalszego przetwarzania dokumentu XML zwykle niezbędne są dodatkowe infor- macje, np. arkusze stylów, transformacje, definicje teypu dokumentu DTD itd. 2.9. Inne składniki jzyka XML Oprócz zwykłych elementów, zawierających informacje przydatne wprost dla użyt- kownika, dokument XML może zawierać także instrukcje dla programu przetwarza- jącego — parsera. Są to:  deklaracje (w tym m.in. komentarze i bloki tekstu),  instrukcje przetwarzania,  jednostki. 2.9.1. Deklaracje Deklaracje umieszczane są w tzw. znacznikach deklaracji (markup declaration). Różnią się nieznacznie od zwykłych znaczników. Otaczanee są znakami „” oraz „”. Na początku deklaracji musi być umieszczona nazwa jednoznacznie identyfikująca daną deklarację:  )   Znaczniki deklaracji wykorzystywane są takż
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

XML na poważnie
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ą: