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



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

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

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

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?

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

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

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

Wprowadzenie do XML schema

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

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

XML extensible Markup Language. część 4

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

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

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

Schema Schemat_JPK_PKPIR_v1-0.xsd

Schematy XML. Tomasz Traczyk.

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

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

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

Rola języka XML narzędziem

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

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

XML extensible Markup Language. część 2

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

XML Schema w przykładach

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Technologie zarządzania treścią

Schema bsb-kwy xsd

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

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

XML i nowoczesne technologie zarządzania treścią

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

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

Wprowadzenie do technologii XML

XML extensible Markup Language. Paweł Chodkiewicz

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

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

Wprowadzenie do technologii XML

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

XML extensible Markup Language. część 4

XML i jego zastosowania

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Technologie internetowe

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

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

XML i nowoczesne metody zarządzania treścią

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

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

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

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

XML. Æwiczenia praktyczne

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Oczywiście plik musi mieć rozszerzenie *.php

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

XML w bazach danych i bezpieczeństwie

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

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

Dlaczego GML? Gdańsk r. Karol Stachura

XML DTD XML Schema CSS

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

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

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

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

Elementy struktur MiCOMP_VAT

XML w bazach danych i bezpieczeństwie

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

Tworzenie nowych pytań materiał dla osób prowadzących kursy

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

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

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

Wykład 4. SQL praca z tabelami 1

XML. Tworzenie stron WWW z wykorzystaniem XML, CSS, XHTML oraz XSLT. Niebieski podrêcznik

Lista 5 Typy dynamiczne kolejka

PARADYGMATY PROGRAMOWANIA Wykład 4

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Definicja obiektowego modelu danych: struktura i zachowanie

Podstawy Kompilatorów

Ada-95. Dariusz Wawrzyniak

Programowanie obiektowe

Wstęp do programowania

elektroniczna Platforma Usług Administracji Publicznej

Transkrypt:

XML Schema Typy proste, wyprowadzanie typów, modularyzacja schematu Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Typy proste i złożone 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 proste teoria Typ prosty posiada: przestrzeń wartości (value space) zbiór wartości w warstwie pojęciowej (liczby, daty itp.), przestrzeń leksykalna (lexical space) zbiór napisów reprezentujacych wartości w dokumencie, aspekty (facets) cechy opisujace typ: fundamental facets podstawowe własności semantyczne jak relacje równości, porzadku itp., constraining facets pozwalaja na ograniczanie typów. Typy proste sposoby definiowania Wbudowane: prymitywne, pochodne (derived) zdefiniowane z typów prymitywnych. Definiowane przez użytkownika jako: zawężenie, lista, unia.

Typy wbudowane XML Schema Wybrane typy proste typ przykładowe wartości decimal 12.3 +000012.300 float, double +24.3e-3 12 NaN -INF QName os:osoba osoba date 1968-04-02 1968-04-02-05:00 1968-04-02Z -0045-02-02 time 13:20:00.887 13:30:00-05:00 datetime 1968-04-02T13:20:00.887 gyearmonth 1968-04 gmonthday --04-02 duration P2Y6M5DT12H35M30S

Aspekty Aspekt zawężajacy (constraining facet) ze względu na niego można zawężać typ prosty: minexclusive, mininclusive, maxexclusive, maxinclusive, length, minlength, maxlength, totaldigits, fractiondigits, enumeration, pattern, whitespace. Różne (ale nie rozłaczne) zbiory aspektów dla różnych typów prymitywnych. Tylko pattern i enumeration można użyć wielokrotnie w jednej definicji typu. Przykłady zawężania typów prostych <xs:simpletype name="numerlottotyp"> <xs:restriction base="xs:integer"> <xs:mininclusive value="1"/> <xs:maxinclusive value="49"/> <xs:simpletype name="dokumenttyp"> <xs:restriction base="xs:token"> <xs:enumeration value="dowód osobisty"/> <xs:enumeration value="paszport"/> <xs:simpletype name="niptyp"> <xs:restriction base="xs:string"> <xs:pattern value="\d{3}-\d{3}-\d{2}-\d{2}"/> <xs:pattern value="\d{3}-\d{2}-\d{2}-\d{3}"/>

O zawężaniu typów prostych Przestrzeń wartości typu wyprowadzonego musi być podzbiorem przestrzeni wartości typu bazowego. Typy wbudowane maja określone niektóre aspekty, np.: typ byte: mininclusive: -128, maxinclusive: 127. Niepoprawne wyprowadzenie <xs:simpletype name="extendedbyte"> <xs:restriction base="xs:byte"> <xs:mininclusive value="-256"/> <xs:maxinclusive value="255"/> Aspekt pattern Wyrażenie regularne, z którym zgodne musza być wartości: typowa składnia, kategorie i podkategorie znaków, np. litery (małe, duże... ), cyfry (dziesiętne, inne), znaki interpunkcyjne, białe znaki itd. Wiele wyrażeń alternatywa. Przykład <xs:simpletype name="niptyp"> <xs:restriction base="xs:string"> <xs:pattern value="\d{3}-\d{3}-\d{2}-\d{2}"/> <xs:pattern value="\d{3}-\d{2}-\d{2}-\d{3}"/>

Aspekt whitespace Może wpływać na przetwarzanie. preserve wszystkie białe znaki sa pozostawiane bez zmian, replace każdy biały znak jest podczas przetwarzania zastępowany przez spację, collapse każdy biały znak jest podczas przetwarzania zastępowany przez spację, a następnie każdy ciag spacji jest zastępowany przez jedna spację, zaś spacje na poczatku i na końcu sa usuwane. Listy i unie Typ atomowy jego wartości sa niepodzielne, w praktyce typ prymitywny lub jego ograniczenie. Lista lista wartości atomowych (w dokumencie rozdzielonych spacjami). Unia suma zbiorów wartości poszczególnych typów.

Tworzenie list <xs:simpletype name=" NumerLottoTyp"> <xs:restriction base="xs:integer"> <xs:mininclusive value="1"/> <xs:maxinclusive value="49"/> <xs:simpletype name=" NumeryLottoTyp"> <xs:list itemtype=" NumerLottoTyp"/> <xs:simpletype name="kuponlottotyp"> <xs:restriction base=" NumeryLottoTyp"> <xs:length value="6"/> Tworzenie list inaczej <xs:simpletype name="kuponlottotyp"> <xs:restriction> <xs:simpletype> <xs:list> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="1"/> <xs:maxinclusive value="49"/> </xs:list> <xs:length value="6"/>

Tworzenie unii <xs:simpletype name=" RozmiarLiczbowyTyp"> <xs:restriction base="xs:integer"> <xs:mininclusive value="2"/> <xs:maxinclusive value="18"/> <xs:simpletype name=" RozmiarSMLTyp"> <xs:restriction base="xs:token"> <xs:enumeration value="s"/> <xs:enumeration value="m"/> <xs:enumeration value="l"/> <xs:simpletype name="rozmiartyp"> <xs:union membertypes=" RozmiarLiczbowyTyp RozmiarSMLTyp"/> Tworzenie unii inaczej <xs:simpletype name="rozmiartyp"> <xs:union> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="2"/> <xs:maxinclusive value="18"/> <xs:simpletype> <xs:restriction base="xs:token"> <xs:enumeration value="s"/> <xs:enumeration value="m"/> <xs:enumeration value="l"/> </xs:union>

Wyprowadzanie typów złożonych Zawężanie ograniczanie zbioru wartości; wartość typu bazowego poprawna wartościa typu pochodnego: ograniczanie zawartości prostej, ograniczane zawartości złożonej, ograniczanie opcjonalności atrybutów. Rozszerzanie rozszerzanie struktury; wartość typu bazowego niekoniecznie poprawna wartościa typu pochodnego: rozszerzanie zawartości prostej (dodawanie atrybutów do typu prostego lub typu złożonego o zawartości prostej), rozszerzanie zawartości złożonej (dodawanie elementów i/lub atrybutów, dodatkowe elementy zawsze na końcu, po elementach zadeklarowanych w typie bazowym. Rozszerzanie zawartości prostej <xs:complextype name=" MasaTyp"> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name="jm" type="xs:string"/> </xs:extension> </xs:simplecontent> </xs:complextype> <xs:complextype name="masaniedokładnatyp"> <xs:simplecontent> <xs:extension base=" MasaTyp"> <xs:attribute name="dokładność" type="xs:decimal"/> </xs:extension> </xs:simplecontent> </xs:complextype>

Rozszerzanie zawartości złożonej <xs:complextype name=" OsobaTyp"> <xs:sequence> <xs:element name="imie" type="xs:string"/> <xs:element name="nazwisko" type="xs:string"/> </xs:sequence> </xs:complextype> <xs:complextype name="osobazdokumentemtyp"> <xs:complexcontent> <xs:extension base=" OsobaTyp"> <xs:choice> <xs:element name="dowód-os" type="dowódtyp"/> <xs:element name="paszport" type="paszporttyp"/> </xs:choice> </xs:extension> </xs:complexcontent> </xs:complextype> Ograniczanie typów złożonych Ograniczenie zawartości prostej (tak jak typu prostego). Ograniczenie atrybutu: ograniczenie typu atrybutu, zmiana atrybutu opcjonalnego na wymagany (required) lub zabroniony (prohibited), dodanie, zmiana lub usunięcie wartości domyślnej, dodanie wartości ustalonej, jeśli jej nie było. Ograniczenie modelu zawartości, np.: ściślejsze ograniczenia liczebności (minoccurs, maxoccurs), usunięcie elementów opcjonalnych w grupach sequence i all, wybranie podzbioru elementów w grupie choice, ograniczenie typu poszczególnych podelementów.

Ograniczanie zawartości prostej i atrybutów <xs:complextype name=" MasaNiedokladnaTyp"> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name="jm" type="xs:string"/> <xs:attribute name="dokładność" type="xs:decimal"/> </xs:extension> </xs:simplecontent> </xs:complextype> <xs:complextype name="masadouniesieniatyp"> <xs:simplecontent> <xs:restriction base=" MasaNiedokladnaTyp"> <xs:mininclusive value="0"/> <xs:maxinclusive value="50"/> <xs:attribute name="dokładność" use="prohibited"/> <xs:attribute name="jm" fixed="kg"/> </xs:simplecontent> Ograniczanie zawartości złożonej <xs:complextype name=" BazowyTyp"> <xs:sequence> <xs:element name="a" type="xs:string" minoccurs="3" maxoccurs="7"/> <xs:element name="b" type="xs:string" minoccurs="0"/> <xs:element name="c" type="xs:string"/> </xs:sequence> </xs:complextype> <xs:complextype name="ograniczonytyp"> <xs:complexcontent> <xs:restriction base=" BazowyTyp"> <xs:sequence> <xs:element name="a" type="xs:string" minoccurs="4" maxoccurs="6"/> <xs:element name="c" type="xs:string"/> </xs:sequence> </xs:complexcontent> </xs:complextype>

Przestrzenie nazw i schematy Schemat zapisuje się przy pomocy jednego lub więcej dokumentów schematów. Schemat deklaruje nazwy należace do zero lub więcej przestrzeni nazw. Dokument schematu deklaruje nazwy należace do zero lub jednej przestrzeni nazw. Przestrzeń nazw zawiera nazwy zadeklarowane w zero lub więcej schematach. Dokument schematu < xs:schema xmlns:xsd=" http://www.w3.org/2001/xmlschema" xmlns=" http://szz.mimuw.edu.pl/osoby" targetnamespace=" http://szz.mimuw.edu.pl/osoby"> < xs:complextype name=" OsobaTyp">... </ xs:complextype> < xs:element name=" osoba" type=" OsobaTyp"/> < xs:element name=" numer" type=" xs:integer"/>... </ xs:schema>

Dokument schematu inaczej < schema xmlns=" http://www.w3.org/2001/xmlschema" xmlns:os=" http://szz.mimuw.edu.pl/osoby" targetnamespace=" http://szz.mimuw.edu.pl/osoby"> < complextype name=" OsobaTyp">... </ complextype> < element name=" osoba" type=" os:osobatyp"/> < element name=" numer" type=" integer"/>... </schema> Łaczenie dokumentów schematów Schemat zapisuje się przy pomocy jednego lub więcej dokumentów schematów. Metody budowania schematu z dokumentów schematów: instrukcje include, import i redefine w schemacie, lokalizacje (wielu) dokumentów schematów określone w egzemplarzu, predefiniowane (skonfigurowane) w procesorze lokalizacje, lokalizacje dokumentów schematów przekazywane jako parametry aplikacji.

include Dołaczanie dokumentu schematu do docelowej przestrzeni nazw głównego dokumentu schematu. Dołaczany dokument musi: mieć taka sama docelowa przestrzeń nazw jak dokument główny, lub nie mieć docelowej przestrzeni nazw. Przykład <xs:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://szz.mimuw.edu.pl/osoby" targetnamespace="http://szz.mimuw.edu.pl/osoby"> <xs:include schemalocation="inst.xsd"/>... </xs:schema> redefine Dołaczanie dokumentu schematu do docelowej przestrzeni nazw głównego dokumentu schematu z możliwościa przedefiniowania: typów prostych i złożonych, grup nazwanych, grup atrybutów. Przykład <xs:redefine schemalocation="inst.xsd"/>

import Odwołanie do komponentów w innej przestrzeni nazw, zadeklarowanych w innym dokumencie schematu. Przykład <xs:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" targetnamespace="http://szz.mimuw.edu.pl/osoby"> <xs:import schemalocation="inst.xsd" namespace="http://szz.mimuw.edu.pl/instytucje"/>... </xs:schema> Egzemplarz Przestrzeń nazw egzemplarzy XML Schema: http://www.w3.org/2001/xmlschema-instance Atrybuty: nil, type, schemalocation, nonamespaceschemalocation.

schemalocation <osoba xmlns="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://szz.mimuw.edu.pl/osoby osoby.xsd http://szz.mimuw.edu.pl/instytucje inst.xsd"> <imie>jan</imie><nazwisko>kowalski</nazwisko> <pracuje-w> <inst:firma> <inst:nazwa>business Consulting</inst:nazwa> <inst:nip>987-654-32-10</inst:nip> </inst:firma> </pracuje-w> </osoba> nonamespaceschemalocation <osoba xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="osoby.xsd"> <imie>jan</imie> <nazwisko>kowalski</nazwisko> </osoba>

Wartości puste w egzemplarzach Sposoby oznaczenia braku wartości: brak elementu/atrybutu, element/atrybut występuje, ale jest pusty, element/atrybut występuje i zawiera specjalna wartość, np. N/A, element ma wartość nil. <osoba xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <imie>jan</imie> <drugie-imie xsi:nil="true"/> <nazwisko>kowalski</nazwisko> </osoba> Dopuszczenie wartości nil w deklaracji elementu: <xs:element name="drugie-imie" type="xs:string" nillable="true"/>