Transcript XML Schema - tweglinski.pl
Łódź, 8 października 2012 roku
Technologie
mgr inż. Tomasz Węgliński email: [email protected]
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 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ązanym z językiem XML jaki został opracowany przez organizację W3C.
Wykład 3: XML Schema 3/33
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 Wykład 3: XML Schema 4/33
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
Wykład 3: XML Schema 5/33
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 Wykład 3: XML Schema 6/33
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
Wykład 3: XML Schema 7/33
Budowa schematu Odwołania do schematów –
bez przestrzeni nazw
Schemat pochodzi z ogólnie przyjętej przestrzeni nazw XML Schema
W praktyce odwołania bez przestrzeni nazw są stosowane
znacznie częściej
.
Wykład 3: XML Schema 8/33
Walidacja Proces sprawdzenia poprawności dokumentu XML: Dokument XML Schemat Dokument lub schemat
niepoprawny
Sprawdzenie zgodności dokumentu XML ze schematem oraz samego schematu
Dokument oraz schemat
poprawny
Reguły XML Schema wbudowane w parser Wykład 3: XML Schema 9/33
Typy proste
Elementem prostym
nazywamy taki element, który może posiadać jedynie zawartość tekstową.
Element prosty nie może zawierać podelementów ani atrybutów.
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 Wykład 3: XML Schema 10/33
Typy proste Przykłady elementów prostych Deklaracje XML Schema opisujące powyższy przykład: Wykład 3: XML Schema 11/33
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 musi stanowić treść elementu
wartość ustalona
Wykład 3: XML Schema 12/33
Typy proste Wszystkie
atrybuty
są typu prostego (oczywiste).
nazwa atrybutu typ danych
Atrybuty posiadają te same wbudowane typy danych co elementy.
Przykłady: Wykład 3: XML Schema 13/33
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ć
Wykład 3: XML Schema 14/33
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.
Wykład 3: XML Schema 15/33
Aspekty (ograniczenia) W celu ograniczenia (określenia) zawartości elementów, możemy dodać listę dozwolonych wartości tego elementu:
dozwolone wartości elementu
car Bardziej ogólnie możemy napisać tak:
definicja typu prostego
Jaka różnica?
Wykład 3: XML Schema 16/33
Aspekty (ograniczenia) Ograniczenia typu prostego umożliwiają również zadeklarowanie tzw.
wzorca
(ang.
pattern
), czyli dozwolonej zawartości tekstowej wewnątrz elementu.
Do tego celu wykorzystywane są
wyrażenia regularne
.
Przykłady:
wyrażenie regularne wyrażenie regularne
Wykład 3: XML Schema 17/33
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
Wykład 3: XML Schema 18/33
Aspekty (ograniczenia) Lista dostępnych ograniczeń dla typów prostych: Wykład 3: XML Schema 19/33
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)?
Wykład 3: XML Schema 20/33
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
Wykład 3: XML Schema 21/33
Typy złożone Typy danych możemy również łączyć (
rozszerzać
):
dołączenie deklaracji
personinfo
Wewnatrz elementu complexContent można dodawać rozszerzenia lub ograniczenia (aspekty)
Wykład 3: XML Schema 22/33
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ą) Wykład 3: XML Schema 23/33
Typy złożone Elementy złożone o
zawartości mieszanej
tekst jak i inne elementy.
mogą zawierać zarówno Przykład elementu o zawartości mieszanej: Deklaracja w XML Schema:
dozwolona zawartość mieszana
Czy tutaj też ma to znaczenie?
Wykład 3: XML Schema 24/33
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
Wykład 3: XML Schema 25/33
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 Wykład 3: XML Schema 26/33
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
Wykład 3: XML Schema 27/33
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
Wykład 3: XML Schema 28/33
Dołączanie elementów Element
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
Wykład 3: XML Schema 29/33
Dołączanie elementów Przykład wykorzystania właściwości elementu
połączenie schematów z dwóch plików .xsd
tak nadal można Wykład 3: XML Schema 30/33
Dołączanie elementów Element
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
Wykład 3: XML Schema 31/33
Dołączanie elementów Przykład wykorzystania elementu
połączenie schematów z dwóch plików .xsd
Uwaga: Elementy
ROZSZERZALNE
, czyli mogą zawierać elementy i/lub atrybuty zdefiniowane w wielu schematach.
Wykład 3: XML Schema 32/33
Podmiana elementów W XML Schema istnieje również możliwość
podmiany elementów
w zależności od potrzeb.
Ta właściwość może być użyteczna do
internacjonalizacji
dokumentów XML.
Zapis: Pozwala na stworzenie dwóch
równoważnych
typów dokumentów XML: Oba dokumenty są poprawne!
Wykład 3: XML Schema 33/33