XML Schema - tweglinski.pl

Download Report

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 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

Wykład 3: XML Schema 29/33

Dołączanie elementów  Przykład wykorzystania właściwości elementu w pliku XML:

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 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

Wykład 3: XML Schema 31/33

Dołączanie elementów  Przykład wykorzystania elementu w pliku XML:

połączenie schematów z dwóch plików .xsd

Uwaga: Elementy oraz sprawiają, że tworzone dokumenty XML są naprawdę

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