330 likes | 418 Views
Łódź, 8 października 2012 roku. Technologie. mgr inż. Tomasz Węgliński email: tweglinski@kis.p.lodz.pl www: http://www.tweglinski.pl. WYKŁAD 3. XML Schema. 2/33. Co to jest XML Schema?. XML Schema – to standard umożliwiający dokładne opisanie
E N D
Łódź, 8 października 2012 roku Technologie mgr inż. Tomasz Węglińskiemail: tweglinski@kis.p.lodz.plwww: http://www.tweglinski.pl
WYKŁAD 3 XML Schema 2/33
Co to jest XML Schema? • XML Schema – to standard umożliwiający dokładne opisanie • drzewiastej struktury dokumentu XML oraz typów danych • znajdujących się w elementach i atrybutach. • Jest „następcą” DTD – XML Schema rozszerza jego możliwości. • XML Schema pozwala (w odróżnieniu od DTD) na określenie wzorców i typów zawartości zarówno elementów jak i atrybutów. • Istnieje wiele typów zawartości, które można zawężać, a nawet rozszerzać w zależności od potrzeb. XML Schema jest najbardziej obszernym standardem związanymz językiem XML jaki został opracowany przez organizację W3C. 3/33 Wykład 3: XML Schema
Możliwości XML Schema • XML Schema definiuje: • elementy i atrybuty występujące w dokumencie XML • elementy potomne • kolejność występowania elementów potomnych • liczbę elementów potomnych • typy danych elementów i atrybutów • domyślne i wymagane wartości dla elementów i atrybutów • Dzięki XML Schema łatwiej jest: • opisać dopuszczalna zawartość dokumentu • sprawdzić poprawność danych • pracować z danymi z bazy danych • określić aspekty danych (ograniczenia w danych) • określić wzorce danych (format danych) • dokonać konwersji pomiędzy różnymi typami danych 4/33 Wykład 3: XML Schema
Budowa schematu • W schematach XML Schema musi wystąpić: • deklaracja XML; • element główny (korzeń) schematu wraz z określeniem odpowiedniej przestrzeni nazw; • definicja typów; • deklaracja elementów i atrybutów. deklaracja XML element główny wraz z określeniem przestrzeni nazw definicja typów deklaracja elementów 5/33 Wykład 3: XML Schema
Budowa schematu • Deklaracja przestrzeni nazw w dokumencie XML Schema: -- wykorzystywane elementy i typy danych pochodzą z przestrzeni nazw XML Schema oraz posiadają prefix xs -- elementy (nazwy) zdefiniowane w tym schemacie pochodzą ze wskazanej przestrzeni nazw -- wskazana przestrzeń nazw jest domyślną przestrzenią nazw schematu -- wszystkie nazwy elementów są przydzielane do nowej przestrzeni 6/33 Wykład 3: XML Schema
Budowa schematu • Odwołania do schematów – z przestrzenią nazw Pierwsze dwa parametry już znamy, natomiast zapis: identyfikator przestrzeni ścieżka do pliku oznacza, że elementy i atrybuty zdefiniowane w dokumencie XML pochodzą z przestrzeni nazw zadeklarowanej w pliku note.xsd 7/33 Wykład 3: XML Schema
Budowa schematu • Odwołania do schematów – bez przestrzeni nazw Schemat pochodzi z ogólnie przyjętejprzestrzeni nazw XML Schema • W praktyce odwołania bez przestrzeni nazw są stosowane znacznie częściej. 8/33 Wykład 3: XML Schema
Walidacja • Proces sprawdzenia poprawności dokumentu XML: Dokument XML Schemat Dokument lub schemat niepoprawny Dokument orazschemat poprawny Sprawdzenie zgodności dokumentu XML ze schematemoraz samego schematu Reguły XML Schema wbudowane w parser 9/33 Wykład 3: XML Schema
Elementem prostym nazywamy taki element, który może posiadać jedynie zawartość tekstową. Element prosty nie może zawierać podelementów ani atrybutów. Typy proste nazwa elementu typ danych • XML Schema zawiera wiele wbudowanych typów danych jakie może przyjmować element. • Do najbardziej popularnych należą: • xs:string • xs:decimal • xs:integer • xs:boolean • xs:date • xs:time 10/33 Wykład 3: XML Schema
Typy proste • Przykłady elementów prostych • Deklaracje XML Schema opisujące powyższy przykład: 11/33 Wykład 3: XML Schema
Typy proste Element prosty może również zawierać wartość ustaloną lub domyślną: wartość domyślna • Wartość domyślna może, ale nie musi stanowić treści elementu wartość ustalona • Wartość ustalona musi stanowić treść elementu 12/33 Wykład 3: XML Schema
Typy proste Wszystkie atrybuty są typu prostego (oczywiste). nazwa atrybutu typ danych • Atrybuty posiadają te same wbudowane typy danych co elementy. Przykłady: 13/33 Wykład 3: XML Schema
Typy proste • Atrybuty domyślne i ustalone wartość domyślna wartość ustalona • Atrybuty w dokumencie XML są opcjonalne, jednakże można wymusić konieczność ich wystąpienia: Atrybut musi wystąpić 14/33 Wykład 3: XML Schema
Aspekty (ograniczenia) XML Schema pozwala określić własne dopuszczalne wartości dla poszczególnych elementów oraz ich atrybutów. Takie ograniczenia nazywamy aspektami (ang. facets) • Spójrzmy na ten przykład: deklaracja nowego typu prostego ograniczenie definicja ograniczenia • Ograniczenie typu prostego zawiera parametr base, który informuje jakiego typu danych będzie dotyczyło ograniczenie. 15/33 Wykład 3: XML Schema
W celu ograniczenia (określenia) zawartości elementów, możemy dodać listę dozwolonych wartości tego elementu: Aspekty (ograniczenia) dozwolone wartości elementu car • Bardziej ogólnie możemy napisać tak: definicja typuprostego Jaka różnica? 16/33 Wykład 3: XML Schema
Ograniczenia typu prostego umożliwiają również zadeklarowanietzw. wzorca (ang. pattern), czyli dozwolonej zawartości tekstowej wewnątrz elementu. • Do tego celu wykorzystywane są wyrażenia regularne. • Przykłady: Aspekty (ograniczenia) wyrażenie regularne wyrażenie regularne 17/33 Wykład 3: XML Schema
Aspekty (ograniczenia) • Białe znaki (ang. whitespace characters) w treści elementu mogą być obsłużone na trzy sposoby: • zachowane – słowo kluczowe preserve • zamienione – słowo kluczowe replace • usunięte – słowo kluczowe collapse • Przykład: wszystkie białe znaki zostanązamienione na spacje 18/33 Wykład 3: XML Schema
Aspekty (ograniczenia) • Lista dostępnych ograniczeń dla typów prostych: 19/33 Wykład 3: XML Schema
Typy złożone Element złożony (ang. complex element) to element zawierający zawartość tekstową lub mieszaną oraz atrybuty opcjonalne. • Przykład elementu złożonego: • Prosta deklaracja w XML Schema: deklaracja typu złożonego Co to znaczy (patrz. DTD)? 20/33 Wykład 3: XML Schema
Typy złożone • Definiowane typy danych możemy oczywiście wykorzystywać wielokrotnie,tak samo jak przy typach prostych: ten sam typ danych użyty wielokrotnie definicja typu złożonego 21/33 Wykład 3: XML Schema
Typy złożone • Typy danych możemy również łączyć (rozszerzać): dołączenie deklaracjipersoninfo Wewnatrz elementu complexContentmożna dodawać rozszerzenia lubograniczenia (aspekty) 22/33 Wykład 3: XML Schema
Typy złożone Elementy puste typu złożonego mogą zawierać jedynie atrybuty. • Przykład elementu pustego zawierającego atrybut: • Deklaracja w XML Schema: wykorzystanie typu wbudowanego(prodid może być liczbą dodatnią) 23/33 Wykład 3: XML Schema
Typy złożone Elementy złożone o zawartości mieszanej mogą zawierać zarówno tekst jak i inne elementy. • Przykład elementu o zawartości mieszanej: • Deklaracja w XML Schema: dozwolona zawartość mieszana Czy tutaj też ma to znaczenie? 24/33 Wykład 3: XML Schema
Wskaźniki • Deklaracje wskaźników (ang. indicators) mogąinformować parser o: • kolejności występowania elementów • liczbie wystąpień elementu • przynależności elementów lub atrybutów do grupy • Kolejność elementów podobnie jak w DTD może być: • dowolna • sekwencyjna • opcjonalna (wyboru) Uwaga: element może wystąpić tylko raz (!) element dowolnej treści 25/33 Wykład 3: XML Schema
Wskaźniki • Deklaracje wskaźników (ang. indicators) mogąinformować parser o: • kolejności występowania elementów • liczbie wystąpień elementu • przynależności elementów lub atrybutów do grupy • Dozwoloną liczbę wystąpień elementu deklarujemy za pomocą parametrów: • minOccurs • maxOccurs wartością parametru może być liczba lub słowo kluczowe unbounded 26/33 Wykład 3: XML Schema
Wskaźniki • Deklaracje wskaźników (ang. indicators) mogąinformować parser o: • kolejności występowania elementów • liczbie wystąpień elementu • przynależności elementów lub atrybutów do grupy • Przynależność elementów do grupy deklarujemy słowem: • group dołączenie zadeklarowanej grupy elementów 27/33 Wykład 3: XML Schema
Wskaźniki • Deklaracje wskaźników (ang. indicators) mogąinformować parser o: • kolejności występowania elementów • liczbie wystąpień elementu • przynależności elementów lub atrybutów do grupy • Przynależność atrybutów do grupy deklarujemy słowem: • attributeGroup dołączenie zadeklarowanej grupy atrybutów 28/33 Wykład 3: XML Schema
Dołączanieelementów Element <any> pozwala na dołączenie do elementów zadeklarowanych, wewnątrz jednego schematu, dodatkowych elementów z innego schematu. • Plik person.xsd W tym miejscu mogą się pojawić elementy z innego schematu(!) • Plik children.xsd 29/33 Wykład 3: XML Schema
Dołączanieelementów • Przykład wykorzystania właściwości elementu <any> w pliku XML: połączenie schematówz dwóch plików .xsd tak nadal można 30/33 Wykład 3: XML Schema
Dołączanieelementów Element <anyAttribute> pozwala na dołączenie do elementów zadeklarowanych wewnątrz jednego schematu, dodatkowych atrybutów z innego schematu. • Plik person.xsd W tym miejscu mogą się pojawić atrybuty z innego schematu(!) • Plik attribute.xsd 31/33 Wykład 3: XML Schema
Dołączanieelementów • Przykład wykorzystania elementu <anyAttribute> w pliku XML: połączenie schematówz dwóch plików .xsd Uwaga: Elementy <any> oraz <anyAttribute> sprawiają, że tworzonedokumenty XML są naprawdę ROZSZERZALNE, czyli mogą zawierać elementy i/lub atrybuty zdefiniowane w wielu schematach. 32/33 Wykład 3: XML Schema
Podmianaelementów W XML Schema istnieje również możliwość podmiany elementóww zależności od potrzeb. Ta właściwość może być użyteczna do internacjonalizacjidokumentów XML. • Zapis: • Pozwala na stworzenie dwóch równoważnych typów dokumentów XML: Oba dokumenty są poprawne! 33/33 Wykład 3: XML Schema