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



Podobne dokumenty
XML Schema. Alternatywne metody definiowania 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

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

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

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

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

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

XML i nowoczesne metody zarządzania treścią

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

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Wprowadzenie do XML schema

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

XML extensible Markup Language. część 4

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

Rola języka XML narzędziem

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

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

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

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

Przykładowy dokument XML

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

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 w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

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

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

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

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

XML a białe znaki. Poprawne modele zawartości. Zarządzanie zmianami struktury. Model błędnej zawartości (1) Model błędnej zawartości (2)

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

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

Wprowadzenie do technologii XML

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Wprowadzenie do technologii XML

XML extensible Markup Language. część 2

- 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

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

XML i nowoczesne metody zarządzania treścią

XML w bazach danych i bezpieczeństwie

DTD - encje ogólne i parametryczne, przestrzenie nazw

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

XML i nowoczesne technologie zarządzania treścią

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

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

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

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

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

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 budowy i przekazywania komunikatów XML w systemie kdpw_otc

Schematy XML. Tomasz Traczyk.

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

TWORZENIE SCHEMATU XML

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

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

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

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

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

GML w praktyce geodezyjnej

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

XML extensible Markup Language. Paweł Chodkiewicz

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

Schema bsb-kwy xsd

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

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

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

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

Dlaczego GML? Gdańsk r. Karol Stachura

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

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

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

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

Model semistrukturalny

XML w bazach danych i bezpieczeństwie

XML Path Language (XPath)

Inne standardy zwiazane z XML

Technologie zarządzania treścią

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

Kurs HTML 4.01 TI 312[01]

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 extensible Markup Language. część 4

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

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

Mechanizm generowania edeklaracji

Jednolity Plik Kontrolny w IFK

XML w bazach danych, standardy wiążące dokumenty XML

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

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

XML DTD XML Schema CSS

METODY REPREZENTACJI INFORMACJI

Jednolity Plik Kontrolny w IFK

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

Warsztaty epuap. Administracja otwarta na obywatela. Kraków 2011 Arkadiusz Walewski, Zbigniew Olszak

INTEGRACJA I EKSPLORACJA DANYCH

Proces dwukierunkowej wymiany danych

XML i nowoczesne technologie zarządzania treścią 2007/08

Transkrypt:

XML Schema Alternatywne metody definiowania struktury dokumentów Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Forma nazwy lokalnych elementów i atrybutów Atrybut form w deklaracjach lokalnych: qualified w dokumencie nazwa kwalifikowana, unqualified w dokumencie nazwa niekwalifikowana. Atrybuty elementdefaultform i attributedefaultform w elemencie głównym schema. Elementy i atrybuty zadeklarowane globalnie zawsze kwalifikowane. Najbardziej intuicyjne: elementy kwalifikowane, atrybuty niekwalifikowane.

Grupy zamienne (substitution groups) Schemat <xs:element name="katalog"> <xs:complextype> <xs:sequence> <xs:element ref="produkt" maxoccurs="unbounded"/> <xs:sequence> <xs:complextype> </xs:element> <xs:element name="produkt" type="produkttyp"/> <xs:element name="komputer" type="komputertyp" substitutiongroup="produkt"/> <xs:element name="ubranie" type="ubranietyp" substitutiongroup="produkt"/> Grupy zamienne (substitution groups) Egzemplarz <katalog> <produkt>...</produkt> <komputer>...</komputer> <ubranie>...</ubranie> <produkt>...</produkt> </katalog>

Symbole wieloznaczne (1) Symbole wieloznaczne dla elementów (element wildcards). Symbole wieloznaczne dla atrybutów (attribute wildcards). Przykład <xs:complextype name="osobatyp"> <xs:sequence> <xs:element name="imie" type="xs:string"/> <xs:element name="nazwisko" type="xs:string"/> <xs:any namespace="##other" minoccurs="0" maxoccurs="unbounded" processcontents="skip"/> </xs:sequence> <xs:anyattribute namespace="##other" processcontents="lax"/> </xs:complextype> Symbole wieloznaczne (2) Atrybut namespace rozdzielone białymi znakami identyfikatory przestrzeni nazw i/lub ##targetnamespace, ##any dowolna przestrzeń nazw, ##other przestrzeń nazw inna niż docelowa. Atrybut processcontents skip nie sprawdzaj poprawności strukturalnej, strict sprawdzaj poprawność; bład jeśli brak unikalnej deklaracji w schemacie (wraz z importami i includami), lax sprawdzaj tylko elementy/atrybuty, dla których jest dostępna deklaracja.

Typowe zastosowanie <xs:element name="description"> <xs:complextype mixed="true"> <xs:sequence> <xs:any namespace="http://www.w3.org/1999/xhtml" minoccurs="0" maxoccurs="unbounded" processcontents="skip"/> </xs:sequence> </xs:complextype> </xs:element> Ograniczenia XML Schema Brak sprawdzania kontekstowego Brak kontekstowego sprawdzania poprawności, np.: zawartość elementu cena-netto jest mniejsza lub równa od zawartości elementu cena-brutto, jeżeli wartościa atrybutu sposób-transportu jest powietrze, to element środek-transportu ma zawartość samolot lub balon. Metody kontekstowego sprawdzania poprawności: zaprogramowane w kodzie aplikacji, transformacja XSLT, wykorzystanie innego języka schematów, np. Schematron.

Niedeterministyczne modele zawartości 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?)?) Rozgadana składnia XML Schema Rozgadana składnia, długie nazwy utrudniona ręczna edycja. Element z prosta zawartościa i atrybutem <xs:element name="masa"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name="jm" type="xs:string"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element>

Relax NG 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 DTD: elementy wymagane, ale bez określonego porzadku, model mieszany więcej możliwości; RELAX NG a XML Schema: niedeterministyczne modele zawartości, modele zawartości wrażliwe na kontekst, zwięzła składnia. Relax NG przykłady (1) 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>

Relax NG przykłady (2) Wybór między typem prostym a złożonym nie ma 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 Relax NG przykłady (2) Niedeterminizm nie da się zapisać w XML Schema Model w notacji DTD (a,b)*,a? Relax NG <element name="listaab"> <zeroormore> <ref name="a"/> <ref name="b"/> </zeroormore> <optional> <ref name="a"/> </optional>

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łaczeniu ze zwykła DTD lub schematem XML Schema. Status: norma ISO (ISO/IEC 19757-3:2006). Implementacja referencyjna: przekształcenie (generator) XSLT, dla zadanego schematu Schematronowego, generuje XSLT sprawdzajacy poprawność dokumentów. Dostępnych kilkanaście implementacji. Schematron 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ład. 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>

Schematron + XML Schema (1) <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.demo.org" xmlns="http://www.demo.org" xmlns:sch="http://www.ascc.net/xml/schematron" elementformdefault="qualified"> <xs:annotation> <xs:appinfo> <sch:title>schematron validation</sch:title> <sch:ns prefix="d" uri="http://www.demo.org"/> </xs:appinfo> </xs:annotation>... Schematron + XML Schema (1) <xs:element name="demo"> <xs:annotation> <xs:appinfo> <sch:pattern name="check A greater than B"> <sch:rule context="d:demo"> <sch:assert test="d:a > d:b"> A should be greater than B. </sch:assert> </sch:rule> </sch:pattern> </xs:appinfo> </xs:annotation> <xs:complextype> <xs:sequence> <xs:element name="a" type="xs:integer"/> <xs:element name="b" type="xs:integer"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema>

Zarzadzanie zmianami struktury Za Szymonem Zioło Zmiany niekompatybilne wstecz przykład: dodanie elementu wymaganego. Sposób postępowania w żywym systemie: 1. wprowadzamy zmianę modelu kompatybilna wstecz (np. dodajemy element, ale opcjonalny), 2. migrujemy dokumenty: przekształcamy automatycznie i/lub instruujemy użytkowników o konieczności migracji do nowej struktury, 3. po dodaniu brakujacych elementów (lub po upływie wyznaczonego czasu) wprowadzenie zmiany docelowej. Większe zmiany modelu: deklarujemy osobny element z nowym modelem i przez pewien czas dopuszczamy stary lub nowy model, stosujemy przez pewien czas równolegle dwie wersje. Zmiany struktury a aplikacje Typowa zależność między treścia programu a struktura danych: w treści programu zakładamy konkretna postać struktur danych, dane wejściowe/wyjściowe możliwa zmiana struktury w czasie, zmiana struktury danych konieczność zmian w kodzie. Tworzenie aplikacji niezależnych od zmian struktury danych: ignorowanie elementów i atrybutów nie znaczacych dla aplikacji, unikanie nadmiernej zależności od struktury dokumentu, parametryzowanie aplikacji dodatkowymi informacjami umieszczonymi w schemacie, np.: Przykład <xs:element name="nip">... <xs:attribute name="opis" type="xs:string" fixed="numer Identyfikacji Podatkowej"/>...

Przestrzenie nazw a aplikacje niezal. od struktury (1) Przykład XLink: linki w elementach o dowolnych nazwach, typ linku i jego parametry przekazywane przez specjalne atrybuty. Przykład użycia <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, urodzony w <geogr xlink:type="simple" xlink:href="torun.xml"> Toruniu</geogr>.</biogram> </osoba> Przestrzenie nazw a aplikacje niezal. od struktury (2) Przykład aplikacja weryfikujaca numery PESEL i daty urodzenia w dokumencie XML: nie powinna zależeć od struktury dokumentu wejściowego, jak przekazać aplikacji, co ma zweryfikować? Realizacja <podanie xmlns:pv="http://peselvalidator.pl"> <nadawca nr-ewid="60101012345" pv:pesel="nr-ewid"> <nazwisko>zenon Niemrawy</nazwisko> <urodzony pv:data-ur="#content">1960-10-10 </urodzony> </nadawca>... </podanie>