Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00518 006389 13652239 na godz. na dobę w sumie
XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podręcznik - książka
XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podręcznik - książka
Autor: Liczba stron: 310
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-1738-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).

Odpowiedzi na wszystkie Twoje pytania dotyczące XML w jednym miejscu!

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

Darmowy fragment publikacji:

XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podrêcznik Autor: Rob Huddleston T³umaczenie: Andrzej Gra¿yñski ISBN: 978-83-246-1738-8 Tytu³ orygina³u: XML: Your visual blueprint for building expertwebsites with XML, CSS, XHTML, and XSLT (Visual Blueprint) Format: 170230, stron: 320 Odpowiedzi na wszystkie Twoje pytania dotycz¹ce XML w jednym miejscu! • Do czego potrzebujê formatu XML? • Jak zapewniæ poprawnoœæ plikom XML? • Jak przetworzyæ plik XML do formatu XHTML? XML znaczy tyle, co „rozszerzalny jêzyk znaczników”. Prawdopodobnie s³owo „rozszerzalny” w tym skrócie jest najwa¿niejsze. Oznacza ono, ¿e jako u¿ytkownik mo¿esz zdefiniowaæ tyle znaczników, ile tylko jest Ci potrzebnych w danym przypadku. XML jest uniwersalnym jêzykiem formalnym, za pomoc¹ którego mo¿na reprezentowaæ dane w usystematyzowany, strukturalny sposób. Niezale¿noœæ od platformy jest niew¹tpliwie t¹ cech¹, która pozwoli³a mu na zdobycie ogromnej popularnoœci – sta³ siê on wrêcz swego rodzaju standardem. W dodatku jêzyk ten pozwala na tworzenie stron internetowych przy u¿yciu XHTML, czyli przedstawienie HTML w postaci XML. Ma³o? Dziêki zastosowaniu XSLT mo¿esz tak¿e przekszta³ciæ dowolny dokument XML do postaci XHTML! Dziêki ksi¹¿ce „XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podrêcznik” poznasz podstawy XML i sposób przetwarzania plików XML za pomoc¹ jêzyka XSLT oraz dowiesz siê, jak wybraæ dobry edytor, pozwalaj¹cy na wygodn¹ pracê z dokumentami. W kolejnych rozdzia³ach zdobêdziesz wiedzê na temat sposobów wykorzystania atrybutów i przestrzeni nazw oraz stworzysz swój pierwszy dokument XML. Ponadto nauczysz siê definiowaæ strukturê dokumentu za pomoc¹ schematów i zobaczysz, jak ³atwo mo¿na oceniaæ poprawnoœæ dokumentów XML. Autor ksi¹¿ki zaprezentuje Ci równie¿ technikê generowania dokumentów XML na podstawie istniej¹cych danych, miêdzy innymi w programach Access i Excel, oraz technikê przekszta³cania plików XML do formatu XHTML za pomoc¹ jêzyka XSLT. Je¿eli interesuje Ciê format XML i formaty pokrewne, trzymasz w rêku ksi¹¿kê, której poszukiwania zajê³y Ci tak du¿o czasu! Wykorzystaj wszystkie mo¿liwoœci XML w swoich projektach! Spis treści Jak korzystać z książki ........................................................ x Rozdział 1. Zaczynamy… .................................................... 2 Wprowadzenie do języka XML ........................................................................................................... 2 Wprowadzenie do języka XSLT........................................................................................................... 3 Wprowadzenie do języka XHTML .................................................................................................... 4 Wprowadzenie do CSS ........................................................................................................................... 5 Dokument XML w przeglądarce WWW .......................................................................................... 6 Wprowadzenie do anatomii dokumentu XML ................................................................................ 8 Wybór dobrego edytora ........................................................................................................................... 9 Rozdział 2. Tworzenie dokumentów XML ............................. 10 Tworzymy pierwszy dokument XML..............................................................................................10 Dane i elementy potomne w dokumentach XML .........................................................................12 Atrybuty .....................................................................................................................................................14 Encje i CDATA ........................................................................................................................................ 16 Przestrzenie nazw ...................................................................................................................................18 Rozdział 3. Definiowanie struktury dokumentów XML za pomocą schematów ....................................... 20 Wprowadzenie do schematów .............................................................................................................20 Przestrzenie nazw schematów ............................................................................................................22 Elementy złożone ....................................................................................................................................24 Typy danych ..............................................................................................................................................26 Atrybuty .....................................................................................................................................................28 Elementy proste .......................................................................................................................................30 Elementy mieszane .................................................................................................................................32 Ograniczenie występowania elementów ..........................................................................................34 Kojarzenie dokumentu XML ze schematem .................................................................................36 Walidacja dokumentu ............................................................................................................................38 Wizualne tworzenie schematu za pomocą XMLSpy ...................................................................40 iv Rozdział 4. Inne schematy walidacyjne ..................................44 DTD ............................................................................................................................................................44 Tworzenie DTD ......................................................................................................................................46 Atrybuty .....................................................................................................................................................48 Encje ...........................................................................................................................................................49 Encje parametryczne .............................................................................................................................50 RELAX NG ..............................................................................................................................................52 XML-owa składnia RELAX NG .......................................................................................................54 Kompaktowa składnia RELAX NG ..................................................................................................56 Rozdział 5. Generowanie dokumentów XML na podstawie istniejących danych .........................58 Generowanie dokumentów XML z programu Access 2003 .....................................................58 Generowanie dokumentów XML z programu Access 2007 .....................................................60 Generowanie dokumentów XML z programu Excel 2003 ........................................................62 Generowanie dokumentów XML z programu Excel 2007 ........................................................64 Rozdział 6. Podstawy języka XHTML ....................................66 Wprowadzenie do XHTML-a ............................................................................................................66 Strona XHTML Transitional ..............................................................................................................68 Tytuł dokumentu .....................................................................................................................................70 Nagłówki ....................................................................................................................................................72 Tekst ............................................................................................................................................................74 Encje ...........................................................................................................................................................76 Hiperłącza .................................................................................................................................................78 Obrazy i grafika .......................................................................................................................................80 Tabele ..........................................................................................................................................................82 Listy ............................................................................................................................................................84 Rozdział 7. Transformowanie dokumentów XML do postaci XHTML za pomocą języka XSLT .............86 Podstawy języka XSLT .........................................................................................................................86 Przestrzeń nazw XSLT .........................................................................................................................88 XPath ..........................................................................................................................................................90 v Spis treści Specyfikowanie formatu wyjściowego ..............................................................................................92 Szablony XSLT .......................................................................................................................................94 Transformowanie wartości elementów .............................................................................................96 Tekst otwarty w transformacji .............................................................................................................98 Instrukcja „apply-templates” ............................................................................................................. 100 Pętle w dokumentach XSLT ............................................................................................................. 102 Sortowanie .............................................................................................................................................. 104 Instrukcje warunkowe ......................................................................................................................... 106 Tworzenie nowych elementów ......................................................................................................... 108 Dołączanie i importowanie dokumentów ......................................................................................110 Zmienne i parametry............................................................................................................................112 Transformacja XSLT wykonywana przez przeglądarkę WWW............................................114 Transformacja XSLT wykonywana przy użyciu edytora Altova XMLSpy .......................116 Transformacja XSLT wykonywana w PHP .................................................................................118 Transformacja XSLT wykonywana w ColdFusion ................................................................... 120 Transformacja XSLT wykonywana w ASP.NET ...................................................................... 122 Tworzenie dokumentów XSLT za pomocą Adobe Dreamweavera CS3 ............................ 124 Rozdział 8. Formatowanie stron WWW za pomocą kaskadowych arkuszy stylów (CSS) ....................126 Podstawy CSS ....................................................................................................................................... 126 Zmiana czcionki ................................................................................................................................... 128 Kolorowanie tekstu ...............................................................................................................................130 Tło i obrazki ............................................................................................................................................132 Obrzeże ....................................................................................................................................................134 Dopełnienia i marginesy .....................................................................................................................136 Pozycjonowanie elementów ...............................................................................................................138 Otaczanie elementu ............................................................................................................................. 140 Kombinacja otaczania, pozycjonowania i marginesów ............................................................ 142 Stylizowanie grup elementów za pośrednictwem selektorów klas ....................................... 144 Stylizowanie wybranych elementów za pośrednictwem selektorów identyfikacyjnych ..... 146 Selektory kontekstowe ........................................................................................................................ 148 Stylizacja nagłówków ......................................................................................................................... 150 Stylizacja list ......................................................................................................................................... 152 vi Stylizacja hiperłączy ........................................................................................................................... 154 Inne pseudoklasy i pseudoelementy ............................................................................................... 156 Podział treści dokumentu na sekcje ............................................................................................... 158 Przewodnik po stylach .........................................................................................................................160 Drukowanie stron WWW ...................................................................................................................162 Strony WWW w urządzeniach mobilnych ....................................................................................164 Rozdział 9. Z HTML-a do XHTML-a .....................................166 HTML Tidy ...........................................................................................................................................166 Konwersja HTML-a na XHTML za pomocą Dreamweavera ................................................168 Usuwanie znaczników prezentacyjnych za pomocą Dreamweavera .................................... 170 Usuwanie tabel za pomocą Dreamweavera .................................................................................. 172 Alternatywny tekst dla obrazków ................................................................................................... 174 Rozdział 10. Projektowanie i budowanie serwisu WWW .............................176 Struktura folderów serwisu WWW ................................................................................................ 176 Nawigacja po serwisie......................................................................................................................... 178 Strona główna (indeksowa) ................................................................................................................180 Strona-wizytówka .................................................................................................................................182 Konwersja pliku-wizytówki do postaci XML .............................................................................184 Kolekcja ulubionych filmów ..............................................................................................................188 Konwersja kolekcji filmów do postaci dokumentu XHTML .................................................190 Ikona serwisu ..........................................................................................................................................194 Reklamy na stronach WWW .............................................................................................................196 Rozdział 11. Publikowanie witryn WWW .............................198 Hosting .....................................................................................................................................................198 Pozyskiwanie własnej domeny......................................................................................................... 200 Publikowanie serwisu przez FTP.................................................................................................... 202 Publikowanie serwisu przy użyciu Dreamweavera ................................................................... 204 Publikowanie serwisu przy użyciu SmartFTP ........................................................................... 206 Twoja witryna a wyszukiwarki ........................................................................................................ 208 vii Spis treści Rozdział 12. Testowanie i debugowanie .............................. 210 Walidacja dokumentu XHTML ...................................................................................................... 210 Firebug ..................................................................................................................................................... 212 Walidacja arkuszy CSS ...................................................................................................................... 214 Weryfikacja dostępności strony ........................................................................................................216 Testowanie hiperłączy ..........................................................................................................................218 Najczęstsze błędy w dokumentach XML .................................................................................... 220 Najczęstsze błędy w dokumentach XHTML ............................................................................. 222 Najczęstsze błędy w arkuszach CSS ............................................................................................. 224 Najczęstsze błędy XSLT ................................................................................................................... 226 Błędy wynikające z niezgodności przeglądarek ......................................................................... 227 Problemy z użytecznością strony .................................................................................................... 228 Rozdział 13. Integrowanie serwisu WWW z innymi serwisami ....................................... 230 RSS ........................................................................................................................................................... 230 Kanały RSS ........................................................................................................................................... 232 Pokaż innym swoje zdjęcia za pomocą serwisu Flickr ............................................................. 234 Wideoklipy YouTube na stronach WWW..................................................................................... 238 Smak.owi.te hiperłącza ....................................................................................................................... 240 Mapy Google na stronach WWW................................................................................................... 242 Szukaj z Google .................................................................................................................................... 244 viii Dodatek A: XHTML — lista referencyjna .............................246 Dodatek B: CSS — lista referencyjna .................................. 260 Dodatek C: XSD — lista referencyjna ..................................264 Dodatek D: XSLT — lista referencyjna .................................272 Dodatek E: XPath — lista referencyjna ............................... 280 Skorowidz ......................................................................284 ix Wprowadzenie do schematów J ak wiadomo, twórca dokumentu XML ma bardzo dużą swobodę pod względem definiowania elementów. Aby jednak tworzony dokument był zrozumiały dla innych ludzi i dla parserów, konieczne staje się dostarczenie in- formacji na temat jego struktury, a konkretnie informacji o tym, jakie elementy będą w dokumencie używane, w ja- kiej kolejności powinny się pojawiać, które z nich muszą być obowiązkowe użyte i (ewentualnie) jakie atrybuty po- siadać może (lub musi) każdy z tych elementów. Definicja schematu W3C XML — i pokrewne mu technologie — opracowany został przez World Wide Web Consortium, w skrócie W3C. Do- strzegając konieczność dostarczenia metody definiowania XML-a, konsorcjum to opracowało język o nazwie XML Schema Language, który stał się standardem definiowania poprawnych dokumentów XML. Język ten, sam oparty na XML-u, to język zarówno skomplikowany, jak i bardzo funkcjonalny. Schemat dokumentu XML jest jego planem; samo słowo schemat wywodzi się z języka greckiego i oznacza właśnie kształt lub plan. Niekiedy schematy dokumentów XML określane są mianem ich „gramatyki”. Schemat schematów No dobrze, ale sama koncepcja schematu XML wyrażona została przez W3C w postaci dokumentu XML, co przypomina błędne koło w rodza- ju: „Co było pierwsze: kura czy jajko?”. Jak bowiem zdefiniować sche- mat dokumentu, którego treścią jest właśnie definicja schematu? Odpowiedź kryje się pod postacią głównego (master) dokumentu na- zywanego „schematem schematów”, opracowanego przez W3C i sta- nowiącego punkt wyjścia do definiowania jakichkolwiek schematów. Definiując więc schemat — w odróżnieniu od „zwykłego” dokumen- tu XML — możemy wykorzystywać jedynie znaczniki zdefiniowane w „schemacie schematów” XML Data Reduced Schema firmy Microsoft Co jest definiowane w ramach schematu? Mimo iż wielu początkujących twórców skłonnych jest trak- tować poszczególne dokumenty XML jako niezależne całości, to często zachodzi potrzeba stworzenia szeregu dokumen- tów różnych, co prawda, ale opartych na tej samej strukturze. Koronnym przykładem takiej sytuacji jest tworzenie witryny WWW, której poszczególne strony przechowują dane w po- staci XML — wielce prawdopodobnym jest, że na każdej ze stron dane te podporządkowane są pewnemu wspólnemu schematowi. Konsorcjum W3C z zasady działa dość wolno, wobec koniecz- ności zbierania materiałów i opinii od programistów z całego świata, dyskutowania pojawiających się problemów i wypra- cowywania rekomendacji (które znowu muszą być szeroko dyskutowane). Pod koniec lat 90. ubiegłego wieku Microsoft przygotowywał się do wypuszczenia serii produktów wyko- rzystujących XML i w związku z tym potrzebował narzędzia do definiowania schematów. Ponieważ standard W3C nie był jeszcze gotowy, Microsoft opracował własny standard w tym względzie, niestety — jak się ostatecznie okazało — całkowi- cie odmienny od W3C Schema. Microsoft (sam wchodzący w skład W3C) zgodził się więc całkowicie zarzucić własny standard po ukazaniu się W3C Schema, i tak się też faktycznie stało. Ponieważ jednak ów zarzucony standard był dostępny publicznie, można natknąć się na schematy definiowane na jego podstawie; w takim przypadku warto rozważyć przepi- sanie schematu do postaci zgodnej z W3C Schema, bowiem ewentualne przyszłe wsparcie dla standardu Microsoftu stoi pod znakiem zapytania. 20 Co jest definiowane w ramach schematu? (kontynuacja) nia wielkości liter w tej nazwie, tów zagnieżdżonych bezpośrednio w elemencie root, Dokładniej rzecz biorąc, w definicji schematu określone są na- stępujące aspekty struktury dokumentu: • nazwa elementu nadrzędnego (root) i sposób różnicowa- • nazwy i sposoby różnicowania wielkości liter dla elemen- • nazwy i sposoby różnicowania wielkości liter dla elemen- • określenie, które elementy mogą zawierać dane i w któ- • dla elementów, które mogą zawierać dane — dozwolony rych elementach można zagnieżdżać inne elementy, tów zagnieżdżonych na niższych poziomach, typ tych danych (na przykład tekst lub liczba), • określenie, które elementy muszą wystąpić obowiązkowo w dokumencie, które są opcjonalne i które mogą wystę- pować wielokrotnie w dokumencie, • określenie, które elemen ty mogą posiadać atrybuty, wraz z bliższą informacją o tychże atrybutach: rodzaju, obo- wiązkowości lub opcjonalności wystąpienia, rodzaju re- prezentowanej informacji, • kolejność, w jakiej poszczególne elementy powinny poja- wiać się w dokumencie. Tworzenie schematów Co najpierw? Ponieważ definicja schematu jest niczym innym jak doku- mentem XML, można ją tworzyć za pomocą tych samych narzędzi, które służą do tworzenia „regularnych” doku- mentów XML. Jeżeli jakaś aplikacja posiada funkcję ekspor- tu danych w formacie XML — do wykorzystania w innych aplikacjach — prawdopodobnie udostępnia też funkcję eksportu schematu dla tychże danych. Wiele zaawanso- wanych edytorów XML, jak XMLSpy, oferuje możliwość automatycznego generowania definicji schematu na pod- stawie przykładowego pliku; istnieją ponadto dedykowane narzędzia do tworzenia schematów. Logicznie rzecz biorąc, wydaje się oczywiste, że nie sposób stworzyć dokumentu XML bez podstawowej wiedzy o jego strukturze; wychodzi więc na to, że najpierw trzeba zde- finiować schemat dokumentu. W praktyce jednak kwestia ta rozstrzygana jest nieco mniej rygorystycznie: autorzy, mając jedynie zarys koncepcji struktury, tworzą na jego podstawie zaczątek przykładowego dokumentu, a dopiero potem przystępują do regularnego definiowania schematu, weryfikując w ten sposób uprzednio przyjęte założenia. Publikowanie schematów Wykorzystywanie istniejących schematów Niektóre schematy przeznaczone są jedynie dla wąskich, specyficznych potrzeb, niektóre jednak są na tyle uniwer- salne, że prawdopodobne jest, iż staną się podstawą ma- sowego tworzenia dokumentów XML, i z tego względu warto je uczynić publicznie dostępnymi. Wiele popularnych technologii, w tym RSS, miało właśnie takie początki. Wiele organizacji i korporacji opublikowało mnóstwo stan- daryzowanych schematów XML dla swych gałęzi prze- mysłu, warto więc poszukać gotowych rozwiązań przed podjęciem decyzji o samodzielnym definiowaniu takiego czy innego schematu. Można w tym celu użyć popular- nych wyszukiwarek bądź skontaktować się bezpośrednio z przedstawicielem odpowiedniej firmy. R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w 21 Przestrzenie nazw schematów Schemat jest dokumentem XML, którego strukturę określa „schemat schematów” narzucający predefi - niowany zestaw elementów. Aby jednak ułatwić pro- gramistom rozszerzanie koncepcji schematu, owe prede- fi niowane elementy „zanurzone” zostały w swej własnej przestrzeni nazw, zatem muszą być specyfi kowane z wy- korzystywaniem (konsekwentnym) prefi ksu identyfi kują- cego tę przestrzeń. Mimo iż może to wydawać się wielce uciążliwe, jest konieczne do tego, by standard XML był tak elastyczny, jak to tylko jest możliwe. Wiele zaawanso- wanych edytorów XML uwalnia zresztą użytkowników (w dużym stopniu) od tej uciążliwości, m.in. przez auto- matyczne dodawanie znaczników zamykających opatrzo- nych właściwymi prefi ksami. Podobnie jak przestrzenie nazw w ogólności, tak i prze- strzeń nazw schematu defi niowana jest w elemencie nadrzędnym (root) dokumentu. W defi nicji tej koniecz- ne jest odwołanie do oryginalnej defi nicji „schematu schematów” znajdującej się pod adresem http://www. w3.org/2001/XMLSchema, przykładowy element nad- rzędny mógłby więc rozpoczynać się następującym znacznikiem: xs:schema xmlns:xs= http://www.w3.org/2001/ XMLSchema Zwróćmy uwagę na znany już atrybut xmlns oraz frazę :schema po defi nicji przedrostka, która oznacza, że prze- strzeń nazw dotyczy właśnie schematu; zdarza się, że po- czątkujący programiści zapominają o tych szczegółach. Zgodnie z wymogami „schematu schematów” nazwy ele- mentów zapisywane są z użyciem mieszanej wielkości liter, a dokładniej nazwa rozpoczyna się małą literą, zaś początek każdego jej „słowa składowego” sygnalizowany jest wielką literą. Dotyczy to zarówno nazw samych ele- mentów, jak i nazw i wartości atrybutów. Wykorzystywanie przestrzeni nazw 1 Otwórz nową stronę w edytorze XML. • W edytorze XMLSpy kliknij w tym celu przycisk New Document i wybierz z wyświetlonej listy pozycję XML Document. 1 2 3 4 5 Dodaj prolog XML. Dodaj element root schematu. Utwórz odwołanie do przestrzeni nazw identyfi kowanej przez prefi ks xs. Dodaj znacznik zamykający element root. 3 5 2 4 22 6 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 7 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 8 Zapisz dokument w pliku z rozszerzeniem .xsd. 6 7 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Wskazówka Technicznie rzecz biorąc, prefiks przestrzeni nazw schematu może mieć dowolną postać, określoną przez atrybut xmlns, na przykład: myschema:schema xmlns:myschema = http://www.w3.org/2001/XMLSchema Gdy jednak weźmie się pod uwagę fakt, że prefiks ten będzie wykorzystywany w treści dokumentu dość in- tensywnie, staje się oczywiste, iż powinien on składać się z raczej niewielkiej liczby liter. W niniejszej książce konsekwentnie używamy przedrostka xs, który stał się już powszechnie przyjętym standardem w tej roli. Konsorcjum World Wide Web realizuje swój serwis internetowy na bazie serwerów uniksowych. Jak wiado- mo, UNIX, w odróżnieniu od Windows, jest systemem wrażliwym na wielkość liter w nazwach plików. Dla przeciętnego użytkownika Internetu fakt ten nie ma znaczenia o tyle, że pliki zawierające dane powiązane ze stronami WWW opatrywane są zazwyczaj nazwami składającymi się wyłącznie z małych liter. Konsorcjum W3C wyłamuje się jednak z tej konwencji, stosując różnicowanie wielkości liter — a skoro tak, to wszelkie odwołania do nazw plików muszą być zgodne z faktycznymi nazwami tychże plików także co do wielkości liter, w przeciwnym razie przeprowadzenie walidacji dokumentu opisującego schemat okaże się niemożliwe. 23 Elementy złożone W dokumencie XML mogą występować dwa typy elementów. Elementy proste to takie, które za- wierają jedynie dane i pozbawione są atrybutów. Elementy nie posiadające tej własności, w szczególności zagnieżdżające w sobie inne elementy i (lub) wykorzy- stujące atrybuty, to elementy złożone — w typowym doku- mencie jest ich więcej niż elementów prostych. W definicji schematu opis struktury elementu rozpoczyna się od znacznika xs:element, w którym specyfikuje się nazwę odnośnego elementu. Opis struktury elementu zło- żonego jest natomiast określony (w definicji schematu) za pomocą elementu xs:complexType. Jeżeli docelowy ele- ment zagnieżdżać będzie w sobie inne elementy (co jest prawdą w przypadku wszystkich niemal elementów root), fakt ten odzwierciedla się w definicji schematu za pomo- cą elementu xs:sequence. Każdy z zagnieżdżonych ele- mentów (docelowych) opisywany jest z kolei (w definicji schematu) przez osobny element xs:element, zagnież- dżony wewnątrz elementu xs:sequence; opis ten sygna- lizuje jednak tylko fakt zagnieżdżania elementu potom- nego, bez opisywania tegoż. Oto przykładowa definicja elementu kolekcjaFilmow, zagnieżdżającego w sobie element (lub sekwencję elementów) film: Dodawanie elementów złożonych xs:element name= kolekcjaFilmow xs:complexType xs:sequence xs:element name= film / /xs:sequence /xs:complexType /xs:element Alternatywą dla deklaracji xs:sequence jest dekla- racja xs:choice , dająca możliwość wyboru użytego elementu: xs:element name= kolekcjaFilmow xs:complexType xs:choice xs:element name= film / xs:element name= zapowiedz / /xs:choice /xs:complexType /xs:element Otwórz dokument schematu XML. Dodaj znacznik otwierający xs:element . Przypisz nazwę do atrybutu name elementu root. Dodaj znacznik otwierający xs:complexType . Dodaj znacznik otwierający xs:sequence . 2 4 3 5 1 2 3 4 5 24 9 7 6 8 11 10 12 6 7 8 9 10 11 12 Dodaj znacznik otwierający xs:element . Dodaj atrybut name elementu. Przypisz temu atrybutowi nazwę elementu potomnego. Uczyń znacznik xs:element samozamykającym. Dodaj znacznik zamykający element xs:sequence . Dodaj znacznik zamykający element xs:complexType . Dodaj znacznik zamykający element xs:element . 15 14 13 13 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 14 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 15 Zapisz dokument w pliku z rozszerzeniem .xsd. Uwaga: Dokument powinien zostać zapisany w pliku z rozszerzeniem .xsd, aby mógł być bezbłędnie rozpoznawany jako schemat XML. R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Zastosuj to W ramach elementu xs:sequence możliwe jest określenie sekwencji następstwa elementów — pod poję- ciem „następstwa” rozumiemy określone elementy występujące w określonej kolejności, na przykład: xs:element name= film xs:complexType name= film xs:sequence xs:element name= tytul / xs:element name= recenzja / /xs:sequence /xs:complexType /xs:element 25 Typy danych J edną z podstawowych cech aplikacji bazodano- wych (i większości języków programowania) jest definiowanie, różnicowanie i kontrolowanie ty- pów danych — specyfikując pole bazy danych, zwią- zujemy z nim zwykle dane odpowiedniego typu: tekst, liczbę całkowitą, liczbę dziesiętną, datę itp. W podob- ny sposób schematy dają możliwość określania typów danych występujących w elementach XML. Dopusz- czalnych jest wiele typów elementów, najczęściej jed- nak wykorzystywane są: string dla zwykłego tekstu, int dla liczb całkowitych, decimal dla liczb zawiera- jących część ułamkową i boolean dla logiki dwuwarto- ściowej true/false. Zgodność postaci danych elementu ze specyfikowanym ich typem jest jednym z warunków poprawności doku- mentu XML — parser zakwestionuje wszystkie przypad- ki, w których brak jest takiej zgodności. Miejscem, w którym definiuje się typ danych odnośne- go elementu, jest atrybut type znacznika xs:element otwierającego definicję tegoż elementu. W przypadku za- gnieżdżonej hierarchii elementów (z użyciem znaczników xs:choice lub xs:sequence) dotyczy to elementów na najniższym poziomie zagnieżdżenia. W przypadku ele- mentu złożonego, który elementem złożonym jest jedy- nie z racji posiadania atrybutu, typ danych specyfikuje- my za pomocą atrybutu type znacznika xs:extension. Ponieważ dopuszczalne typy danych predefiniowane są w „schemacie schematów”, wszelkie wystąpienia ich identyfikatorów muszą być poprzedzone prefiksem iden- tyfikującym przestrzeń nazw schematu. Dodawanie typów danych Otwórz dokument schematu XML. Dodaj znacznik otwierający xs:element . Dodaj znacznik otwierający xs:complexType . Dodaj znacznik otwierający xs:sequence lub xs:choice . Dodaj jeden lub kilka znaczników otwierających xs:element . 2 4 3 5 Dodaj do każdego z tych znaczników atrybut type. Przypisz każdemu z tych atrybutów stosowną wartość. Zamknij wszystkie elementy otwarte w punkcie 5. 8 6 7 1 2 3 4 5 6 7 8 26 9 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 9 10 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 11 Kliknij przycisk Save. Dokument zostanie zapisany. 11 10 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Wskazówka Należy starannie upewnić się, że istotnie wybrano właściwy typ danych dla elementu. Jednym z najczęstszych błędów jest kwalifikowanie jako typy numeryczne danych takich jak numer telefonu, kod pocztowy, numer NIP itp. Owszem, dane te zawierają cyfry, lecz cyfrom tym towarzyszą dodatkowe znaki w rodzaju nawiasów, myśl- ników itp., nieakceptowane w polu numerycznym. Należy przyjąć zasadę, iż typy numeryczne rezerwujemy wyłącznie dla danych podlegających obliczeniom matematycznym, takich jak cena czy ilość. „Schemat schema- tów” definiuje rozmaite odmiany typów numerycznych, umożliwiających reprezentowanie liczb całkowitych i dziesiętnych, wraz z ograniczeniem zakresu lub długości części ułamkowej (liczby cyfr dziesiętnych). W związku z powyższym należy regularnie przeprowadzać walidację dokumentów definiujących schematy. W przeciwieństwie do „zwykłych” dokumentów XML, które co prawda mogą, lecz wcale nie muszą odwoły- wać się do schematów, każda definicja schematu powołuje się z konieczności na „schemat schematów” i jako taka nieuchronnie podlega walidacji. Wiele edytorów XML, m.in. Altova XMLSpy, oferuje wbudowane walidatory, które znacząco upraszczają ten proces. 27 Atrybuty W iele elementów posiada atrybuty, których rolą jest dokładniejszy opis zawartości. W sche- macie atrybuty definiowane są w ramach de- finicji elementu złożonego. Jeśli ów docelowy element posiada jedynie dane, fakt ten odzwierciedlony zosta- je przez deklarację xs:simpleContent; element za- gnieżdżający inne elementy deklarowany jest jako xs:complexContent. W obydwu przypadkach typ atrybutu odnośnego elementu deklarowany jest przez atrybut base znacznika xs:extension, najczęściej jako xs:string (dla tekstów) lub xs:int (dla liczb cał- kowitych). Nazwa atrybutu definiowana jest (w sche- macie) przez atrybut name elementu xs:attribute zagnieżdżonego wewnątrz elementu xs:extension. W elemencie xs:attribute można także określić, za pomocą atrybutu use, sposób traktowania atrybutu: required (obowiązkowy), optional (nieobowiązko- wy) albo prohibited (niedozwolony). Dodawanie atrybutów Opisane zagnieżdżanie definicji może wydawać się dość przytłaczające, lecz staje się coraz bardziej zrozumiałe w miarę nabywania doświadczenia w pracy ze schematami. Czytając opisaną wyżej definicję, można w naturalny sposób wywnioskować, że mamy do czynienia z elementem złożo- nym (complexType), o prostej zawartości (simpleContent), a typ jego danych rozszerzany jest (extension) przez atry- but o wartości określonego typu. Młodsze od XML-a języki służące do definiowania danych nie mają już co prawda tak „rozgadanego” charakteru, lecz jednocześnie brak im ela- styczności właściwej schematom XML. Użycie elementu xs:extension jest konieczne, ponie- waż definicja elementów prostych (xs:simpleType) nie pozwala na definiowanie typów danych. Istotą xs:extension jest rozszerzenie (extension) typu danych na atrybut elementu, nie na sam element. To notabene jed- na z takich subtelności, czyniących prawdziwe zrozumie- nie schematów XML niezwykle trudnym. Otwórz dokument schematu XML. Dodaj znacznik otwierający xs:element . Nadaj elementowi nazwę, przypisując ją do atrybutu name. Dodaj znacznik otwierający xs:complexType . Dodaj znacznik otwierający xs:simpleContent . Dodaj znacznik otwierający xs:extension . Przypisz atrybutowi base ww. znacznika odpowiedni typ danych. 1 2 3 4 5 6 7 28 3 4 2 6 5 7 8 9 10 11 14 18 17 16 8 9 10 11 12 13 14 15 Dodaj znacznik otwierający xs:attribute . Określ nazwę atrybutu docelowego. Określ obowiązkowy charakter atrybutu docelowego. Uczyń znacznik xs:attribute samozamykającym. Zamknij element xs:extension . Zamknij element xs:simpleContent . Zamknij element xs:complexType . Zamknij element xs:element . 12 13 15 16 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 17 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 18 Kliknij przycisk Save. Dokument zostanie zapisany. Zastosuj to R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Możliwe jest nadanie globalnego charakteru definicjom atrybutów, na początku definicji schematu, i odwoły- wanie się do tychże definicji w całym dokumencie. Robi się to za pomocą znacznika xs:attributeGroup: xs:attributeGroup name= fileattrs xs:attribute name= path type= xs:string / /xs:attributeGroup xs:element name= filename xs:simpleContent xs:extension base= xs:string xs:attributeGroup ref= fileattrs / /xs:extension /xs:simpleContent /xs:element 29 Elementy proste W typowym dokumencie XML można znaleźć przynajmniej kilka elementów prostych — czy- li takich, które nie zagnieżdżają w sobie innych elementów i nie zawierają atrybutów, posiadając co naj- wyżej dane. W schemacie element prosty deklarowany jest za pomocą samozamykającego znacznika xs:element: xs:element name= autorRecenzji type= xs:string / Jedynym wymaganym atrybutem tego znacznika jest name, określający nazwę elementu; niemal zawsze stosuje się także atrybut type, ten bowiem określa typ danych posiadanych przez odnośny element. Ponadto za pomocą atrybutów minOccurs oraz maxOccurs można określić dozwoloną, odpowiednio: minimalną i maksymalną licz- bę wystąpień elementu. Z wyjątkiem przypadku, gdy elementy deklarowane są w ramach sekwencji xs:sequence, kolejność ich wystę- powania w dokumencie jest dowolna, niezależna od ko- lejności ich deklarowania. Niektórzy programiści zwykli deklarować (w schemacie) najpierw elementy złożone, potem elementy proste, inni z kolei deklarują elementy w kolejności, jakiej oczekiwaliby w docelowym doku- mencie. Wszystko to jest kwestią gustu, nie rodzącą żad- nych konsekwencji pod adresem dokumentu docelowego. Dodawanie elementów prostych 1 2 Otwórz dokument schematu XML. Dodaj element zagnieżdżony bezpośrednio w xs:schema . 2 3 Przypisz atrybutowi name nazwę definiowanego elementu. 3 30 4 5 6 Dodaj atrybut type i przypisz mu odpowiednią wartość. Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 5 4 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 7 6 7 Kliknij przycisk Save. Dokument zostanie zapisany. Wskazówka R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Dodatkowe wymogi pod adresem deklarowanego elementu można określić za pomocą tzw. faset (ang. facets). „Schemat schematów” oferuje osiem takich faset, spośród których najczęściej używane są te ograniczające dłu- gości łańcuchów, definiujące zbiory wartości domyślnych i ograniczające zakres danych liczbowych. Wszystkie one definiowane są pod postacią elementu xs:restrictions. W szczególności xs:minLength i xs:MaxLength mogą być użyte do określenia minimalnej i maksymalnej długości łańcucha, a za pomocą xs:enumeration specyfikuje się zestaw możliwych wartości do wyboru. Wreszcie, dopuszczalny zakres wartości liczbowych określić można za pomocą faset xs:minInclusive, xs:maxInclusive, xs:minExclusive i xs:maxExclusive. Oto przykład użycia faset: xs:element name = password xs:simpleType xs:restriction base= xs:string xs:minLength value= 8 / xs:maxLength value= 16 / /xs:restriction /xs:simpleType /xs:element 31 Elementy mieszane E lementy złożone to elementy zagnieżdżające w so- bie inne ele menty i nie posiadające danych. Jedno nie wyklucza jednak drugiego: elementy zawierają- ce zarówno dane, jak i elementy potomne, noszą nazwę elementów mieszanych. Rozpatrzmy przykładową recenzję filmu: choć może być ona zwykłym tekstem, to równie dobrze może mieć strukturę bardziej skomplikowaną, na przykład w celu uwidocznienia cytowanego tytułu: recenzja para tytul Rozmowy kontrolowane /tytul to kontynuacja losów Ryszarda Ochódzkiego znanego z komedii tytul Miś /tytul . /para /recenzja Dodawanie elementów złożonych W powyższym przykładzie element recenzja zagnież- dża w sobie element potomny para, który z kolei zagnież- dża w sobie zarówno dwa elementy potomne, jak i dane w postaci otartego tekstu. Element para powinien zatem zostać zdefiniowany w schemacie jako element mieszany. Definicja elementu mieszanego jest w istocie definicją elementu złożonego, używającą atrybutu mixed: xs:element name= para xs:complexType mixed= true xs:choice xs:element name= title / /xs:choice /xs:complexType /xs:element W definicji takiej deklarowany jest zarówno wybór (choice) innych elementów, jak i typ danych posiada- nych przez element. Otwórz dokument schematu XML. Dodaj znacznik otwierający xs:element . Określ nazwę elementu. Dodaj znacznik otwierający xs:complexType . Dodaj atrybut mixed= true . 1 2 3 4 5 32 2 3 4 5 6 7 8 9 Dodaj znacznik otwierający xs:choice . Dodaj dwa lub więcej znaczników xs:element reprezentujących elementy potomne. Zamknij element xs:choice . Zamknij element xs:complexType . 10 Zamknij element xs:element . 11 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 12 Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 13 Kliknij przycisk Save. Dokument zostanie zapisany. 7 9 6 8 10 13 12 11 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Wskazówka Oprócz xs:choice dostępne są jeszcze dwie formy specyfikacji zagnieżdżanych elementów: xs:sequence i xs:all. Jak wiadomo, xs:choice specyfikuje listę wzajemnie wykluczających się elementów, z których wy- stąpić musi dokładnie jeden; xs:sequence specyfikuje listę elementów, które wystąpić muszą w ściśle okre- ślonej kolejności; xs:all specyfikuje elementy, z których każdy wystąpić musi dokładnie raz, jednak kolejność wystąpienia poszczególnych elementów jest dowolna. Jeśli wykorzystywane jest xs:all, musi pojawić się na początku dokumentu schematu i najczęściej pojawia się w definicji elementu root. Każdy z trzech wymienionych selektorów może, choć nie musi pojawić się w definicji elementu złożonego (i faktycznie często się pojawia), w szczególności elementu root. Jedyną cechą, która odróżnia element mie- szany od elementu złożonego, jest obecność atrybutu mixed w znaczniku xs:complexType. Wybór między użyciem elementu złożonego a użyciem elementu mieszanego jest zawsze kwestią konkretnego zastosowania i osobistego upodobania programisty. 33 Ograniczenie występowania elementów W ymienione wcześniej selektory stwarzają dość dużą elastyczność w zakresie używania ele- mentów potomnych, często jednak konieczne jest określenie wymagań jeszcze bardziej rygorystycz- nych. Przykładowo, lista zawodników meczu piłki nożnej składać się musi z dokładnie 11 elementów. Schematy XML dają możliwość określenia zarówno minimalnej, jak i maksymalnej liczby wystąpień danego elementu; w opisanym przypadku obydwie te wartości, specyfikowane przez atrybuty minOccurs i maxOccurs znacznika xs:element, muszą mieć wartość 11. Przez przypisanie atrybutowi minOccurs wartości 0 sprawiamy, że odnośny element staje się opcjonalny, czyli nie musi w ogóle występować. Zdjęcie górnego ograniczenia na liczbę występowania elementu odbywa się przez przypisanie atrybutowi maxOccurs wartości unbounded. Nadanie obydwu atrybutom tej samej war- tości oznacza żądanie wystąpienia elementów w ściśle określonej liczbie — 11 w przytoczonym przykładzie drużyny piłkarzy. Domyślną wartością każdego z atrybutów minOccurs i maxOccurs jest 1 — gdy atrybuty te nie zostaną jawnie określone, odnośny element wystąpić musi dokładnie je- den raz. Ponieważ z natury wymaganie takie narzucone jest na element root, wspomniane atrybuty nie mogą wy- stąpić w jego definicji. Definiowanie dopuszczalnej liczby wystąpień elementów Otwórz dokument schematu XML. Dodaj nowy (lub wykorzystaj istniejący) znacznik otwierający xs:element . 2 Dodaj atrybut minOccurs. Przypisz atrybutowi wartość 0 oznaczającą, że użycie elementu jest opcjonalne. 4 3 1 2 3 4 34 5 6 7 8 Dodaj atrybut maxOccurs. Przypisz atrybutowi wartość unbounded lub konkretną liczbę. 6 5 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 9 8 7 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w 9 Zapisz dokument w pliku z rozszerzeniem .xsd. Wskazówka Staranne zaplanowanie jest kluczem do stworzenia właściwego schematu. Dokumenty XML wrażliwe są na wielkość liter; chociaż plik schematu posiada specyficzne rozszerzenie, jest dokumentem XML i wszelkie uży- te w nim nazwy elementów, atrybutów itp. muszą być tożsame także co do wielkości liter z odpowiednimi nazwami w dokumencie docelowym. Z tego względu niezwykle ważną rzeczą jest opracowanie spójnej me- tody różnicowania wielkości liter („kapitalizacji”) i konsekwentne jej stosowanie zarówno w schemacie, jak i dokumentach na tym schemacie opartych. Alternatywą dla różnicowania wielkości liter w identyfikatorach „wielosłowowych” jest używanie myślników i znaków podkreślenia — jeśli się na to decydujemy, także to powinniśmy robić w sposób spójny. Należy ponadto zwracać szczególną uwagę na wartości przypisywane atrybutom minOccurs i maxOccurs, rozważając przypadki, kiedy to dopuszczalne jest wystąpienie dokumentu o jeden raz więcej lub o jeden raz mniej od „typowej” wartości. Co do rygoryzmu kontroli wynikającej ze schematu: zbyt restrykcyjne schematy okazują się na tyle krępujące (dla twórców docelowych dokumentów), że w praktyce okazać się mogą nieużyteczne; z drugiej jednak strony schemat powinien być na tyle restrykcyjny, by dawać jak najlepszą gwarancję kontroli poprawności danych. 35 Kojarzenie dokumentu XML ze schematem A by walidator mógł przeprowadzić kontrolę po- prawności dokumentu względem pewnego sche- matu, musi uzyskać informację o lokalizacji tegoż schematu. Z pojedynczym schematem może być skoja- rzonych wiele dokumentów. Informacji o lokalizacji schematu dostarcza atrybut noNamespaceSchemaLocation w znaczniku otwiera- jącym element root. Bezpośrednie użycie tego atrybutu jest jednak niedopuszczalne, bowiem wywodzi się on z własnej przestrzeni nazw, a konkretnie z przestrzeni XMLSchemaInstance. Aby zatem poprawnie połączyć dokument z odpowiednim schematem, atrybut ów należy poprzedzić prefiksem identyfikującym wspomnianą prze- strzeń — zwykle używa się w tym celu przedrostka xsi. Sama ścieżka wskazująca położenie schematu może być absolutną lub relatywną względem położenia samego dokumentu, może też mieć postać URL-a wskazujące- go zdalny zasób w sieci (absolutnego lub relatywnego). Oto przykład poprawnego wskazania schematu, którego plik znajduje się w tym samym katalogu co kontrolowany dokument: myRoot xmlns:xsi=  http://www.w3.org/2001/XMLSchema-instance xsi:NoNamespaceSchemaLocation= mySchema.xsd Definiowanie skojarzenia dokumentu XML ze schematem 1 Otwórz dowolny dokument XML bazujący na schemacie. 2 3 4 Dodaj atrybut xmlns do elementu root. Dodaj prefiks xsi. Przypisz atrybutowi xmlns:xsi wartość http://www.w3.org/2001/ XMLSchema-instance. Uwaga: Zwróć uwagę na różnicowanie wielkości liter. 4 3 2 36 5 Dodaj atrybut xsi:noNamespaceSchemaLocation. Uwaga: Ponownie zwróć uwagę na wielkość liter. 5 6 Przypisz powyższemu atrybutowi ścieżkę do pliku .xsd zawierającego dokument schematu. 7 8 Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. 9 Zapisz dokument w pliku z rozszerzeniem .xsd. 9 8 7 6 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Zastosuj to Gdy dokument XML odwołuje się do elementów pochodzących z innej przestrzeni adresowej, od- wołanie do schematu związanego z tą przestrzenią powinno odbywać się za pośrednictwem atrybutu xsi:schemaLocation, zamiast (lub w uzupełnieniu do) atrybutu xsi:noNamespaceSchemaLocation, na przykład tak: kolekcjaFilmow xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceLocation= movieListSchema.xsd xsi:SchemaLocation= http://www.someothersite.com/a-schema.xsd 37 Walidacja dokumentu N ależy zwrócić uwagę na fakt, że o ile wszystkie parsery domyślnie kontrolują poprawność syn- taktyczną („poprawne sformowanie”) dokumentu, niektóre tylko przeprowadzają jego walidację, nawet jeśli w dokumencie jawnie podano odwołanie do schematu. Różne parsery prezentują przy tym nieco odmienne podej- ście do samej walidacji. XMLSpy wykonuje tę czynność na żądanie (w wyniku kliknięcia odpowiedniego przyci- sku), lecz wykonuje ją także w czasie zapisywania doku- mentu, wyświetlając stosowny komunikat ostrzegawczy w przypadku stwierdzenia błędu; mimo iż komunikat ten oferuje możliwość zapisania błędnego dokumentu, wska- zane jest natychmiastowe poprawienie sygnalizowanych błędów zamiast odkładania tej czynności „na później”. Ani Internet Explorer, ani Firefox nie posiadają wbudo- wanych walidatorów, te jednak dostępne są powszechnie Walidacja dokumentu W edytorze XMLSpy 1 2 3 4 Jeśli to konieczne, zadeklaruj przestrzeń nazw XMLSchema-instance. 2 Jeśli to konieczne, użyj atrybutu xsi:noNamespaceSchemaLocation w celu odwołania się do schematu. Kliknij przycisk Check Well-Formedness, by sprawdzić poprawność składniową dokumentu. Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. Kliknij przycisk Check Validity w celu sprawdzenia zgodności dokumentu ze schematem. • Informacja o poprawności (albo niepoprawności) dokumentu pojawi się w obszarze walidacji. W Internet Explorerze 1 2 3 4 Pobierz i zainstaluj Internet Explorer Tools for Validating XML and Viewing XSLT Output ze strony www.microsoft.com/downloads/details. aspx?FamilyId=D23C1D2C-1571-4D61-BDA8- ADF9F6849DF9 displaylang=en. Otwórz dokument XML zawierający odwołanie do schematu. Kliknij dokument prawym przyciskiem myszy. Z menu kontekstowego wybierz opcję Validate XML. Wyświetlony zostanie komunikat potwierdzający poprawność (albo niepoprawność) dokumentu. 38 pod postacią rozmaitych rozszerzeń. Inne parsery, jak te wbudowane w aplikacje MS Office, generalnie pozwalają na pracę z dowolnymi dokumentami XML, proponując później przeprowadzenie ich walidacji. Mimo iż parsery zwykle są odporne na błędy walidacji, niepoprawne dokumenty mogą okazać się kłopotliwe w przetwarzaniu, przykładowo ich transformacja z uży- ciem XSLT może się załamywać lub dawać nieoczekiwa- ne wyniki. Jest więc niezwykle istotne konsekwentne prze- prowadzanie walidacji (i poprawianie napotkanych błędów „na bieżąco”) każdorazowo przed użyciem dokumentu. Rozmaite bywa także traktowanie samych błędów wa- lidacji przez poszczególne parsery — niektóre z nich ograniczają się do wyświetlania komunikatów diagno- stycznych, inne natomiast traktują błędy jako krytyczne i odmawiają dalszego przetwarzania dokumentu. 3 4 1 3 4 Walidacja dokumentu w Firefoksie 1 2 3 4 5 6 7 8 Uruchom Firefox, wejdź na stronę https://addons.mozilla.org/en-US/firefox/ addon/2897 i zainstaluj XML Developer Toolbar. Zaakceptuj komunikat informujący o ponownym uruchomieniu Firefoksa. 2 Na pasku XML Developer kliknij opcję Validation. Z wyświetlonego menu kontekstowego wybierz opcję Validation. Uruchomiony zostanie XSD Validator firmy DecisionSoft. Kliknij przycisk Przeglądaj obok pola XML Schema. Wskaż plik zawierający definicję schematu. Kliknij przycisk Przeglądaj obok pola XML instance. Wskaż plik zawierający weryfikowany dokument. Kliknij przycisk Validate. Po zakończeniu walidacji kliknij opcję Click here, aby zobaczyć wyniki. 7 5 3 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w 4 6 8 Zastosuj to Dostępnych jest wiele narzędzi walidacyjnych dla Internet Explorera i Firefoksa, a także dla innych przeglądarek, jak Safari czy Opera. Większość z nich ogranicza jednak swą funkcjonalność do weryfikacji dokumentu pod kątem zgodności z W3C Schema lub DTD. Walidacja pod kątem zgodności z innymi schematami, jak RELAX NG, oferowana jest jedynie przez wybrane narzędzia. SourceForge.net, witryna stworzona w celu udostęp- niania oprogramowania open-source, oferuje wiele walidatorów XML, a także wiele edytorów i parserów, napisanych w różnych językach i przeznaczonych do wielu różnych celów. Mimo iż dostępne jest w tej ko- lekcji także oprogramowanie komercyjne, większość produktów dostępna jest za darmo. Sama witryna po- siada wbudowaną wyszukiwarkę, oferującą zaawanso- wane funkcje, m.in. system rankingu oceniający stopień zgodności wyszukanych pozycji pod kątem kryterium wyszukiwania. Niektóre produkty oferowane przez SourceForge.net mogą być kłopotliwe w instalowaniu i konfigurowaniu — wówczas pomocne może okazać się bardzo aktywne forum użytkowników. 39 Wizualne tworzenie schematu za pomocą XMLSpy X MLSpy jest wysoce funkcjonalną aplikacją po- zwalającą radykalnie zredukować czas potrzeb- ny na tworzenie dokumentów XML, arkuszy sty- lów XSL i schematów. Gdy załaduje się do programu plik schematu, program automatycznie uruchamia widok Design View umożliwiający budowanie schematu w spo- sób wizualny, podczas gdy XMLSpy automatycznie two- rzy kod tegoż schematu. Ta i inne funkcje tego rodzaju to zasadniczy powód, dla którego XMLSpy cieszy się ta- kim powodzeniem wśród programistów używających go w codziennej pracy. Widok Design View może być wyświetlany w dwóch try- bach: Schema Overview i Content Model View. W pierwszym z nich podzielony jest na sekcje — w górnej połowie okna widnieje lista wszystkich elementów definiowanych w schemacie, u dołu natomiast widoczne są wszystkie atrybuty wybranego elementu i związane z nim ograni- czenia. Grupa paneli po prawej stronie ekranu umożliwia przeglądanie szczegółów elementów schematu, wraz z zastosowanymi do tych elementów fasetami. Design View posiada jeszcze szereg innych opcji uprasz- czających proces tworzenia schematów, między innymi zmianę kolejności elementów za pomocą operacji „prze- ciągnij i upuść” oraz kopiowanie i wklejanie elementów za pomocą menu kontekstowego, co daje możliwość ła- twego kopiowania i przenoszenia elementów między róż- nymi dokumentami schematów. W trybie Content Model View widoczny jest prosty dia- gram ukazujący zależności między elementami definio- wanymi w schemacie, co znacznie ułatwia analizę złożo- nych schematów. Diagram ten umożliwia zarówno łatwe nawigowanie po elementach, jak i wizualne edytowanie zależności między nimi. Wizualne tworzenie schematu za pomocą XMLSpy 1 2 3 W edytorze XMLSpy wybierz opcję File/New. Wyświetlone zostanie okno dialogowe Create New Document. 1 Z listy obsługiwanych typów plików wybierz xsd XML Schema. Kliknij przycisk OK. 2 Utworzony zostanie nowy dokument schematu. 4 Zastąp tekst ENTER_NAME_OF_ROOT_ELEMENT_HERE wybraną przez Ciebie nazwą elementu root. 5 5 Kliknij ikonę Content Model View. 3 4 40 R o z d z i a ł 3 . D e fi n i o w a n i e s t r u k t u r y d o k u m e n t ó w X M L z a p o m o c ą s c h e m a t ó w Wyświetlone zostanie okno dialogowe Content Model View. Kliknij w
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podręcznik
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ą: