XML – eXtensible Markup Language 3

1 XML – eXtensible Markup Language 3 ...
Author: Radomił Stępniewski
0 downloads 2 Views

1 XML – eXtensible Markup Language 3

2 Atrybuty Poprawny strukturalnie dokument (valid) musi mieć zadeklarowane atrybuty wszystkich elementów. Wykorzystujemy w tym celu instrukcję ATTLIST Atrybuty deklarujemy oddzielnie dla każdego elementu. Elementy mogą posiadać kilka atrybutów. Przykład 1 width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED >

3 Atrybuty Pojedynczy element ATTLIST może deklarować wiele atrybutów dla tego samego elementu. Przykład 2 width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > gdzie: #REQUIRED – atrybut obowiązkowy #IMPLIED – atrybut nieobowiązkowy

4 Atrybuty Istnieją następujące typy atrybutów:1. CDATA – dowolny ciąg znaków. Przykład 3 2. ID – nazwa która jest wyjątkowa w całym dokumencie XML. Przykład 4 Tomek Nowak

5 Atrybuty 3. NMTOKEN - składa się z tych samych znaków co nazwy XML.Może się zaczynać od dowolnej litery i znaku. Przykład 5 4. NMTOKENS - składa się z kilku wartości NMTOKEN. Przykład 6 Kat and the Kings

6 Atrybuty 5. (v1 | v2 | ... |vn) - wszystkie możliwe wartości.Przykład 7

7 Atrybuty 6. IDREF – odwołanie do innego elementu z atrybutem ID.Przykład 8 7. IDREFS – ciąg kilku IDREF rozdzielonych spacjami.

8 Typy wartości atrybutów#REQUIRED – atrybut musi pojawić się z każdym wystąpieniem elementu. #IMPLIED – atrybut nieobowiązkowy. #FIXED "wartość" – atrybut obowiazkowy o wartości określonej przez wartość. Przykład 9 "wartość" – wartość domyślna atrybutu. Przykład 10

9 XML Schema (Podobnie jak DTD) XML Schema to opracowany przez W3C standard służący do definiowania struktury dokumentu XML. (W przeciwieństwie do DTD) XML Schema jest aplikacją XML. XML pozwala (dokładniej niż DTD) określić strukturę dokumentów XML. XML schema oferuje większą niż DTD ilość typów (elementów, atrybutów, danych). W XML schema możemy definiować własne typy wykorzystując typy „wbudowane”. Dokumenty zawierające definicje XML Schema zapisuje się zwykle w plikach z rozszerzeniem xsd.

10 XML Schema Struktura dokumentu XML schema ... Prefix xs możemy pominąć. ...

11 XML Schema – deklaracje elementów i atrybutówElementy Każdy element dokumentu XML deklarujemy w następujący sposób: Przykład 11 Oprócz atrybutu type każdy element może posiadać nastepujące atrybuty: minOccurs=”x” - określa minimalną liczbę wystapień elementu. maxOccurs=”x” - określa maksymalną liczbę wystapień elementu. W przypadku braku tych atrybutów wartość x ma domyślną wartość 1.

12 XML Schema – deklaracje elementów i atrybutówPrzykład 11 Atrybuty Atrybuty dokumentu XML deklarujemy w następujący sposób: Przykład 12

13 XML Schema – deklaracje elementów i atrybutówOprócz atrybutu type każdy deklaracja może posiadać nastepujące atrybuty: use=”x” - gdzie x może przyjmować wartości optional lub required. wartość use=”x” vales=” ” - gdzie x może przyjmować wartości default lub fixed. Przykład 13 value=”en”/>

14 XML Schema – proste typy danychTypy numeryczne Przykłady xs:byte - liczba całkowita z przedziału xs:double , 6.022E23, 127E-13 xs:float – , , 6.022E23, 127E-13 xs:integer - 3, 3000, Typ logiczny xs:boolean - true, false, 0, 1

15 XML Schema – proste typy danychTypy znakowe Przykłady xs:string xs:NCName – dowolna nazwa XML xs:ID – nazwa XML niepowtarzalna w całym dokumencie XML xs:IDREF xs:NMTOKEN xs:NMTOKENS xs:language – kody języków zdefiniowane w ISO 639 np. en, en-US, en-GB, fr-CA

16 XML Schema – typy danychTypy wbudowane Typy zwiazane z datą i czasem Przykłady xs:time – czas w formacie ±hh:mm:ss.xxx (xxx – ułamki sekund) Dodatkowa litera Z oznacza czas Greenwich. 03:32:00-05:00 00:00:00Z 08:30: xs:date – data w formacie YYYY-MM-DD±hh:mm :00

17 XML Schema – typy danychTypy definiowane przez użytkownika Typy złożone (complex data types) – wykorzystujemy elementy i atrybuty. ... Definiując typy złożone możemy wykorzystać następujące elementy: sequence – ciąg elementów typów wbudowanych (ważna kolejność) all – elementy typów wbudowanych z których wszystkie muszą się pojawić. choice – elementy do wyboru.

18 XML Schema – typy danychPrzykład 11 use="xs:optional"/>

19 XML Schema – typy danychPrzykład 11 Zdefiniujemy typy danych które mogą pojawić się w dokumencie XML będącym listem. Typ złożony może posiadać atrybut mixed, który określa czy w elemencie danego typu mogą pojawić sie dane znakowe.

20 XML Schema – typy danych

21 XML Schema – typy danychFormularz listu wygląda następująco: xsi:noNamespaceSchemaLocation="formletter.xsd"> Bob! Thank you for ordering the ($), it should arrive by .

22 XML Schema – typy danychRozszerzanie typów dany – rozszerzamy typy danych przez dodanie nowych elementów lub atrybutów. Przykład 11 use="xs:optional"/> Chcemy rozszerzyć typ lecturerType do typu extendedLecturerType przez dodanie informacji o adresie .

23 XML Schema – typy danych minOccurs="0" maxOccurs="1"/> Otrzymany w ten sposób następujący typ danych: minOccurs="0" maxOccurs="1"/> use="xs:optional"/>

24 XML Schema – typy danychOgraniczanie typów dany – ograniczamy typ danych przez dodanie więzów (ograniczeń) na pewne wartości. Przykład 11 use="xs:optional"/> Chcemy ograniczyć typ lecturerType do typu restrictedLecturerType.

25 XML Schema – typy danych minOccur="1" maxOccur="2"/> use="xs:required"/>

26 XML Schema – typy danychTypy proste (simple data types) – definiujemy m.in. przez ograniczenie typów wbudowanych. Przykład 11 Przykład 11

27 XML Schema – typy danychPrzykład 11

28 XML Schema – typy danychPrzykład 11 XML schema dla poczty elektronicznej.

29 XML Schema – typy danych minOccurs=”1” maxOccurs=”unbounded”/> minOccurs=”0” maxOccurs=”unbounded”/> use=”optional”/> use=”required”/>

30 XML Schema – typy danych maxOccurs=”unbounded”/> value=”mime”> use=”required”/>

31 Przestrzenie nazw Przykład 11Dwa muzea posiadają dokumenty XML i okreslone dla nich DTD (lub XML Schema) zawierające opis eksponatów. Muzeum 1 (DTD 1): </span> <span class='tr'>Memory of the Garden at Etten</span> <span class='tr'> Vincent Van Gogh November, 1888 Two women look to the left. A third works in her garden. ...

32 Przestrzenie nazw Muzeum 2 (DTD 2): The Swing Pierre-Auguste Renoir 1876 A young girl on a swing. Two men and a toddler watch. ... Oba muzea panują wspólną wystawę swoich eksponatów. Informacja o wystawianych eksponatach ma być dostępna w Internecie.

33 Przestrzenie nazw Katalog Muzeum 1 i Muzeum 2: Memory of the Garden at Etten Vincent Van Gogh November, 1888 Two women look to the left. A third works in her garden. The Swing Pierre-Auguste Renoir 1876 A young girl on a swing. Two men and a toddler watch.

34 Przestrzenie nazw Czy mozna w ten sposób łączyć dokumenty XML?Można, ale... ...mogą pojawić się problemy podczas walidacji jeżeli elementy w dokumencie XML zawierającym katalog Muzeum 1 są zdefiniowane inaczej niż elementy w dokumencie XML zawierającym katalog Muzeum 2. Walidator napotykając dowlny element w dokumencie musi wiedzieć czy element ten jest zdefiniowany W DTD 1 czy w DTD2. Informację taką zapisujemy wykorzystując tzw. przestrzenie nazw. Deklaracja przestrzeni nazw: xmlns:prefix=”położenie”

35 Przestrzenie nazw xmlns:m1=”http://www.muzeum1.pl/DTD/” xmlns:m2=”http://www.muzeum1.pl/DTD/”> Memory of the Garden at Etten Vincent Van Gogh November, 1888 Two women look to the left. A third works in her garden. The Swing Pierre-Auguste Renoir 1876 A young girl on a swing. Two men and a toddler watch.