Top Banner
Przykładowy dokument XML
36

Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Mar 01, 2019

Download

Documents

vokien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Przykładowy dokument XML

Page 2: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

DTD - wady• Ograniczona kontrola nad strukturą dokumentów.

• Zbyt „wysokopoziomowe” typy danych: liczby, daty są zawsze reprezentowane jako tekst!

• Bardzo ogólne metody definiowania częstości wystąpień. Aby określić, że zwrotka wiersza może mieć od 4 do 8 wersów musimy ją zdefiniować tak:

<!ELEMENT zwrotka (wers, wers, wers, wers, wers?, wers?, wers?, wers?)>

Page 3: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

DTD - wady (2)

• Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym DTD, a następnie rozszerzyć ją w innym bez przepisywania całej definicji.

• Inna składnia

Page 4: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Przykładowy schemat XML

Page 5: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Najważniejsze dokumenty• 1999: dokument W3C opisujący wymagania stawiane

przed nowym formatem: mechanizmy tworzenia struktury, typy proste i reguły przetwarzania

• 2001: XML Schema staje się oficjalną rekomendacją W3C: • XML Schema Part 0: Primer • XML Schema Part 1: Structures • XML Schema Part 2: Datatypes

• 2004: aktualne, drugie wydanie specyfikacji

Page 6: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

W wielkim skrócie• XML Schema to rozwinięcie pomysłu DTD

• Do definicji typu dokumentu w formacie XML Schema wykorzystywana jest standardowa składnia XML

• Składniki definicji należą do przestrzeni nazw XML Schema http://www.w3.org/2001/XMLSchema

• Cała definicja zawarta jest w elemencie głównym <xsd:schema>, węzły i atrybutów definiuje się za pomocą znaczników <xsd:element> i <xsd:attribute>

Page 7: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy danych

• Typy proste (ang. simple type) odpowiadają zawartości bez wewnętrznej struktury (bez podelementów ani atrybutów). Mogą być przypisywane elementom i atrybutom.

• Typy złożone (ang. complex type) mogą mieć zawartość elementową i wprowadzać atrybuty.

Page 8: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy proste

• Typami prostymi są wszystkie typy wbudowane (np. liczba, napis, bool), jak również typy stworzone na ich bazie.

<xsd:element name="definicja" type=„xsd:string"/>

• W DTD odpowiada to definicji:

<!ELEMENT definicja (#PCDATA)>

Page 9: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy wbudowane• string –– ciąg znaków,

• boolean — wartość logiczna (true, false, 0 lub 1),

• decimal — liczby rzeczywiste o określonej długości

• float — 32-bitowa liczba rzeczywista

• double — 64-bitowa liczba rzeczywista

• normalizedString –– napis, w którym każdy biały znak jest podczas przetwarzania zastępowany przez spację,

Page 10: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy wbudowane (2)• token — napis, w którym każdy ciąg białych znaków jest

podczas przetwarzania zastępowany przez jedną spację, zaś białe znaki na początku i końcu są usuwane,

• hexBinary — dane binarne zapisane szesnastkowo

• integer — liczba całkowita z przedziału od -126789 do 126789,

• date, time, dateTime, duration, gYearMonth, ...

• ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATION, NMTOKEN, NMTOKENS, CDATA, language, normalizedString, token, uriReference...

Page 11: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Drzewo typów prostych

Page 12: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy pierwotne • Typ xsd:anyType może być użyty jawnie do

definiowania zawartości elementu:

<xsd:element name="fragmentKodu" type="xsd:anyType"/>

• Taka definicja zezwala na dowolną zawartość znakową i elementową.

• Podobną funkcję pełni typ xsd:anySimpleType, który dopuszcza tylko zawartość o typie pierwotnym

Page 13: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Własne typy proste - fasety• minInclusive, maxInclusive, minExclusive, maxExclusive zawężają zakres dozwolonych wartości liczbowych (wartości minimalna i maksymalna, przedział otwarty i domknięty)

• pattern — zgodność z podanym wyrażeniem regularnym

• enumeration — typ wyliczeniowy

• list — listy wartości typu prostego (jak NMTOKENS)

• union — suma teoriomnogościowa wartości kilku typów,

• length, minLength, maxLength — odpowiednio wymagana, minimalna lub maksymalna długość napisu lub listy

Page 14: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Własne typy proste

• Nowy typ prosty tworzymy poprzez użycie elementu <xsd:simpleType>

• Skorzystanie z fasety wymaga zastosowania w definicji elementu znacznika <xsd:restriction> ograniczającego typ wskazany atrybutem base lub podany w treści tego elementu.

Page 15: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Własne typy proste

Page 16: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Własne typy proste

Page 17: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Własne typy proste

Page 18: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typ wyliczeniowy

Page 19: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Ograniczenia• Zakres wartości wyprowadzonego typu prostego

musi być podzbiorem zakresu wartości typu bazowego.

Page 20: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Listy wartości

Page 21: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Łączenie typów

Page 22: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym
Page 23: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Unie - łączenie typów

• Unia to połączenie zakresów wartości kilku typów w jeden nowy zakres. Instancja może mieć przypisaną wartość należącą do dowolnego z połączonych zakresów wartości.

Page 24: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Unia - przykład

Page 25: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Unia - przykład

Page 26: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Typy anonimowe i nazwane

Page 27: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Organizacja przestrzeni nazw

• Schemat zapisuje się przy pomocy minimum jednego dokumentu schematu.

• Schemat deklaruje nazwy należące do zero lub więcej przestrzeni nazw.

Page 28: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Powiązanie schematu z dokumentem

• Powiązanie schematu z dokumentem składa się z trzech elementów:

• deklaracji przestrzeni nazw dla egzemplarza dokumentu zgodnego z XML Schema: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

• powiązań listy używanych przestrzeni nazw z URL-ami schematów mających posłużyć do walidacji elementów, których nazwy należą do używanych w dokumencie przestrzeni nazw — w atrybucie xsi:schemaLocation

• powiązania schematu dla elementów nie należących do żadnej przestrzeni nazw — poprzez podanie URL-a schematu w atrybucie xsi:noNamespaceSchemaLocation

Page 29: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Nazwy kwalifikowane i niekwalifikowane

• Nazwy kwalifikowane (ang. qualified) należą do pewnej przestrzeni nazw. Mogą być poprzedzone prefiksem lub należeć do domyślnej przestrzeni nazw.

• Nazwy niekwalifikowane (ang. unqualified) nie należą do żadnej przestrzeni nazw.

Page 30: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Dołączenie schematu do dokumentu

Page 31: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Przestrzenie nazw - prefiksy

Page 32: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

Dokumenty schematów• Schemat (struktura logiczna) może być zapisany w

wielu dokumentach schematów (plikach .xsd)

• Specyfikacja XML Schema określa trzy metody łączenia dokumentów schematów:

• include

• import

• redefine

Page 33: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

<xsd:include>

• Metoda include dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu.

• Dołączany dokument musi mieć taką samą docelową przestrzeń nazw jak dokument główny lub nie mieć w ogóle docelowej przestrzeni nazw.

Page 34: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

<xsd:include>

Page 35: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

<xsd:redefine> i <xsd:import>Metoda redefine dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu z możliwością przedefiniowania komponentów:

<xsd:redefine schemaLocation="redefine.xsd"/>

Metoda import dołącza dokument schematu z innej przestrzeni nazw (inną przestrzeń nazw):

<xsd:import schemaLocation="import.xsd” namespace="http://www.example.org/firmy"/>

Page 36: Przykładowy dokument XML - ii.pwr.edu.plpietranik/documents/isi/wyklad_5.pdf · DTD - wady (2) • Mało „obiektowe” definicje. Chcielibyśmy np. zdefiniować zwrotkę w jednym

<xsd:import>