Zaawansowana skadnia XML Schema 1 Zaawansowana skadnia XML

  • Slides: 21
Download presentation
Zaawansowana składnia XML Schema 1

Zaawansowana składnia XML Schema 1

Zaawansowana składnia XML Komentarz: n <!-- komentarz --> Instrukcja przetwarzania: n <? target processing-instruction-body?

Zaawansowana składnia XML Komentarz: n <!-- komentarz --> Instrukcja przetwarzania: n <? target processing-instruction-body? > Sekcja CDATA: n <![CDATA[dowolny <tekst " nieprzetwarzany & przez [ parser]]> Odwołania do znaków: n ¡ n &#x. A 1; n kody zgodne ze standardem ISO/IEC 10646. 2

Unicode Światowy standard kodowania narodowych znaków przy pomocy dwubajtowych par: n podzbiór ISO/IEC 10646.

Unicode Światowy standard kodowania narodowych znaków przy pomocy dwubajtowych par: n podzbiór ISO/IEC 10646. Odmiany: n UTF-7, n UTF-8 (pierwsze 128 - ASCII), n UTF-16. Obowiązkowy standard dla dokumentów XML: n każde narzędzie XML-owe musi wspierać przynajmniej UTF-8. 3

Sekcje warunkowe Włączanie i wyłączanie fragmentów DTD: <![INCLUDE[ <!ELEMENT biogr (imie, nazwisko, data-ur, data-sm,

Sekcje warunkowe Włączanie i wyłączanie fragmentów DTD: <![INCLUDE[ <!ELEMENT biogr (imie, nazwisko, data-ur, data-sm, opis)> ]]> <![IGNORE[ <!ELEMENT biogr (imienazw, data-ur, data-sm, opis)> ]]> 4

Sekcje warunkowe + encje parametryczne Zewnętrzny podzbiór DTD: <!ENTITY % ver 1 <!ENTITY %

Sekcje warunkowe + encje parametryczne Zewnętrzny podzbiór DTD: <!ENTITY % ver 1 <!ENTITY % ver 2 <![%ver 2; [ <!ELEMENT biogr ]]> <![%ver 1; [ <!ELEMENT biogr ]]> "IGNORE"> "INCLUDE"> (imie, nazwisko, data-ur, data-sm, opis)> (imienazw, data-ur, data-sm, opis)> Dokument zgodny z wersją 1: <!DOCTYPE book SYSTEM "book. dtd" [ <!ENTITY % ver 1 "INCLUDE"> <!ENTITY % ver 2 "IGNORE"> ] <book>. . . <imienazw>Szymon Zioło</imienazw>. . . </book> 5

Dlaczego DTD nie wystarcza? Zastosowania w integracji aplikacji – struktury danych: n przeniesienie zadania

Dlaczego DTD nie wystarcza? Zastosowania w integracji aplikacji – struktury danych: n przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. n 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Roger L. Costello, XML Schema Tutorial Cechy DTD: n jedynie podstawowa kontrola nad strukturą dokumentów, n bardzo ogólne metody definiowania częstości wystąpień, n mało "obiektowe", nierozszerzalne modele struktury. 6

DTD – XML Schema · Wywodzi się z SGML-a · Zaprojektowany na potrzeby XML-a

DTD – XML Schema · Wywodzi się z SGML-a · Zaprojektowany na potrzeby XML-a · Specyficzna składnia · Składnia XML · 10 typów danych · 41+ typów danych · Brak kontroli tekstowej zawartości elementów · Zaawansowana kontrola tekstowej zawartości elementów · Typowy mieszany model zawartości · Możliwość definiowania własnych typów danych. 7

Status XML Schema 15 lutego 1999: Dokument W 3 C opisujący wymagania stawiane przed

Status XML Schema 15 lutego 1999: Dokument W 3 C opisujący wymagania stawiane przed nowym formatem: n mechanizmy tworzenia struktury, n typy proste, n reguły przetwarzania. 2 maja 2001: XML Schema staje się oficjalną rekomendacją W 3 C: n XML Schema Part 0: Primer, n XML Schema Part 1: Structures, n XML Schema Part 2: Datatypes. Obecnie: trwają prace nad wymaganiami do wersji 1. 1 XML Schema. Przestrzeń nazw XML Schema: http: //www. w 3. org/2001/XMLSchema 8

Definiowanie elementów i atrybutów <xsd: element name="osoba"> <xsd: complex. Type> <xsd: sequence> <xsd: element

Definiowanie elementów i atrybutów <xsd: element name="osoba"> <xsd: complex. Type> <xsd: sequence> <xsd: element name="imie" type="xsd: string"/> <xsd: element name="nazwisko" type="xsd: string"/> <xsd: element name="plec" type="xsd: string"/> <xsd: element name="wiek" type="xsd: string"/> </xsd: sequence> <xsd: attribute name="id" type="xsd: ID"/> <xsd: attribute name="NIP" type="xsd: string"/> </xsd: complex. Type> </xsd: element> 9

Określanie typu elementu/atrybutu Atrybut type: <xsd: element name="imie" type="xsd: string"/> Podelement complex. Type lub

Określanie typu elementu/atrybutu Atrybut type: <xsd: element name="imie" type="xsd: string"/> Podelement complex. Type lub simple. Type: <xsd: element name="osoba"> <xsd: complex. Type>. . . </xsd: complex. Type> </xsd: element> 10

Typy w XML Schema Wbudowane typy proste: n string, n boolean, n integer, n

Typy w XML Schema Wbudowane typy proste: n string, n boolean, n integer, n float, n date. Time, n ID, IDREF, CDATA, n. . . 11

Typy w XML Schema Możliwość definiowania typów złożonych: n sequence, n choice, n group,

Typy w XML Schema Możliwość definiowania typów złożonych: n sequence, n choice, n group, n all. Kontrola użycia podelementów: n min. Occurs, n max. Occurs. Kontrola użycia atrybutów: n atrybut use o dopuszczalnych wartościach: required, optional lub prohibited. 12

Kontrola użycia elementów i atrybutów <xsd: element name="osoba"> <xsd: complex. Type> <xsd: sequence> <xsd:

Kontrola użycia elementów i atrybutów <xsd: element name="osoba"> <xsd: complex. Type> <xsd: sequence> <xsd: element name="imie" type="xsd: string" min. Occurs="1" max. Occurs="2"/> <xsd: element name="nazwisko" type="xsd: string"/> <xsd: element name="plec" type="xsd: string"/> <xsd: element name="wiek" type="xsd: string"/> </xsd: sequence> <xsd: attribute name="id" type="xsd: ID" use="required"/> <xsd: attribute name="NIP" type="xsd: string"/> </xsd: complex. Type> </xsd: element> 13

Typy w XML Schema Tworzenie własnych typów prostych przy pomocy aspektów (facets): n min.

Typy w XML Schema Tworzenie własnych typów prostych przy pomocy aspektów (facets): n min. Inclusive, max. Inclusive, min. Exclusive, max. Exclusive, n pattern, n enumeration, n list, n union, n length, min. Length, max. Length. <xsd: element name="wiek"> <xsd: simple. Type> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="0"/> <xsd: max. Inclusive value="120"/> </xsd: restriction> </xsd: simple. Type> </xsd: element> 14

Przykłady Lista wartości: <xsd: simple. Type name="Lottery. Numbers"> <xsd: restriction> <xsd: simple. Type> <xsd:

Przykłady Lista wartości: <xsd: simple. Type name="Lottery. Numbers"> <xsd: restriction> <xsd: simple. Type> <xsd: list item. Type="One. To. Ninety. Nine"> </xsd: simple. Type> <xsd: length value="6"/> </xsd: restriction> </xsd: simple. Type> Wyrażenia regularne: <xsd: attribute name="NIP"> <xsd: simple. Type> <xsd: restriction base="xsd: string"> <xsd: pattern value="d{3}-d{2}-d{2}"/> </xsd: restriction> </xsd: simple. Type> </xsd: attribute> 15

Typ złożony, ale prosty <xsd: element name="roślina"> <xsd: complex. Type> <xsd: simple. Content> <xsd:

Typ złożony, ale prosty <xsd: element name="roślina"> <xsd: complex. Type> <xsd: simple. Content> <xsd: extension base="xsd: string"> <xsd: attribute name="gatunek" type="xsd: string" use="required"/> </xsd: extension> </xsd: simple. Content> </xsd: complex. Type> </xsd: element> 16

Model mieszany w XML Schema Możliwość kontroli ilości i kolejności podelementów: <xsd: element name="zeznanie">

Model mieszany w XML Schema Możliwość kontroli ilości i kolejności podelementów: <xsd: element name="zeznanie"> <xsd: complex. Type mixed="true"> <xsd: sequence> <xsd: element name="poszkodowany" type="xsd: string"/> <xsd: element name="data" type="xsd: string"/> <xsd: element name="godzina" type="xsd: string" max. Occurs="2"/> </xsd: sequence> </xsd: complex. Type> </xsd: element> 17

Rozszerzanie typów <xsd: complex. Type name="Publikacja"> <xsd: sequence> <xsd: element name="Tytuł" type="xsd: string"/> <xsd:

Rozszerzanie typów <xsd: complex. Type name="Publikacja"> <xsd: sequence> <xsd: element name="Tytuł" type="xsd: string"/> <xsd: element name="Autor" type="xsd: string"/> <xsd: element name="Rok. Publ" type="xsd: year"/> </xsd: sequence> </xsd: complex. Type> <xsd: complex. Type name="Książka"> <xsd: complex. Content> <xsd: extension base="Publikacja"> <xsd: sequence> <xsd: element name="ISBN" type="xsd: string"/> </xsd: sequence> </xsd: extension> </xsd: complex. Content> </xsd: complex. Type> 18

Deklaracja elementu a typ zawartości Oddzielenie deklaracji elementu od typu zawartości: n typy anonimowe:

Deklaracja elementu a typ zawartości Oddzielenie deklaracji elementu od typu zawartości: n typy anonimowe: <xsd: element name="osoby"> <xsd: complex. Type>. . . </xsd: complex. Type> </xsd: element> n typy nazwane: <xsd: element name="osoba" type="osoba"/>. . . <xsd: complex. Type name="osoba">. . . </xsd: complex. Type> 19

Deklaracje lokalne i globalne <xsd: element name="Książka"> <xsd: complex. Type> <xsd: sequence> <xsd: element

Deklaracje lokalne i globalne <xsd: element name="Książka"> <xsd: complex. Type> <xsd: sequence> <xsd: element name="Autor" type="xsd: string"/>. . . <xsd: element ref="ISBN"/> </xsd: sequence> </xsd: complex. Type> </xsd: element> <xsd: element name="ISBN"> <xsd: simple. Type> <xsd: restriction base="xsd: string"> <xsd: pattern value="d{2}-d{3}"/> </xsd: restriction> </xsd: simple. Type> </xsd: element> 20

Dokąd zmierzamy? Trendy w zastosowaniach technologii XML: n coraz więcej zastosowań związanych z integracją

Dokąd zmierzamy? Trendy w zastosowaniach technologii XML: n coraz więcej zastosowań związanych z integracją aplikacji i wymianą dokumentów, n rosnące potrzeby walidacji struktur XML. Odpowiedź: XML Schema: n bardzo młody standard, n czeka nas jeszcze wiele pracy, n czy doczekamy się darmowych narzędzi? Czy XML Schema wyprze DTD? n wieloletnie doświadczenie z SGML-owymi DTD, n dostępność dobrych DTD, n wygoda, przyzwyczajenie. 21