Wprowadzenie do XML schema



Podobne dokumenty
XML extensible Markup Language. część 4

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

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

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

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

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

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

- 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

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

XML extensible Markup Language. część 2

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

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

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

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

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

Przykładowy dokument XML

Rola języka XML narzędziem

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

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

Schema bsb-kwy xsd

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Wprowadzenie do technologii XML

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. część 4

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

<xs:element minoccurs="1" name="rok"> <xs:simpletype> <xs:restriction base="xs:gyear">

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

Schematy XML. Tomasz Traczyk.

XML Schema w przykładach

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

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

Elementy struktur MiCOMP_VAT

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

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

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

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

UCHWAŁA NR XXIV/163/13 RADY MIASTA JEDLINA-ZDRÓJ. z dnia 7 marca 2013 r.

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

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

UCHWAŁA NR 36/IX/15 RADY GMINY WISKITKI. z dnia 24 czerwca 2015 r.

Wprowadzenie do technologii XML

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

UCHWAŁA NR VI/32/15 RADY MIASTA JEDLINA-ZDRÓJ. z dnia 30 kwietnia 2015 r.

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

XML extensible Markup Language. Paweł Chodkiewicz

DTD - encje ogólne i parametryczne, przestrzenie nazw

TWORZENIE SCHEMATU XML

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

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

XML i nowoczesne technologie zarządzania treścią

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Technologie zarządzania treścią

Uradni list Republike Slovenije

elektroniczna Platforma Usług Administracji Publicznej

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

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

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Załącznik Nr 1 do uchwały Nr LV/66/2014 Rady Miasta Ostrowca Świętokrzyskiego z dnia 30 kwietnia 2014 r.

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

Dokumentacja platformy format źródłowy epcollxml. epodreczniki.pl

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

Katalog książek cz. 2

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Schema Schemat_JPK_PKPIR_v1-0.xsd

Olsztyn, dnia 5 sierpnia 2014 r. Poz UCHWAŁA NR XLVI/14/2014 RADY MIEJSKIEJ W MRĄGOWIE. z dnia 26 czerwca 2014 r.

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

UCHWAŁA NR XL/347/2014 RADY GMINY BARTOSZYCE. z dnia 30 kwietnia 2014 r.

asciciele_wnio_trescdokumentu_deklaracja_naglowek_type"></xs:element> </xs:sequence> </xs:complextype> <xs:complextype

(Dz. U. z dnia 17 listopada 2006 r.)

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

E-paczka, czyli wysyłam dokumenty do e-urzędu.

Definicja struktury danych XSD dla opisu wzorów dokumentów elektronicznych przyjmowanych w Centralnym Repozytorium Dokumentów

UCHWAŁA NR XLIV/473/2014 RADY GMINY PODEGRODZIE. z dnia 26 sierpnia 2014 r.

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

SZCZEGÓŁOWY OPIS INTERFEJSU WYMIANY DANYCH

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 i nowoczesne metody zarządzania treścią

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

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

UCHWAŁA NR XXXVI RADY MIEJSKIEJ W ANDRYCHOWIE. z dnia 20 czerwca 2013 r.

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

UCHWAŁA NR XVII RADY MIASTA MIŃSK MAZOWIECKI. z dnia 27 czerwca 2016 r.

Integracja Obieg Dokumentów - GiS Spis treści

Uchwała Nr 23/IV/2014 Rady Miasta Ostrołęki z dnia 30 grudnia 2014 r.

XML DTD XML Schema CSS

Warszawa, dnia 2 marca 2017 r. Poz. 461 ROZPORZĄDZENIE MINISTRA ROZWOJU I FINANSÓW 1) z dnia 27 lutego 2017 r.

Specyfikacja techniczna pliku wymiany danych

UCHWAŁA NR 75.IX.2015 RADY MIASTA CZĘSTOCHOWY. z dnia 19 marca 2015 r.

GML w praktyce geodezyjnej

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Model semistrukturalny

Transkrypt:

Spis treści Tomasz Przechlewski 1. Podstawowe pojęcia. 1 2. Typy proste.. 3 3. Wzorzec regułowy 4 4. Typy złożone 5 5. Modele o prostej zawartości 5 6. Modele o złożonej zawartości. 6 7. Rozszerzanie modelu złożonego (derivation by extension).. 7 8. Ograniczanie modelu złożonego (derivation by restriction). 7 9. Zawartość mieszana (mixed content model) 7 10. Zawartość pusta (empty content model) 7 11. Definiowanie wartości niepowtarzalnych 8 12. Dołączanie dokumentów zewnętrznych.. 9 13. Dokumentacja/oprogramowanie. 9 1. Podstawowe pojęcia Przykładowy dokument: <?xml version="1.0" encoding='iso-8859-2'?> <library> <book id="b0836217462" available="true"> <isbn>0836217462</isbn> <title lang="pl">wstęp do imagineskopii</title> <author id="sop"> <name>śledź otrębus podgrobelski</name> <born>1922-11-26</born> </author> </book> </library> Schemat XML (xml schema): <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> Deklarowanie liczby wystąpień w przypadku elementów odbywa się za pomocą nadania odpowiednich wartości atrybutom maxoccurs, minoccurs; w przypadku atrybutów służy do tego atrybut use (o wartościach: required, optional, fixed, prohibited). Elementy-dzieci elementu `schema' są globalne, pozostałe są lokalne. Elementy globalne mogą być wstawiane w inne miejsca schematu za pomocą konstrukcji z atrybutem ref. Elementy globalne nie mogą wstawiać innych elementów globalnych (tj. 1

atrybutu ref); nie mogą deklarować liczby wystąpień (atrybuty maxoccurs, minoccurs oraz use, przy czym ten ostatni dotyczy atrybutów). Elementy lokalne nie mogą być wstawiane za pomocą ref. Kwalifikowanie nazw (atrybuty elementformdefault, attributeformdefault oraz form odnosi się wyłącznie do elementów lokalnych. <xs:element name="name" type="xs:string"> <xsd:annotation> <xsd:documentation xml:lang="pl"> Nazwisko i imię autora książki. </xsd:documentation> </xsd:annotation> </xs:element> <xs:element name="born" type="xs:date"/> <xs:element name="isbn" type="xs:string"/> <xs:attribute name="id" type="xs:id"/> <xs:attribute name="available" type="xs:boolean"/> <xs:attribute name="lang" type="xs:language"/> <xs:element name="title"> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute ref="lang"/> </xs:extension> </xs:simplecontent> <xs:element name="library"> <xs:element ref="book" maxoccurs="unbounded"/> <xs:element name="author"> <xs:element ref="name"/> <xs:element ref="born"/> <xs:element ref="dead" minoccurs="0"/> <xs:attribute ref="id"/> <xs:element name="book"> <xs:element ref="isbn"/> <xs:element ref="title"/> <xs:element ref="author" minoccurs="0" maxoccurs="unbounded"/> <xs:attribute ref="id"/> <xs:attribute ref="available"/> </xs:schema> 2

<?xml version='1.0'?> <xs:schema xmlns='http://www.w3.org/2001/xmlschema" targetnamespace='http://url' xmlns='http://url' elementformdefault='qualified' <!-- lub attr form --> attributeformdefault='qualified' > <!-- ditto --> </xs:schema> deklaracja schematu w dokumencie (nieobowiązkowa): <?xml version='1.0'?> <element xmlns:xsi='http://www.w3.org/2001/xmlschema-instance" xsi:nonamespacelocation="plik.xsd" <!-- lub: --> xsi:schemalocation="http://url plik.xsd" > 2. Typy proste simple types, (atrybuty mogą mieć tylko proste typy): wbudowane (predefiniowane): xs:string napis; xs:token #x9 (tab), #xa (linefeed), oraz #xd (carriage return) są zamieniane na #20 (odstęp) oraz kolejne odstępy są zamieniane na jeden; xs:language kody języków zdefiniowane w RFC 1766, np.: en, en-us, pl-pl; xs:nmtoken ciąg znaków bez znaków odstępu; xs:name ciąg znaków bez odstępu i zaczynający się od litery, : lub -; xs:ncname jak xs:name ale znaki : są zabronione; xs:id jak xs:ncname, ale wartość musi być unikatowa w obrębie dokumentu (atrybuty/elementy) xs:idref -- jak xs:ncname, musi być w dokumencie atrybut/element typu ID o identycznej wartości; xs:decimal, xs:integer, xs:float, xs:boolean xs:date, xs:time xs:nmtokens, xs:idrefs, xs:entities 3

definiowane: poprzez dodawanie ograniczeń (by restriction). Ograniczenia noszą nazwę aspektów (facets). Technicznie ograniczenie wartości elementu bazowego (do którego można się odwołać za pomocą atrybutu base) definiowane jest za pomocą elementu xs:restriction zawierającego jako elementy podrzędne elementy określające odpowiednie aspekty. <xs:simpletype name="myinteger"> <xs:restriction base="xs:integer"> <xs:mininclusive value="-2"/> <xs:maxexclusive value="5"/> </xs:restriction></xs:simpletype> <!-- lub: --> <xs:simpletype name="myinteger"> <xs:restriction> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:maxexclusive value="5"/> </xs:restriction> </xs:simpletype> <xs:mininclusive value="-2"/> </xs:restriction></xs:simpletype> przykłady aspektów: xs:enumeration, xs:length, xs:pattern przez tworzenie list (lists): <xs:simpletype name="integerlist"> <xs:list itemtype="xs:integer"/> </xs:simpletype> przykładami tego typu danych są predefiniowane typy: IDREFS, ENTITIES, and NMTOKENS: <xs:simpletype name="nazwa"> <xs:list itemtype="xs:token"/> </xs:simpletype> przez tworzenie kombinacji (unions): <xs:simpletype name='nazwa'> <xs:union membertypes="xs:integer xs:date" /> </xs:simpletype> 3. Wzorzec regułowy Działa na poziomie lexical space, a nie value space. Przykłady: <xs:simpletype name="mybyte"> <xs:restriction base="xs:byte"> 4

<xs:enumeration value="1"/> <xs:enumeration value="5"/> <xs:enumeration value="15"/> </xs:restriction></xs:simpletype> wartości poprawne: 1, 5, 15, 015, 00005 itp <xs:simpletype name="mybyte"> <xs:restriction base="xs:byte"> <xs:pattern value="1"/> <xs:pattern value="5"/> <xs:pattern value="15"/> </xs:restriction></xs:simpletype> wartości poprawne: 1, 5, 15 (tylko). znaki specjalne:., +,?, *, [^-], (a b), \n, \r, \t, {n,m}. <xs:simpletype name="mybyte"> <xs:restriction base="xs:byte"> <xs:pattern value="1 5 15"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="multipleoften"> <xs:restriction base="xs:integer"> <xs:pattern value=".*0"/> </xs:restriction> </xs:simpletype> <!-- inne wzorce (numer u-boota, adres url z domeny.pl): U-[1-5][0-9]{0-3}.*\.pl --> 4. Typy złożone Typy proste opisują węzły tekstowe (elementy lub atrybuty). Typy złożone opisują strukturę dokumentu. Typy złożone mogą mieć prosty lub złożony model zawartości. Oprócz tego wyróżnia się model o mieszanej zawartości (mixed content) i pustej zawartości. 5. Modele o prostej zawartości Typy złożone o prostej zawartości powstają przez dodanie listy atrybutów do prostego typu. <xs:element name="title"> <xs:simplecontent> <xs:extension base="string255"> <xs:attribute ref="lang"/> </xs:extension> </xs:simplecontent> 5

6. Modele o złożonej zawartości Modele o złożonej zawartości są tworzone za pomocą definiowania listy elementów i atrybutów. Typowo definicja jest zawarta wewnątrz elementu xs:complextype i zawiera jeden z następujących elementów: xs:sequence, xs:choice, xs:all. Każdy z tych elementów zawiera z kolei elementy składowe (particles) Elementy xs:sequence, xs:choice mogą posiadać atrybuty minoccurs oraz maxoccurs. Elementy te mogą także wystąpić jako elementy składowe (tj. mogą być zagnieżdżone). Elementy składowe to xs:element, xs:sequence, xs:choice, xs:any i xs:group. <xs:element name="author"> <xs:choice> <xs:element ref="name"/> <xs:element ref="first-name"/> <xs:element ref="middle-name" minoccurs="0"/> <xs:element ref="last-name"/> </xs:choice> <xs:element ref="born"/> <xs:element ref="dead" minoccurs="0"/> <xs:attribute ref="id"/> Grupy elementów i atrybutów. Definicje te muszą być nazwane i globalne. <xs:group name="name"> <xs:choice> <xs:element ref="name"/> <xs:element ref="first-name"/> <xs:element ref="middle-name" minoccurs="0"/> <xs:element ref="last-name"/> </xs:choice> </xs:group> <xs:element name="author"> <xs:group ref="name"/> <xs:element ref="born"/> <xs:attribute ref="id"/> Grupy atrybutów mogą być definiowane w analogiczny sposób: 6

<xs:attributegroup name="bookattributes"> <xs:attribute name="id" type="xs:id"/> <xs:attribute name="available" type="xs:boolean"/> </xs:attributegroup> <xs:element name="book"> <xs:element ref="isbn"/> <xs:element ref="title"/> <xs:element ref="author" minoccurs="0" maxoccurs="unbounded"/> <xs:attributegroup ref="bookattributes"/> 7. Rozszerzanie modelu złożonego (derivation by extension) Funkcjonalnie podobne do połączeniu grup elementów oraz atrybutów. W opinii wielu lepiej nie korzystać. 8. Ograniczanie modelu złożonego (derivation by restriction) Wymaga pełnego zdefiniowania modelu zawartości (za wyjątkiem atrybutów, które można deklarować jako 'prohibited'), który musi być ograniczeniem modelu wyjściowego (base type). Każda wartość zgodna z typem ograniczonym musi być zgodna z typem bazowym. W opinii wielu lepiej nie korzystać. 9. Zawartość mieszana (mixed content model) <xs:element name='nazwa'> <xs:complextype mixed='true'> <xs:choice minoccurs='0' maxoccurs='unbounded'> <xs:element ref='nazwa'/> <xs:element ref='nazwa'/> </xs:choice> <xs:attribute ref='nazwa'/> 10. Zawartość pusta (empty content model) 7

<xs:element name='nazwa'> <xs:attribute ref='nazwa'/> <xs:attribute ref='nazwa'/> Wprowadzenie 11. Definiowanie wartości niepowtarzalnych za pomocą xs:id oraz xs:idref za pomocą kluczy (element xs:key) oraz wartości unikatowych (element xs:unique). Przykład: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" > <xs:element name="list"> <xs:element maxoccurs="unbounded" ref="book"/> </xs:complextype> <!-- książki mają unikatowe numery isbn --> <xs:unique name='book'> <xs:selector xpath='book'/> <xs:field xpath='@isbn'/> </xs:unique> <!-- see wskazuje na isbn wew. book --> <xs:keyref name='bbk' refer='book'> <xs:selector xpath='book'/> <xs:field xpath='see'/> </xs:keyref> </xs:element> <xs:element name="book"> <xs:element name="author" type="xs:string" maxoccurs='unbounded' /> <xs:element name="title" type="xs:string" /> <xs:element name="see" type="xs:string" /> <xs:element name="description" type="xs:string" /> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> <!-- lista autorów dla książki ma być niepowtarzalna --> <xs:unique name='authorbook'> <xs:selector xpath='author'/> <xs:field xpath='.'/> </xs:unique> </xs:element> </xs:schema> klucze (element key) nie mogą być puste, elementy unique mogą. 8

12. Dołączanie dokumentów zewnętrznych <xs:include schemalocation="rowery-czesci.xsd"/> <xs:import namespace="http://www.rowery.com.pl/ns/czesci" schemalocation="parts.xsd"/> Oparty o XPointer standard XInclude ma zastąpić encje zewnętrzne. Najważniejsze różnice: dołączanych fragmentów nie trzeba deklarować oraz możliwe jest dołączenie fragmentu dokumentu XML. 13. Dokumentacja/oprogramowanie Xerces, http://www.apache.org/xerces/ (samples/sax/counter.java) Trang, http://www.thaiopensource.com/download/ David C. Fallside: XML Schema Part 0: Primer, W3C Recommendation, 2 May 2001 http://www.w3.org/tr/xmlschema-0/ Kohsuke Kawaguchi: W3C XML Schema: DOs and DON'Ts http://www.xml.com/ pub/a/2001/06/06/schemasimple.html. Ten dokument w formacie: pdf [./xml-schema.pdf] oraz xml [./xml-schema.xml]. 9