XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Podobne dokumenty
XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

XML Schema. Forma nazwy lokalnych elementów i atrybutów

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

Wprowadzenie do XML schema

Kurs WWW Język XML, część I

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

XML extensible Markup Language. część 4

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Schematy XML. Tomasz Traczyk.

Dlaczego DTD nie wystarcza? Definiowanie typów dokumentów Część 2. XML Schema. Status XML Schema. DTD XML Schema. Definiowanie elementów i atrybutów

Przykładowy dokument XML

Rola języka XML narzędziem

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

Załącznik Nr 1 do Uchwały Nr XX/356/11 Rady Miasta Gdańska z dnia 24 listopada 2011 r.

Definiowanie typów dokumentów Część 3. XML Schema

SCHEMAT DOKUMENTÓW OTRZYMYWANYCH Z ZUS ZAWIERAJĄCYCH INFORMACJE ZGROMADZONE W SYSTEMIE INFORMATYCZNYM ZUS

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML Schema w przykładach

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

XML extensible Markup Language. część 2

Symbole wieloznaczne w XML Schema. Definiowanie typów dokumentów Część 4. XML Schema, RELAX NG, Schematron. Schematron

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Wprowadzenie do technologii XML

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 02

Schema bsb-kwy xsd

Załącznik nr 14 Struktura logiczna korekty informacji podsumowującej o dokonanych wewnątrzwspólnotowych dostawach/nabyciach towarów (VAT-UEK)

Technologie zarządzania treścią

SCHEMAT DOKUMENTÓW OTRZYMYWANYCH Z ZUS ZAWIERAJĄCYCH INFORMACJE ZGROMADZONE W SYSTEMIE INFORMATYCZNYM ZUS

XML extensible Markup Language. część 4

Wprowadzenie do technologii XML

Technologie internetowe

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

DTD - encje ogólne i parametryczne, przestrzenie nazw

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Dictionaries. <?xml version="1.0" encoding="utf-8"?> <xs:schema attributeformdefault="unqualified" elementformdefault="unqualified"

Rozdział 1 Cel dokumentu Rozdział 2 Deklaracja Rozdział 3 Nagłówek Rozdział 4 Podmiot Rozdział 5 FATCA...

29. Poprawność składniowa i strukturalna dokumentu XML

PL URZĄD MIASTA SZCZECIN N NOF WPiOL/1111/W/123456/2013 KOWALSKI JAN, FELCZAKA 1A SZCZECIN PLN

TWORZENIE SCHEMATU XML

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML i nowoczesne metody zarządzania treścią

XML DTD XML Schema CSS

Schematy aplikacyjne UML i GML dla mapy zasadniczej oraz Modelu Podstawowego. Rozdział 1 Założenia podstawowe

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Implementacja schematów i statycznej kontroli typów w systemie JLoXiM

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Plan prezentacji. XML Schema Definition Language (XSD) Zalety i wady Schematów XML. Ogólna charakterytyka XML Schema. Wstęp

XML extensible Markup Language. Paweł Chodkiewicz

Dlaczego GML? Gdańsk r. Karol Stachura

XML w bazach danych i bezpieczeństwie

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

elektroniczna Platforma Usług Administracji Publicznej

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

UCHWAŁA NR VII/.../2015 RADY GMINY PORĄBKA. z dnia 2 czerwca 2015 r.

kdpw_stream Struktura komunikatu: Potwierdzenie obsługi komunikatu blokady (acmt.bls ) Data utworzenia: r.

Normalizacja baz danych

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Diagramy klas. dr Jarosław Skaruz

Paweł Kurzawa, Delfina Kongo

XML extensible Markup Language. część 3

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

Załącznik Nr 2 do Uchwały Nr XXVI/172/13 Rady Miasta Jedlina-Zdrój z dnia r.

Projektowanie Systemów Informacyjnych

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

kdpw_stream Struktura komunikatu: Potwierdzenie obsługi komunikatu blokady (acmt.bls ) Data utworzenia: r.

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Systemy baz danych. mgr inż. Sylwia Glińska

1 Wstęp do modelu relacyjnego

Model semistrukturalny

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Implementacja reguł integralności w XML-owych bazach danych

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Transkrypt:

XML Schema Motywacja, struktura schematu, typy złożone Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Dlaczego nie DTD? Zastosowania XML-a w elektronicznej wymianie danych: przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujace daje spore oszczędności, 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Roger L. Costello, XML Schema Tutorial Cechy DTD: niemal brak kontroli nad tekstowa zawartościa elementów i wartościami atrybutów, bardzo ogólne metody definiowania częstości wystapień.

Porównanie DTD i XML Schema DTD pochodzacy z SGML specyficzna składnia 10 typów danych brak kontroli tekstowej zawartości elementów niewielka dla atrybutów modularność tylko na poziomie tekstu DTD (encje parametryczne) XML Schema zaprojektowany dla XML składnia XML 44 wbudowane typy proste zaawansowana kontrola tekstowej zawartości elementów i atrybutów modularność na poziomie pojęć abstrakcyjnych (własne typy zawartości, grupy, import) Status XML Schema 15 lutego 1999: Dokument W3C opisujacy wymagania. 2 maja 2001: XML Schema oficjalna rekomendacja W3C: XML Schema Part 0: Primer, XML Schema Part 1: Structures, XML Schema Part 2: Datatypes. Obecnie prace nad wersj a 1.1 XML Schema (status: working draft).

Prosty przykład schematu <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="osoba"> <xs:complextype> <xs:element name="imię" type="xs:string" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="wiek" type="xs:positiveinteger" use="optional"/> </xs:schema> element główny schematu przestrzeń nazw XML Schema deklaracja elementu (globalna) deklaracja elementu (lokalna) określenie liczności elementów deklaracja atrybutu określenie (nie)obowiazkowości atrybutu Typy w XML Schema Elementy i atrybuty maja w schemacie określony typ zawartości. Typy zwn. zasięg definicji: nazwane, anonimowe. Typy zwn. pochodzenie: predefiniowane (przez standard), definiowane w schemacie. Typy zwn. zawartość: proste, złożone, o zawartości: pustej, prostej, elementowej (złożonej), mieszanej.

Typy nazwane i anonimowe Typy nazwane <xs:complextype name="osobatyp"> <xs:element name="imię" type="xs:string"/> </xs:sequence> <xs:element name="osoba" type="osobatyp"/> Typy anonimowe <xs:element name="osoba"> <xs:complextype> <xs:element name="imię" type="xs:string"/> </xs:sequence> Typy nazwane i anonimowe kiedy stosować? Typy nazwane ten sam typ stosowany dla wielu elementów / atrybutów, typ stanowi podstawę zawężeń / rozszerzeń, także w potencjalnych przyszłych rozszerzeniach schematu! Typy anonimowe typ występujacy tylko w jednym miejscu schematu, nie stanowiacy podstawy dla innego typu.

Deklaracje globalne i lokalne Deklaracje globalne <xs:element name="imię" type="xs:string"/> <xs:complextype name="osobatyp"> <xs:element ref="imię" maxoccurs="3"/> <xs:element ref="nazwisko"/> </xs:sequence> Deklaracje lokalne <xs:complextype name="osobatyp"> <xs:element name="imię" maxoccurs="3" type="xs:string"/> </xs:sequence> Deklaracje globalne i lokalne kiedy stosować? Deklaracje globalne element (atrybut) występujacy w wielu miejscach schematu z tym samym typem zawartości, także w potencjalnych przyszłych rozszerzeniach schematu! Deklaracje lokalne element (atrybut) tylko w jednym miejscu schematu, w różnych miejscach z różnym typem zawartości...

Deklaracje lokalne z różnym typem zawartości możliwość użycia tej samej nazwy dla różnych (semantycznie i strukturalnie) elementów i atrybutów, naturalne w przypadku atrybutów, mylace w przypadku elementów używać z rozsadkiem. Przykład <xs:element name="a"> <xs:complextype> <xs:element name="c" type="xs:positiveinteger"/> </xs:sequence> <xs:element name="b"> <xs:complextype> <xs:element name="c" type="xs:negativeinteger"/> </xs:sequence> <a><c>12</c></a> <b><c>-9</c></b> Typy złożone i proste Typ złożony <xs:complextype name="osobatyp"> <xs:element name="imię" type="xs:string"/> </xs:sequence> <xs:element name="osoba" type="osobatyp"/> Typ prosty <xs:simpletype name="plectyp"> <xs:restriction base="xs:string"> <xs:enumeration value="k"/> <xs:enumeration value="m"/> </xs:restriction> </xs:simpletype> <xs:attribute name="płeć" type="plectyp"/>

Typy proste i złożone kiedy używać? Typy złożone struktura (podelementy, atrybuty), odpowiednie dla elementów. Typy proste zawartość tekstowa, odpowiednie dla atrybutów i elementów, wiele typów predefiniowanych, możliwość definiowania własnych typów. Typy złożone rodzaje zawartości Zawartość elementowa: <osoba PESEL="12345678901"> <imię>jan</imię> <nazwisko>kowalski</nazwisko> </osoba> Zawartość pusta: <osoba PESEL="12345678901"/> Zawartość prosta: <masa jm="kg">10.55</masa> Zawartość mieszana: <treść>w <j>pascalu</j> przypisanie ma postać <kod>x := 5</kod>, natomiast w <j>c</j> <kod>x = 5</kod>.</treść>

Definiowanie zawartości elementowej Grupy deklaracji (model groups) sequence, choice, all. Zagnieżdżanie grup sequence i choice <xs:complextype name="osobatyp"> <xs:choice> <xs:element name="imię" type="xs:string"/> </xs:sequence> <xs:element name="pseudonim" type="xs:string"/> </xs:choice> Liczność wystapień Atrybuty minoccurs i maxoccurs. Dla podelementów oraz grup. Wartość unbounded dla maxoccurs. Domyślna liczność: dokładnie 1. Sztuczny przykład <xs:complextype name="dwieosobytyp"> <xs:choice minoccurs="2"> <xs:element name="imię" type="xs:string" minoccurs="0" maxoccurs="3"/> </xs:sequence> <xs:element name="pseudonim" type="xs:string"/> </xs:choice>

Modele (nie)deterministyczne Model niejednoznaczny: Nawet znajac cały dokument nie jesteśmy w stanie wskazać które deklaracje w schemacie odpowiadaja elementom w dokumencie. (a,a)* (a,a,a)* Model niedeterministyczny: Czytajac dokument od poczatku gdy pojawia się pewien znacznik otwierajacy nie jesteśmy w stanie wskazać która deklaracja w schemacie odpowiada bieżacemu elementowi w dokumencie (bez czytania dalej dokumentu). (a,a?,a?) (a,b)+,a? Modele definiowane w XML Schema musza być deterministyczne: Czytajac dowolny dokument od poczatku gdy pojawia się pewien znacznik otwierajacy jesteśmy w stanie wskazać która deklaracja w schemacie odpowiada bieżacemu elementowi w dokumencie (bez czytania dalej dokumentu). (a,(a,a?)?) Grupa all Wszystkie podelementy w dowolnej kolejności. maxoccurs podelementów <= 1. Brak udziału w zagnieżdżeniach. Przykład <xs:complextype name="daneosobowetyp"> <xs:all> <xs:element name="pesel" type="peseltyp"/> <xs:element name="dowód" type="dowódtyp"/> <xs:element name="paszport" type="paszporttyp" minoccurs="0"/> </xs:all>

Nazwane grupy elementów <xs:group name="współrzędne"> <xs:element name="x" type="xs:double"/> <xs:element name="y" type="xs:double"/> </xs:sequence> </xs:group> <xs:element name="punkt"> <xs:complextype> <xs:group ref="współrzędne"/> </xs:sequence> <xs:element name="koło"> <xs:complextype> <xs:group ref="współrzędne"/> <xs:element name="r" type="xs:double"/> </xs:sequence> Deklaracje atrybutów Deklaracje globalne i lokalne. W definicji typu złożonego za określeniem typu zawartości. Przykład <xs:attribute name="nr" type="positiveinteger"/> <xs:complextype name="osobatyp">... </xs:sequence> <xs:attribute name="pesel" type="peseltyp"/> <xs:attribute name="płeć"> <xs:simpletype>... </xs:simpletype> </xs:attribute> <xs:attribute ref="nr"/>

Obowiazkowość i wartości domyślne use required, optional, prohibited. default lub fixed wartość domyślna lub ustalona. Przykład <xs:complextype name="osobatyp">... </xs:sequence> <xs:attribute name="pesel" type="peseltyp" use="required"/> <xs:attribute name="płeć" default="k"> <xs:simpletype>... </xs:simpletype> </xs:attribute> <xs:attribute ref="nr" fixed="123"/> Nazwane grupy atrybutów <xs:attributegroup name="atrybuty-krawędzi"> <xs:attribute name="kolor-krawędzi" type="kolortyp"/> <xs:attribute name="grubość-krawędzi" type="xs:positiveinteger"/> </xs:attributegroup> <xs:attributegroup name="atrybuty-powierzchni"> <xs:attribute name="kolor-powierzchni" type="kolortyp"/> </xs:attributegroup> <xs:element name="koło"> <xs:complextype>... </xs:sequence> <xs:attributegroup ref="atrybuty-krawędzi"/> <xs:attributegroup ref="atrybuty-powierzchni"/> <xs:element name="odcinek"> <xs:complextype>... </xs:sequence> <xs:attributegroup ref="atrybuty-krawędzi"/>

Elementy czy atrtybuty? Przesłanki strukturalne Elementy konieczne gdy: liczność większa od 1, wewnętrzna struktura (podelemety), także w potencjalnych przyszłych rozszerzeniach schematu! Zalety atrybutów: zwięzłość zapisu, wartości domyślne, w DTD dostępne typy zawartości NMTOKEN, ID, IDREF (w XML Schema bez znaczenia). Elementy czy atrtybuty? Przesłanki semantyczne Informacje modelowane zwykle w elementach: zawartość (elementy semantyczne, np. nazwisko, nazwa leku, adres), struktura (np. rozdział, akapit, tytuł, lista), wyszukiwanie (np. termin do indeksu, glosariusza, a także elementy dedykowane), odesłania (np. hiperlinki, noty, przypisy). Informacje modelowane zwykle w atrybutach: metainformacje (np. jednostka miary, waluta, język, priorytet), identyfikatory wartości i odwołania do nich.

Typy złożone rodzaje zawartości Zawartość elementowa: <osoba PESEL="12345678901"> <imię>jan</imię> <nazwisko>kowalski</nazwisko> </osoba> Zawartość pusta: <osoba PESEL="12345678901"/> Zawartość prosta: <masa jm="kg">10.55</masa> Zawartość mieszana: <treść>w <j>pascalu</j> przypisanie ma postać <kod>x := 5</kod>, natomiast w <j>c</j> <kod>x = 5</kod>.</treść> Definiowanie zawartości pustej Schemat <xs:complextype name="osobatyp"> <xs:attribute name="pesel" type="peseltyp"/> Dokument <osoba PESEL="12345678901"/> <masa jm="kg">10.55</masa> <treść>w <j>pascalu</j> przypisanie ma postać <kod>x := 5</kod>, natomiast w <j>c</j> <kod>x = 5</kod>.</treść>

Definiowanie zawartości prostej Schemat <xs:complextype name="masatyp"> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name="jm" type="xs:string"/> </xs:extension> </xs:simplecontent> Dokument <masa jm="kg">10.55</masa> Definiowanie zawartości mieszanej (1) Ważna liczność i kolejność <xs:complextype name="zamówienietyp" mixed="true"> <xs:element ref="towar" maxoccurs="unbounded"/> <xs:element ref="adres" /> </xs:choice> Dokument <zamówienie> Zamawiam <towar>pączka</towar> i <towar>kawę</towar>. Proszę przysłać na <adres>banacha 2</adres>. </zamówienie>

Definiowanie zawartości mieszanej (2) Jak w DTD <xs:complextype name="tresctyp" mixed="true"> <xs:choice maxoccurs="unbounded"> <xs:element name="j" type="xs:string"/> <xs:element name="kod" type="xs:string"/> </xs:choice> Dokument <treść>w <j>pascalu</j> przypisanie ma postać <kod>x := 5</kod>, natomiast w <j>c</j> <kod>x = 5</kod>.</treść> ID i IDREF Typy atrybutów w DTD, dostępne także w XML Schema. ID: nazwa w sensie XML, żaden inny atrybut o typie ID nie może mieć tej samej wartości, IDREF: jakiś atrybut o typie ID w dokumencie musi mieć równa wartość. Ograniczenia: tylko nazwy (w szczególności nie numery), jedna przestrzeń identyfikatorów dla wszystkich elementów, tylko atrybuty.

Klucze i referencje Więzy integralności (identity constraints) w XML Schema: unique wartości w ramach określonego zakresu unikatowe, key wartości w ramach określonego zakresu unikatowe i niepuste, keyref odwołanie do wartości wskazanego klucza. Zalety w porównaniu z atrybutami typu ID / IDREF: dowolny typ zawartości (nie tylko nazwa), możliwych wiele niezależnych od siebie ograniczeń, odwołanie do konkretnego klucza, kombinacje wartości (krotki), kontrolowane zawartości elementów, nie tylko atrybutów. Klucze i referencje <xsd:element name="zamówienia-i-faktury" type="zamówieniafakturytyp"> <xsd:unique name="fakturaid"> <xsd:selector xpath="faktury/faktura"/> <xsd:field xpath="@nr"/> <xsd:field xpath="rok"/> </xsd:unique> <xsd:keyref name="zamówienieref" refer="zamówienieid"> <xsd:selector xpath="faktury/faktura/do-zamówienia"/> <xsd:field xpath="@nr"/> </xsd:keyref> <xsd:key name="zamówienieid"> <xsd:selector xpath="zamówienia/zamówienie"/> <xsd:field xpath="numer"/> </xsd:key> </xsd:element>