Politechnika Koszalińska

Podobne dokumenty
- 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

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

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

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

XML Schema w przykładach

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

Schematy XML. Tomasz Traczyk.

XML i nowoczesne metody zarządzania treścią

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

Przykładowy dokument XML

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

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

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

Załącznik nr 5 do Uchwały Nr Rady Miasta Konina z dnia. r.

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

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

XML i nowoczesne metody zarządzania treścią

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

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

Rola języka XML narzędziem

DTD - encje ogólne i parametryczne, przestrzenie nazw

BGK Zlecenia (Ferryt Enterprise)

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

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

XML extensible Markup Language. część 4

Wprowadzenie do XML schema

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

XML DTD XML Schema CSS

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

XML extensible Markup Language. Paweł Chodkiewicz

Rzeszów, dnia 18 czerwca 2015 r. Poz UCHWAŁA NR IX RADY MIEJSKIEJ W BOGUCHWALE. z dnia 28 maja 2015 r.

COAJRM5D.XSD <?xml version="1.0" encoding="windows-1250"?> <xsd:schema xmlns:xsd=" version="1.0">

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

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

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Format danych tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap Instrukcja

Wprowadzenie do technologii XML

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

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

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

XML i nowoczesne technologie zarządzania treścią

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

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

Załączniki do rozporządzenia Ministra Finansów z dnia 2011 r. (poz. ) Załącznik nr 1. Struktura logiczna urzędowego poświadczenia odbioru

Metody reprezentacji informacji Przedmiot:

ZARZĄDZENIE NR RZ BURMISTRZA MIASTA PYSKOWICE. z dnia 10 lutego 2017 r.

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

Załączniki do rozporządzenia Ministra Finansów z dnia grudnia 2010 r. (poz. ) Załącznik nr 1

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

XML i nowoczesne metody zarządzania treścią

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

Warszawa, dnia 5 stycznia 2012 r. Pozycja 18 ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia 3 stycznia 2012 r.

Format elektroniczny deklaracji o wysokości opłaty za gospodarowanie odpadami komunalnymi oraz układ informacji i powiązań między nimi

<xsd:import namespace=" schemalocation="

<xsd:import namespace=" schemalocation="

Dokumenty elektroniczne w administracji publicznej - generaliter

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

Stona 3/26. Organ właściwy do złożenia deklaracji </xsd:documentation> </xsd:annotation> </xsd:element>

UCHWAŁA NR XXIV/381/16 RADY MIASTA MYSŁOWICE. z dnia 1 września 2016 r.

XML extensible Markup Language. część 2

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

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

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

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

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

XML i nowoczesne metody zarządzania treścią

Projekt z dnia 20 grudnia 2006 r. ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia 2007 r.

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

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie. 6 października 2016

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

Struktura logiczna zgłoszenia aktualizacyjnego osoby fizycznej nieprowadzącej samodzielnie działalności gospodarczej (NIP-3)

Rozprawa doktorska mgr Dariusza Mikułowskiego, pt. Koncepcja i realizacja rozproszonych ontologii w systemie entish

Załącznik nr 5 do uchwały nr 245/2016 Rady Miasta Siemianowic Śląskich z dnia UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W DO-2 DEKLARACJA O

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

PL_ADMINISTRACJA (ustawodawstwo)

Schema Schemat_JPK_PKPIR_v1-0.xsd

XML extensible Markup Language. część 3

Technologie zarządzania treścią

UCHWAŁA NR RADY GMINY PANKI. z dnia 7 lipca 2016 r.

Bez tytułu <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="

Dlaczego GML? Gdańsk r. Karol Stachura

Gorzów Wielkopolski, dnia 29 czerwca 2016 r. Poz UCHWAŁA NR RADY MIEJSKIEJ W SULECHOWIE. z dnia 21 czerwca 2016 r.

Nazwa pliku XSD:

Schema Schemat_JPK_EWP_v1-0.xsd

XML. Æwiczenia praktyczne

Uchwała XXXVIII/775/2013 Rady Miejskiej w Gliwicach. z dnia 7 listopada 2013 rok

XML extensible Markup Language. część 1

Załącznik nr 5 do uchwały Nr XXXVIII/775/2013 Rady Miejskiej w Gliwicach z dnia 07 listopada 2013 r.

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

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

Dokumentacja podłączeniowa dla procesu przenoszenia danych osobowych. Czyli opis jak skorzystać z usługi: rodotransferservice

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

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

UCHWAŁA NR XXII/544/2016 RADY MIASTA GLIWICE. z dnia 15 grudnia 2016 r.

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Transkrypt:

mgr inż.. Robert Berezowski e-mail: beny@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój j 223A 3 Politechnika Koszalińska ska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 1

Spis treści Przestrzenie nazw Idea schematów DTD XMLSchema W3C Cechy XMLSchema Deklaracja elementów Treści (typy) w XMLSchema Ograniczenia zakresów Deklaracja atrybutów Typy złożone Rozszerzanie i zawężanie typów złożonych Komentarze 2

Przestrzenie nazw Za pomocą XML można deklarować języki (schematy) w różnych zastosowaniach. W różnych zastosowaniach te same <znaczniki> mogą odpowiadać różnym danym: <lekarz> <imie/>, <nazwisko/> <pacjent> <imie/>, <nazwisko/> Jeżeli mamy wpływ na projektowanie znaczników to możemy zmienić nazwy (<imie.lekarz>, <nazwisko.pacjent>) ale Często korzystamy z gotowych schematów, gdzie nie można zmienić <znaczników> i powstaje konflikt nazw Rozwiązanie Przestrzeń nazw (XML namespaces) 3

Przestrzenie nazw <lekarz> <imie/>, <nazwisko/> lekarz:http://qqq.url.pl/lekarz.dtd <lekarz:imie/>, < lekarz:nazwisko/> <pacjent> <imie/>, <nazwisko/> pacjent:http://qqq.url.pl/lekarz.dtd <pacjent:imie/>, <pacjent:nazwisko/> Specyfikacja: http://www.w3.org/tr/rec-xml-names 4

Przestrzenie nazw Deklaracja: <przedrostek:nazwa.elementu xmlns:przedrostek= adres > nazwa.elementu najczęściej jest to element główny dokumentu, przedrostek dodatkowy skrót z jakim będą używane kolejne elementy o dowolna, poprawna nazwa XML, o nie może zawierać znaku :, o nie można użyć słowa xml, xmlns, adres zaleca się użycie adresu URL gdzie znajduje się opis struktury, której chcemy użyć. <xsl:stylesheet xmlns:xsl= http://www.w3.org/xsl/transform/1.0 > <xsd:schema xmlns:xsd= http://www.w3.org/1999/xmlschema > Domyślna przestrzeń nazw: <schema xmlns= http://www.w3.org/1999/xmlschema > Użycie <przedrostek:nazwa.elementu> <xsl:template>, <xsl:apply-templates>, <xsl:value-of> <xsd:schema>, <xsd:element>, <xsd:complextype> 5

Przestrzenie nazw Przestrzenie standardowe - przedrostki: html -> HTML lub XHTML; xlink -> XLink; xsd -> XML Schema; xsl lub xs -> XSLT; fo -> XSL; mml -> MathML; svg -> SVD; rdf -> RDF; rdfs -> RDF Schema; ds -> XML Signature W jednym dokumencie można stosować kilka przestrzeni nazw. 6

Przestrzenie nazw Przestrzeń nazw obowiązuję w elemencie, w którym został zadeklarowany i wszystkich elementach należących do zawartości danego elementu. <liga:ekstraklasa xmlns:liga= http://ie.pl/liga > <team:druzyna xmlns:team= http://ie.pl/druzyna > </team:druzyna> <tab:wyniki xmlns:tab= http://ie.pl/wyniki > </tab:wyniki> </liga:ekstraklasa> 7

Idea schematów Na podstawie badań stwierdzono, że około 60% tworzonego kodu (w aplikacjach) dotyczy weryfikacji poprawności danych. Przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. 8

DTD raz jeszcze Zalety DTD Prostota DTD a przetwarzanie danych Do wyświetlania zwykle wystarczy poprawność well formed Do przetwarzania stosuje się poprawność valid Elementy nie mogą mieć wartości domyślnych Nie ma możliwości zmiany kolejności elementów DTD wystarcza do definiowania dokumentów tekstowych Pełna dowolność zawartości o o DTD nie wystarcza do definiowania złożonych struktur; DTD nie daje możliwości sprawdzania poprawności typów danych za pomocą standardowych narzędzi 9

DTD raz jeszcze Niedostatki DTD Brak definicji typów danych dla zawartości elementów i dla atrybutów możliwe ograniczenia o wyliczanie dopuszczalnych wartości atrybutu o zasady tworzenia nazw i identyfikatorów zawartość elementu: zawsze tekst Brak możliwości efektywnego wyrażenia identyczności kilku części dokumentu Brak dobrego wykorzystania przestrzeni nazw przedrostki wpisane na sztywno do DTD Język zapisu DTD zupełnie różny od XML nie daje możliwości przetwarzania narzędziami XML- owymi 10

XMLSchema W3C Prace nad rekomendacją rozpoczęto w 1999r, zakończono w maju 2001r. Rekomendacja się z 3 części: Część wstępna zawiera wprowadzenie do schematów, Część druga zawiera formalny opis tworzenia schematów, Część trzecia zawiera typy danych, jakie można stosować w schematach. 11

Cechy XMLSchema Dokładniejsze deklarowanie typów danych możliwość deklaracji typów podstawowych możliwość definiowania własnych typów Możliwość definiowania zbiorów elementów, w których kolejność jest dowolna Możliwość deklarowania wielu elementów o takiej samej nazwie, ale innym położeniu w dokumencie i innej budowie Możliwość jednokrotnego definiowania powtarzających się fragmentów struktury i ich wielokrotnego wykorzystywania w dalszej części schematu Mechanizmy pozwalające na rozszerzanie i uszczegóławianie struktury dokumentów; Korzystanie z wielu schematów w jednym dokumencie Uwzględnienie przestrzeni nazw; Komponowanie nowych modeli z kilku przestrzeni nazw 12

Dokument XML <?xml version="1.0"?> <!DOCTYPE auto SYSTEM "auto.dtd"> <auto> <fabryka>ford</fabryka > <kolor>czerwony</kolor> <rok>2004</rok> </auto> Dokument DTD <!ELEMENT auto (fabryka, kolor, rok)> <!ELEMENT fabryka (#PCDATA)> <!ELEMENT kolor (#PCDATA)> <!ELEMENT rok (#PCDATA)> <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="auto"> <xsd:complextype> <xsd:sequence> <xsd:element name="fabryka type="xsd:string"/> <xsd:element name= kolor type="xsd:string"/> <xsd:element name= rok type="xsd:string"/> </xsd:sequence> </xsd:complextype> </xsd:element> Dokument XMLSchema </xsd:schema> 13

Dokument XML <?xml version="1.0"?> <auto xsd:nonamespaceschemalocation= auto.xsd xmlns:xsd="http://www.w3.org/2001/xmlschema-instance"> <fabryka>ford</fabryka > <kolor>czerwony</kolor> <rok>2004</rok> </auto> <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="auto"> <xsd:complextype> <xsd:sequence> <xsd:element name="fabryka type="xsd:string"/> <xsd:element name= kolor type="xsd:string"/> <xsd:element name= rok type="xsd:int"/> </xsd:sequence> </xsd:complextype> </xsd:element> Dokument auto.xsd </xsd:schema> położenie naszej struktury XMLSchema Odwołanie do deklaracji XMLSchema 14

Deklaracja elementów Elementy można deklarować Lokalnie - wewnątrz deklaracji typu - <xsd:complextype/> globalnie - wewnątrz elementu <xsd:schema/> Deklaracja bez nazwania typu (typ wykorzystany jednokrotnie): <xsd:element name= auto"> <xsd:complextype>... </xsd:complextype> </xsd:element> Deklaracja z nazwaniem typu (typ wykorzystany wielokrotnie): <xsd:element name= auto" type= typauto /> <xsd:complextype name= typauto >... </xsd:complextype> 15

Elementy Odwoływanie się do elementów zdefiniowanych wcześniej: <xsd:element name= auto type= xsd:string /> <xsd:complextype>... <xsd:element ref= auto />... </xsd:complextype> Kontrolowanie liczby wystąpień: Deklaracja: minoccurs= n minimalna liczba wystąpień (domyślnie 1); maxoccurs= n maksymalna liczba wystąpień (domyślnie 1) unbounded dowolna liczba; Deklarować można jedynie w typach lokalnych; Przykład: <xsd:element name= auto type= xsd:string maxoccurs= 10 /> 16

Typy złożonez one Typ złożony składa się z deklaracji elementów oraz atrybutów: <xsd:complextype name= nazwa > Sekwencja elementów </xsd:complextype> Sekwencja elementów może występować w jednej z trzech postaci: sequence elementy muszą wystąpić w określonym porządku (sekwencji) o W DTD odpowiada zapisowi (el1, el2, el3) choice może wystąpić tylko jeden z elementów (wybór) o W DTD odpowiada zapisowi (el1 el2 el3) all wszystkie elementy mogą wystąpić, ale kolejność jest dowolna o W DTD nie występuje 17

Typ złożony z ony xsd:sequence <xsd:complextype name="typadres"> <xsd:sequence> <xsd:element name="ulica" type="xsd:string"/> <xsd:element name="numer.domu" type="xsd:string" minoccurs="0"/> <xsd:element name="numer.mieszkania" type="xsd:int"/> <xsd:element name="miejscowosc" type="xsd:string"/> <xsd:element name="kod" type="typkod"/> </xsd:sequence> </xsd:complextype> Określa kolejność w jakiej mają pojawić się elementy; Muszą wystąpić wszystkie elementy (chyba, że minoccurs= 0 ) Może zawierać inne sekwencje elementów (np. <xsd:choice>); Element <xsd:sequence > jest odpowiednikiem, w DTD; 18

Typ złożony z ony xsd:choice <xsd:complextype name="typpojazd"> <xsd:choice> <xsd:element name="pociag" type="typpociag"/> <xsd:element name="tramwaj" type="typtramwaj"/> <xsd:element name="autobus" type="typautobus"/> </xsd:choice> </xsd:complextype> Możliwy jest wybór dokładnie 1 elementu z pośród podanych; <xsd:choice> jest odpowiednikiem w DTD; 19

Typ złożony z ony xsd:all <xsd:complextype name="typauto"> <xsd:all> <xsd:element name="kolor" type="typkolor"/> <xsd:element name="marka" type="xsd:string"/> <xsd:element name="rokprodukcji" type="xsd:int"/> <xsd:element name= "bak" type="xsd:int" minoccurs="0 /> </xsd:all> </xsd:complextype> Wszystkie elementy mogą wystąpić w dowolnej kolejności Każdy element może wystąpić nie więcej niż raz jeżeli minoccurs= 0 to może nie wystąpić Nie może zawierać modeli <xsd:sequence> i <xsd:choice> 20

Typy złożone z one grupy elementów Grupy używamy jeżeli zestaw elementów pojawia się w kilku miejscach w dokumencie; Grupy odpowiadają encjom parametrycznym w DTD Grupa elementów - definicja: <xsd:group name= nazwa > <xsd:sequence> lub <xsd:choice> lub <xsd:all> <xsd:element...> <xsd:element...> <xsd:sequence> lub </xsd:choice> lub </xsd:all> <xsd:group> Odwołanie: <xsd:group ref= nazwa /> 21

Typ złożony z ony model mieszany Elementy mieszane (tekst i elementy jednocześnie): <xsd:complextype nazwa= akapit mixed= true >... <xsd:complextype> Elementy do zawartości mieszanej są idealne do przechowywania opisowych fragmentów informacji, w które wplecione są znaczniki; 22

Typ złożony z ony model mieszany - przykład <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="notatka"> <xsd:complextype> <xsd:sequence> <xsd:element name="tresc" > <xsd:complextype mixed="true"> <xsd:sequence> <xsd:element name="wyroznic" type="xsd:string" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema> <?xml-stylesheet type="text/xsl" href="notka.xsl"?> <notatka xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:nonamespaceschemalocation="notka.xsd"> <tresc>dnia <wyroznic>24 marca 2005r. </wyroznic> o godzinie <wyroznic>17.15</wyroznic> odbeda sie zajecia z przedmiotu <wyroznic>metajezyki</wyroznic>. Obecnosc jak zwykle <wyroznic>wskazana</wyroznic>. Prowadzacy <wyroznic>mgr inz. Robert Berezowski</wyroznic></tresc> </notatka> 23

Zawartość prosta i złożona Istnieją dwa sposoby definiowane typów złożonych: zawartość prosta dane znakowe i atrybuty <xsd:complextype> <xsd:simplecontent>...</xsd:simplecontent> </xsd:complextype> zawartość złożona elementy i atrybuty; (przypadek domyślny) <xsd:complextype> <xsd:complexcontent>...</xsd:complexcontent> </xsd:complextype> 24

Rozszerzanie i zawęż ężanie typów w złożonychz onych rozszerzenie typu prostego <xsd:complextype> <xsd:simplecontent> <xsd:extension base= xsd:integer"> <xsd:attribute name= "przebieg"type="xsd:int"/> <xsd:attribute name= "drzwi"type="xsd:int"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> rozszerzenie typu złożonego <xsd:complextype> <xsd:complexcontent> <xsd:extension base= typauto"> <xsd:sequence> <xsd:element name= "przebieg"type="xsd:int"/> <xsd:element name= "drzwi"type="xsd:int"/> </xsd:sequence> </xsd:extension> </xsd:complexcontent> </xsd:complextype> 25

Rozszerzanie i zawęż ężanie typów w złożonychz onych ograniczenie typu złożonego wymaga powtórzenia wszystkich elementów, oprócz zbędnych <xsd:complextype> <xsd:complexcontent> <xsd:restriction base= typauto"> <xsd:sequence> <xsd:attribute name= marka"type="xsd:string"/> <xsd:attribute name= color"type="xsd:string"/> </xsd:sequence> </xsd:restriction > </xsd:complexcontent> </xsd:complextype> Elementy puste <xsd:complextype name="empty"/> 26

Treści (typy) w XMLSchema Typy treści: Złożone: Zawierające tekst, atrybuty i inne elementy; Określają strukturę dokumentu: o Elementy zawierające inne elementy; o Elementy zawierające inne elementy i tekst; o Elementy zawierające tekst; o Elementy puste; <xsd:complextype name="kolor">... </xsd:complextype> Proste: Zawierają tylko tekst i atrybuty (nie zawierają elementów); <xsd:simpletype name="kolor">... </xsd:simpletype> 27

Treści (typy) w XMLSchema Typy proste predefiniowane: <xsd:element name= nazwa type= typ /> typ - przykłady: xsd:string tekst; xsd:boolean true, false (0 lub 1); xsd:byte liczba od 128 do 127; xsd:integer liczba całk. większy zakres xsd:float liczba zmiennoprzecinkowa xsd:double liczba zmiennoprzecinkowa xsd:date data (1999-05-05); xsd:time czas (13:22:12.000); xsd:century wiek xsd:month miesiąc xsd:timeduration czas trwania xsd:year -rok xsd:decimal liczba zapisane dziesiętnie Przykład: <xsd:element name= wiek type= xsd:unsignedbyte > <wiek>45</wiek> <xsd:element waga> name= waga type= xsd:string > <waga>79kg</waga> xsd:uri adres URL (http://www.prv.pl); 28

Definiowanie własnego w typu prostego Typy proste użytkownika: Ograniczenia wskazanego typu prostego <xsd:simpletype name= nazwatypu"> <xsd:restriction base= jakiśtypprosty">... ograniczenia... </xsd:restriction> </xsd:simpletype> 29

Ograniczenia zakresów <xsd:element name= gotowka > <xsd:simpletype> <xsd:restiction base= xsd:integer > <gotowka>3000</gotowka> <xsd:maxinclusive value= 5000 /> -mniej niż 5000 lub równo lub (nie więcej niż) <xsd:maxexclusive value= 5000 /> -mniej niż 5000 lub <xsd:mininclusive value= 5000 /> -więcej niż 5000 lub równo lub (nie mniej niż) <xsd:minexclusive value= 5000 /> -więcej niż 5000 </xsd:restiction> </xsd:element> <gotowka>6000</gotowka> 30

Ograniczenia zakresów Ograniczenia długości typu <xsd:string>: <xsd: simpletype name= cena > <xsd:restriction base= xsd:float > <xsd:length value= 6 > lub <xsd:minlength value= 5 > <xsd:maxlength value= 7 > </xsd:restiction> </xsd:element> Ograniczenia cyfr: <xsd: simpletype name= cena > <xsd:restriction base= xsd:decimal > <xsd:totaldigits value= 5 > -ilość cyfr liczby; <xsd:fractiondigits value= 2 > - ilość cyfr po przecinku; </xsd:restiction> </xsd:element> 31

Typ prosty wyliczeniowy <xsd: simpletype name= kontynent > <xsd:restriction base= xsd:string > <xsd:enumeration value= azja /> <xsd:enumeration value= afryka /> <xsd:enumeration value= europa /> <xsd:enumeration value= australia /> </xsd:restriction> </xsd: simpletype> <kontynent>azja</kontynent> 32

Lista wartości Lista wartości rozdzielona spacjami <xsd:simpletype name= typmoj > <xsd:list itemtype="xsd:int"/> </xsd:simpletype> <lotek>4 5 33 34 36</lotek> 33

Definiowanie własnego w typu prostego Typ o wartości sumy różnych typów prostych <xsd:simpletype name= typmoj > <xsd:union membertypes= od1do32 od44do54"/> </xsd:simpletype> <xsd:simpletype name= od1do32"> <xsd:restriction base="xsd:int"> <xsd:mininclusive value="1"/><xsd:maxinclusive value="32"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype name= od44do54"> <xsd:restriction base="xsd:int"> <xsd:mininclusive value="44"/><xsd:maxinclusive value="54"/> </xsd:restriction> </xsd:simpletype> <liczba>45</liczba> <liczba>36</liczba> <liczba>12</liczba> 34

Definiowanie własnego w typu prostego Definicja: <xsd:simpletype name= kodpocz > <xsd:restriction base= xsd:string > <xsd:pattern value= \d{2}-\d{3} /> </xsd:restriction> </xsd:simpletype> Wzorce (regularne wyrażenia Perla): Litery, symbole i cyfry występują tak jak zostaną podane;. Zastępuje dowolny znak; \d dowolną cyfrę \D przeciwnie do \d \s dowolny biały znak (spacja, tabulator) \S przeciwnie do \s abc ciąg a, b, i c [abc] wystąpienie jednej z wartości z grupy: a, b lub c; [0-9] zakres wartości od 0 do 9; x? opcjonalne wystąpienie x (może ale nie musi Jeden drugi występuje jeden lub drugi; <kodpocz>75-632</ kodpocz> <kodpocz>735-632</ kodpocz> X{5} wystąpi 5 kolejnych X; X{5,} wystąpi co najmniej 5 kolejnych X; X{5,8} wystąpi od 5 do 8 kolejnych X; 35

Deklaracja atrybutów Definicja: atrybut o typie nazwanym <xsd:attribute name= nazwa type= typ /> Typy mogą być tylko proste atrybut o typie anonimowym <xsd:attribute name= lotek"> <xsd:simpletype> <xsd:list itemtype= xsd:int"/> </xsd:simpletype> </xsd:attribute> atrybut lokalny odwołujący się do globalnego <xsd:attribute ref="version"/> Atrybuty muszą być deklarowane na samym końcu typu złożonego (tylko i wyłącznie typu złożonego), do którego przynależą, czyli po zadeklarowaniu wszystkich składników typu złożonego; 36

Deklaracja atrybutów Występowanie atrybutów: Atrybut wymagany - required: <xsd:attribute name= pozycja use= required... /> Wartość domyślna default (początkowa atrybutu) jeżeli atrybut nie zostanie podany to przyjmuje wartość domyślną (value): <xsd:attribute name= kolor use= default value= blue... /> Wartość ustalona fixed nawet jeżeli atrybut zostanie podany to i tak przyjmuje wartość domyślną (value): <xsd:attribute name= kolor use= fixed value= blue... /> Wartość zabroniona - prohibited: <xsd:attribute name= kolor use= prohibited... /> Jeżeli element nie występuje w dokumencie to nie istnieją również jego atrybuty 37

Komentarze <xsd:annotation> <xsd:appinfo> Informacje na temat aplikacji XML do której należy schemat Przeznaczony dla aplikacji </xsd:appinfo> <xsd:documentation> Informacje o schemacie Przeznaczony dla ludzi </xsd:documentation> </xsd:annotation> 38