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

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

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 w przykładach

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

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. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

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

Przykładowy dokument XML

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. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

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

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

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

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

- 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

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

XML i nowoczesne metody zarządzania treścią

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

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

Schematy XML. Tomasz Traczyk.

XML i nowoczesne metody zarządzania treścią

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

Wprowadzenie do XML schema

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

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

Rola języka XML narzędziem

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. część 4

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

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

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

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Integracja Obieg Dokumentów - GiS Spis treści

Wprowadzenie do technologii XML

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

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

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

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

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

Politechnika Koszalińska

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

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

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ą

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

XML DTD XML Schema CSS

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

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

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

GML w praktyce geodezyjnej

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

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

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

The Binder Consulting

Wprowadzenie do technologii XML

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

XML w bazach danych i bezpieczeństwie

TIN Techniki Internetowe zima

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

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

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Metody dostępu do danych

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

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Schema Schemat_JPK_PKPIR_v1-0.xsd

XML w bazach danych i bezpieczeństwie

Metody reprezentacji informacji Przedmiot:

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

Podstawowe wykorzystanie Hibernate

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

XML extensible Markup Language. część 2

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

XML extensible Markup Language. Paweł Chodkiewicz

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

Nazwa pliku XSD:

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

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

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

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

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

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

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

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

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

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

Dokumenty elektroniczne w administracji publicznej - generaliter

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

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

Paweł Kurzawa, Delfina Kongo

mgr inż. Jacek Staniec Język XML

Transkrypt:

Dlaczego DTD nie wystarcza? Definiowanie typów dokumentów Część 2. XML Schema Zastosowania w integracji aplikacji struktury danych: przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Roger L. Costello, XML Schema Tutorial Cechy DTD: jedynie podstawowa kontrola nad strukturą dokumentów, bardzo ogólne metody definiowania częstości wystąpień, mało obiektowe, nierozszerzalne modele struktury. 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 2 DTD XML Schema Status XML Schema Wywodzi się z SGML-a Specyficzna składnia 10 typów danych Brak kontroli tekstowej zawartości elementów Typowy mieszany model zawartości Zaprojektowany na potrzeby XML-a Składnia XML 41+ typów danych Zaawansowana kontrola tekstowej zawartości elementów Możliwość definiowania własnych typów danych. 15 lutego 1999: Dokument W3C opisujący wymagania stawiane przed nowym formatem: mechanizmy tworzenia struktury, typy proste, reguły przetwarzania. 2 maja 2001: XML Schema staje się oficjalną rekomendacją W3C: XML Schema Part 0: Primer, XML Schema Part 1: Structures, XML Schema Part 2: Datatypes. Obecnie: trwają prace nad wymaganiami do wersji 1.1 XML Schema. Przestrzeń nazw XML Schema: http://www.w3.org/2001/xmlschema 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 3 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 4 Definiowanie elementów i atrybutów <xsd:element name="imie" <xsd:element name="nazwisko" <xsd:element name="plec" <xsd:element name="wiek" <xsd:attribute name="id" type="xsd:id"/> <xsd:attribute name="nip" Określanie typu elementu/atrybutu Atrybut type: <xsd:element name="imie" Podelement complextype lub simpletype: 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 5 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 6

Typy proste Typy proste Wbudowane typy proste: string, boolean, integer, float, datetime, ID, IDREF, CDATA, Tworzenie własnych typów prostych przy pomocy aspektów (facets): mininclusive, maxinclusive, minexclusive, maxexclusive, pattern, enumeration, list, union, length, minlength, maxlength. <xsd:element name="wiek"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="0"/> <xsd:maxinclusive value="120"/> 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 7 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 8 Przykłady Lista wartości: <xsd:simpletype name="lotterynumbers"> <xsd:restriction> <xsd:list itemtype="onetoninetynine"> <xsd:length value="6"/> Wyrażenia regularne: <xsd:attribute name="nip"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-\d{3}-\d{2}-\d{2}"/> </xsd:attribute> Typy złożone Możliwość definiowania typów złożonych: sequence, choice, group, all. Kontrola użycia podelementów: minoccurs, maxoccurs. Kontrola użycia atrybutów: atrybut use o dopuszczalnych wartościach: required, optional lub prohibited. 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 9 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 10 Kontrola użycia elementów i atrybutów Typ złożony, ale prosty <xsd:element name="imie" type="xsd:string" minoccurs="1" maxoccurs="2"/> <xsd:element name="nazwisko" <xsd:element name="plec" <xsd:element name="wiek" <xsd:attribute name="id" type="xsd:id" use="required"/> <xsd:attribute name="nip" <xsd:element name="roślina"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="gatunek" type="xsd:string" use="required"/> </xsd:extension> </xsd:simplecontent> 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 11 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 12

Model mieszany w XML Schema Typ zawartości jako samodzielny byt Możliwość kontroli ilości i kolejności podelementów: <xsd:element name="zeznanie"> <xsd:complextype mixed="true"> <xsd:element name="poszkodowany" <xsd:element name="data" <xsd:element name="godzina" type="xsd:string" maxoccurs="2"/> Oddzielenie deklaracji elementu od typu zawartości: typy anonimowe: <xsd:element name="osoby"> typy nazwane: <xsd:element name="osoba" type="osoba"/> <xsd:complextype name="osoba"> 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 13 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 14 Inne możliwości XML Schema Rozszerzanie typów Dziedziczenie typów: rozszerzenie typu bazowego, zawężenie typu bazowego, typy abstrakcyjne. Grupy zamiennych elementów (substitution groups): możliwość zamiennego użycia elementów z grupy w dokumentach, przykładowe zastosowanie: schemat wielojęzyczny. Zaawansowana kontrola referencji: key keyref: dowolna ilość kluczy: definiowane przy pomocy ścieżek XPath, wartości w ramach klucza muszą być unikatowe; referencja odwołuje się do konkretnego klucza: wartości referencji musi odpowiadać wartość klucza. <xsd:complextype name="publikacja"> <xsd:element name="tytuł" <xsd:element name="autor" <xsd:element name="rokpubl" type="xsd:year"/> <xsd:complextype name="książka"> <xsd:complexcontent> <xsd:extension base="publikacja"> <xsd:element name="isbn" </xsd:extension> </xsd:complexcontent> 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 15 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 16 Czego nie można zamodelować w XML Schema? Brak walidacji kontekstowej, np.: zawartość elementu cena-netto jest mniejsza lub równa od zawartości elementu cena-brutto, jeżeli wartością atrybutu sposób-transportu jest powietrze, to element środek-transportu ma zawartość samolot lub balon. Metody walidacji kontekstowej: zaprogramowana w kodzie aplikacji, transformacja XSLT, Schematron: definiowanie własności, jakie ma spełniać dokument, komunikaty o błędach poprawności. Schematron Język oparty na własnościach (asercjach), a nie na gramatyce: łatwe wyrażanie reguł walidacji kontekstowej, trudne, nieintuicyjne modelowanie struktury dokumentu, użyteczny w połączeniu ze zwykłą DTD lub schematem XML Schema. Status: obecna wersja: 1.5, rozpoczęty proces normalizacji (ISO/IEC 19757-3) dostępny draft specyfikacji ISO Schematron. Implementacja referencyjna: przekształcenie (generator) XSLT, dla zadanego schematu Schematronowego, generuje XSLT walidujący dokumenty. Dostępne kilkanaście implementacji. 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 17 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 18

Język Schematron RELAX NG Własności ewaluowane w kontekście konkretnego węzła dokumentu: assert własność, która musi być spełniona, report własność, której spełnienie oznacza błąd. Określanie kontekstu i własności: wyrażenia XPath. Przykład: <rule context="towar"> <assert test="@wartosc = @cena * @liczba"> wartość = cena * liczba</assert> </rule> <rule context="faktura"> <report test="@platnosc!= 'przelew' and./przelew"> Przelew określony, a nie płacimy przelewem </report> </rule> REgular LAnguage description for XML New Generation: składnia XML-owa, bliska opisowi struktury w języku naturalnym, wspiera typy danych (np. XML Schema Datatypes), atrybuty opisywane (prawie) tak samo, jak elementy, prosta technika modularyzacji: define / ref, model przetwarzania oparty na wyrażeniach regularnych. RELAX NG a inne języki: dostępne konstrukcje z SGML DTD, usunięte w XML DTD: elementy wymagane, ale bez określonego porządku, model mieszany więcej możliwości; pozwala opisać niedostępne w XML Schema: niejednoznaczne i niedeterministyczne modele zawartości, modele zawartości wrażliwe na kontekst. Źródło: Czarnik, P., DTD, XML Schema i co dalej?, Software 2.0, nr 6/2003 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 19 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 20 Przykład DTD: <!DOCTYPE addressbook [ <!ELEMENT addressbook (card*)> <!ELEMENT card (name, email)> <!ELEMENT name (#PCDATA)> <!ELEMENT email (#PCDATA)> ]> RELAX NG: <element name="addressbook" xmlns="http://relaxng.org/ns/structure/1.0"> <zeroormore> <element name="card"> <element name="name"> <text/> <element name="email"> <text/> </zeroormore> Źródło: RELAX NG Tutorial, http://www.relaxng.org/tutorial-20011203.html Przykład niedeterminizm Konstrukcja zabroniona w XML Schema: <element name="name"> <choice> <text/> <group> <element name="firstname"><data type="token"/> <optional> <element name="middlename"><data type="token"/> </optional> <element name="lastname"><data type="token"/> </group> </choice> </name> Źródło: RELAX NG Tutorial, http://www.relaxng.org/tutorial-20011203.html 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 21 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 22 Przykład niejednoznaczność Model niejednoznaczny. Nie istnieje równoważny model jednoznaczny. Nie da się zapisać w XML Schema. <element name="even-odd"> <zeroormore> <ref name="odd"/> <ref name="even"/> </zeroormore> <optional> <ref name="odd"/> </optional> Examplotron Definiowanie schematu przez przykład : instancja dokumentu definiuje schemat, konwencje, np.: powtórzenie elementu oznacza dowolną krotność, przykładowa zawartość elementu definiuje typ. Ograniczenia: przez przykład nie można wyrazić konstrukcji abstrakcyjnych, dodatkowa, specyficzna składnia pozwala na dokładniejszą kontrolę struktury. Status: projekt na wczesnym etapie rozwoju (wersja 0.7), dostępne narzędzie: compile.xsl przekształca schematy Examplotronowe do RELAX NG. Źródło: Vlist, E. van der, RELAX NG, http://books.xmlschemata.org/relaxng 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 23 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 24

Examplotron przykład Gdzie szukać dalej <?xml version="1.0" encoding="utf-8"?> <order date="2003-02-01" eg:content="eg:interleave" xmlns:eg="http://examplotron.org/0/"> <eg:attribute name="no">1234 </eg:attribute> <quantity>1</quantity> <ref>azerty</ref> <ref>zxcvbn</ref> <item>tee shirt</item> <price unit="usd">10.</price> </order> atrybut opcjonalny typu data element powtarzalny atrybut wymagany typu liczba dowolna kolejność podelementów W3C Architecture Domain: XML Schema www.w3.org/xml/schema Costello, R., XML Schema Tutorial www.xfront.com/xml-schema.html RELAX NG Home Page www.relaxng.org Schematron www.schematron.com Examplotron examplotron.org Vlist, E. van der, Comparing XML Schema Languages www.xml.com/pub/a/2001/12/12/schemacompare.html Vlist, E. van der, Relax NG Compared www.xml.com/pub/a/2002/01/23/relaxng.html Czarnik, P., DTD, XML Schema i co dalej? Software 2.0, nr 6/2003, Wydawnictwo Software 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 25 2004-10-21 Definiowanie typów dokumentów część 2: XML Schema 26