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



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

XML Schema. Alternatywne metody definiowania struktury dokumentów. 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

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

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)

XML i nowoczesne metody zarządzania treścią

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

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

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

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

- 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

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

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

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

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

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

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

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

Rola języka XML narzędziem

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

XML DTD XML Schema CSS

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

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

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

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

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

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

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

XML i nowoczesne metody zarządzania treścią

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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 w bazach danych i bezpieczeństwie

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

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

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

Przykładowy dokument XML

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

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

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

Nazwa pliku XSD:

ZAKRES INFORMACYJNY DOKUMENTÓW UBEZPIECZENIOWYCH ZUS

Integracja Obieg Dokumentów - GiS Spis treści

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

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

Wprowadzenie do XML schema

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

Rodzaje przetwarzania XSLT (1)

DTD - encje ogólne i parametryczne, przestrzenie nazw

Stwórz dokument XML zawierający poniższe informacje. Wykorzystaj atrybuty.

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

XML Schema w przykładach

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

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

Schematy XML. Tomasz Traczyk.

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

GML w praktyce geodezyjnej

Wprowadzenie do technologii XML

Warszawa, dnia 10 kwietnia 2012 r. Poz. 387 ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia 4 kwietnia 2012 r.

ZUS ZWUA Wyrejestrowanie z ubezpieczeń

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

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

Załączniki do rozporządzenia Ministra Finansów z dnia marca 2008 r. (poz. )

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

UCHWAŁA NR LII/1230/14 RADY MIASTA KATOWICE. z dnia 30 lipca 2014 r.

XML extensible Markup Language. część 3

Mechanizm generowania edeklaracji

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

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

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

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

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

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

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

XML i nowoczesne technologie zarządzania treścią

Grupa: urzędnicy JST (operator przyjmujący wnioski w urzędzie)

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

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

XML extensible Markup Language 3

Programowanie komputerów

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

Wypełnianie dokumentów ZUS. 43 odpowiedzi. na najczęściej zadawane pytania

ZUS ZWUA :\UHMHVWURZDQLH ] XEH]SLHF]Hľ 3RUDGQLN GOD SãDWQLNyZ VNãDGHN -DN Z\SHãQLþ L VNRU\JRZDþ

Raporty e-zla dla płatników. Instrukcja dla producentów programów płacowo-kadrowych. Jak skorzystać z usługi automatycznego pobierania?

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

XML i nowoczesne metody zarządzania treścią

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

The Binder Consulting

Załącznik nr 5 do uchwały Nr XXI/418/2012 Rady Miejskiej w Gliwicach z dnia 28 czerwca 2012 r

Lista błędów walidacji dokumentów

XML extensible Markup Language. Paweł Chodkiewicz

Instrukcja wypełniania wniosku EDG-1

BGK Zlecenia (Ferryt Enterprise)

UCHWAŁA NR IX RADY MIEJSKIEJ W BOGUCHWALE. z dnia 28 maja 2015 r.

Transkrypt:

Symbole wieloznaczne w XML Schema Symbole wieloznaczne dla elementów (ang. element wildcards). Symbole wieloznaczne dla atrybutów (ang. attribute wildcards). Definiowanie typów dokumentów Część 4. XML Schema, RELAX NG, Schematron <xsd:complextype name="osobatyp"> <xsd:sequence> <xsd:element name="imie" type="xsd:string"/> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:any namespace="##other" minoccurs="0" maxoccurs="unbounded" processcontents="skip"/> </xsd:sequence> <xsd:anyattribute namespace="##other" processcontents="lax"/> 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 2 Symbole wieloznaczne typowe zastosowanie <xsd:element name="description"> <xsd:complextype mixed="true"> <xsd:sequence> <xsd:any namespace="http://www.w3.org/1999/xhtml" minoccurs="0" maxoccurs="unbounded" processcontents="skip"/> </xsd:sequence> </xsd:element> Czego nie można zamodelować w XML Schema? (1/2) Brak kontekstowego sprawdzania poprawności, 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 kontekstowego sprawdzania poprawności : zaprogramowane w kodzie aplikacji, transformacja XSLT, wykorzystanie innego języka schematów, np. Schematron. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 3 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 4 Czego nie można zamodelować w XML Schema? (2/2) Niejednoznaczność (ang. ambiguity): egzemplarz jest poprawny względem kilku wzorców, np.: (nazwisko nazwisko) Każdy model niejednoznaczny jest jednocześnie niedeterministyczny. Niedeterminizm (ang. non-determinism): procesor ma do wyboru wiele pasujących wzorców (produkcji gramatyki), np.: (nazwisko (nazwisko, imię)) Równoważny model deterministyczny (nie zawsze istnieje): (nazwisko, imię?) 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: norma ISO (ISO/IEC 19757-3:2006). Implementacja referencyjna: przekształcenie (generator) XSLT, dla zadanego schematu Schematronowego, generuje XSLT sprawdzający poprawność dokumentów. Dostępnych kilkanaście implementacji. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 5 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 6 1

Język 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łą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> Źródło: Czarnik, P., DTD, XML Schema i co dalej?, Software 2.0, nr 6/2003 Schematron + XML Schema (1/2) <xsd:schema xmlns:xsd="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"> <xsd:annotation> <xsd:appinfo> <sch:title>schematron validation</sch:title> <sch:ns prefix="d" uri="http://www.demo.org"/> </xsd:appinfo> </xsd:annotation> Źródło: Extending XML Schemas. A Collectively Developed Set of Schema Design Guidelines http://www.xfront.com/extendingschemas.html 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 7 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 8 Schematron + XML Schema (2/2) <xsd:element name="demo"> <xsd:annotation> <xsd: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> </xsd:appinfo> </xsd:annotation> <xsd:complextype> <xsd:sequence> <xsd:element name="a" type="xsd:integer"/> <xsd:element name="b" type="xsd:integer"/> </xsd:sequence> Źródło: </xsd:element> Extending XML Schemas. A Collectively Developed Set of Schema Design Guidelines </xsd:schema> http://www.xfront.com/extendingschemas.html 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 inne języki: dostępne konstrukcje nie występujące 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. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 9 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 10 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 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 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 11 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 12 2

Przykład niedeterminizm (odd, even)*, odd? Model jednoznaczny, ale niedeterministyczny. Nie istnieje równoważny model deterministyczny. 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 : egzemplarz 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 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 13 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 14 Examplotron przykład Zarządzanie zmianami struktury <?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 Zmiany niekompatybilne wstecz przykład: dodanie elementu wymaganego. Sposób postępowania w żywym systemie: wprowadzamy zmianę modelu kompatybilną wstecz (np. dodajemy element, ale opcjonalny), migrujemy dokumenty: przekształcamy automatycznie i/lub instruujemy użytkowników o konieczności migracji do nowej struktury, po dodaniu brakujących 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 schematu. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 15 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 16 Zmiany struktury a aplikacje Typowa zależność między treścią programu a strukturą danych: w treści programu zakładamy konkretną postać struktur danych, jeśli są to dane wejściowe lub wyjściowe, ich postać może się zmieniać w czasie, zmiana struktury danych powoduje konieczność zmian w kodzie. Tworzenie aplikacji niezależnych od zmian struktury danych: ignorowanie elementów i atrybutów, które nie są znaczące dla aplikacji, unikanie nadmiernej zależności od struktury dokumentu, parametryzowanie aplikacji dodatkowymi informacjami umieszczonymi w schemacie, np.: <xsd:element name="nip"> <xsd:complextype> <xsd:attribute name="opis" type="xsd:string" fixed="numer Identyfikacji Podatkowej"/> </xsd:element> Przestrzenie nazw a aplikacje niezależne od struktury Przykład: XLink: linki w elementach o dowolnych nazwach, typ linku i jego parametry przekazywane przez specjalne atrybuty. <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> 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 17 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 18 3

Przestrzenie nazw a aplikacje niezależne od struktury Przykład: aplikacja weryfikująca numery PESEL i daty urodzenia w dokumencie XML, nie powinna zależeć od struktury dokumentu wejściowego, jak przekazać aplikacji, co ma zweryfikować? Rozwiązanie: <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> Case study XML jako format dokumentów ubezpieczeniowych ZUS 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 19 Tło projektu Formularze ubezpieczeniowe: 22 typy formularzy, przesyłane okresowo przez płatników do ZUS, dotychczas kodowane w pseudo-sgml-u. Przyczyny zmiany formatu: błędny projekt formatu SGML-owego, rosnąca popularność XML-a, nadchodząca zmiana rozporządzenia określającego strukturę formularzy. Projekt badawczo-rozwojowy prowadzony przez empolis Polska w 2000 roku. Kolekcja Elektronicznych Dokumentów Ubezpieczeniowych ZUS ZFB I. Dane organizacyjne 01. Identyfikator raportu 1 Nr raportu KEDU Kolekcja Elektronicznych Dokumentów Ubezpieczeniowych 2 Okres rozliczeniowy II. Dane identyfikacyjne płatnika składek 01. NIP 02. REGON 03. PESEL ZUS RCB III. Dane dotyczące osoby ubezpieczonej A.01. Nazwisko A.02. Imię pierwsze V. Oświadczenie płatnika składek 01. Data wypełnienia 02. Kod terytorialny B.01. Kod tytułu ubezpieczenia 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 21 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 22 Przykład: fragment formularza ZUS RCB Problemy Wybór logicznego modelu struktury dokumentów: model semantyczny, model składniowy. Modelowanie w DTD informacji pozwalających na sprawdzanie poprawności treści dokumentów. Modelowanie informacji zwrotnych: informacje o błędach w dokumentach, informacje o korektach automatycznie wprowadzonych przez ZUS. Oznaczenie pól wypełnianych przez ZUS. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 23 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 24 4

Logiczny model struktury dokumentów Logiczny model struktury dokumentów Semantyczny: DRZB dane-organizacyjne termin-przys-dekl ident-deklaracji dane-ident-platnika NIP REGON RCB dane-organizacyjne dane-ident-platnika Składniowy: DRZB DRZB.01 DRZB.01.01 DRZB.01.02 DRZB.02 DRZB.02.01 DRZB.02.02 RCB RCB.01 RCB.02 Model semantyczny: zwięzły i elegancki, pozwala na modelowanie relacji wiele-do-wielu, ale: nazwy szybko przestają być semantyczne. Model składniowy: łatwość automatyzacji przetwarzania: operowanie nazwami elementów, generowanie DTD oraz samych dokumentów, możliwość wzbogacenia o informacje semantyczne. Wybór: model składniowy. 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 25 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 26 Modelowanie informacji dodatkowych Informacje dodatkowe: opisy pól, informacje o sposobie sprawdzania poprawności wartości pól, informacje o polach wypełnianych przez ZUS. Sposób kodowania: atrybuty #FIXED: umieszczane w DTD wraz z wartościami, wartości dostępne w egzemplarzach, nie ma możliwości zmiany wartości atrybutu w egzemplarzu. Informacje dodatkowe przykład <!ELEMENT DRSB.01.04 (#PCDATA)> <!ATTLIST DRSB.01.04 OPIS CDATA #FIXED "Data nadania" TYP CDATA #FIXED "data" DLUGOSC CDATA #FIXED "8" WYPELNIA.ZUS CDATA #FIXED "TAK"> <!ELEMENT DRSB.02.04 (#PCDATA)> <!ATTLIST DRSB.02.04 OPIS CDATA #FIXED "Rodzaj dokumentu" TYP CDATA #FIXED "kod" SLOWNIK CDATA #FIXED "rodzaj.dok"> 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 27 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 28 Informacje zwrotne Informacje o błędach i korektach wykrytych podczas przetwarzania dokumentu przez ZUS: błąd powoduje odrzucenie formularza, korekta drobny błąd poprawiany automatycznie przez ZUS. Nie mogą być kodowane w atrybutach: może być więcej niż jeden błąd lub korekta, dotycząca tego samego pola, zawartości mogą zawierać podelementy, niedozwolony model (#PCDATA, BLAD*, KOREKTA*) Rozwiązanie: opcjonalne elementy po elemencie, w którym wystąpił błąd. Informacje zwrotne przykład <!ELEMENT BLAD EMPTY> <!ATTLIST BLAD KOD CDATA #REQUIRED OPIS CDATA #IMPLIED> <!ELEMENT KOREKTA ANY> <!ATTLIST KOREKTA NR CDATA #REQUIRED TYP (OCR.1 OCR.2 OCR.3 SYSTEM) #REQUIRED> <!ELEMENT DRSB ((DRSB.01, (BLAD*, KOREKTA*)), (DRSB.02, (BLAD*, KOREKTA*)), (DRSB.03, (BLAD*, KOREKTA*)), )> 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 29 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 30 5

Przykład: reprezentacja w XML-u Gdzie szukać dalej Extending XML Schemas. A Collectively Developed Set of Schema Design Guidelines www.xfront.com/extendingschemas.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 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 31 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 32 Gdzie szukać dalej Zioło, Sz., Jak pozostać niezależnym od DTD Software 2.0, nr 6/2002, Wydawnictwo Software Czarnik, P., DTD, XML Schema i co dalej? Software 2.0, nr 6/2003, Wydawnictwo Software Górski, C., Zioło, Sz., Wykorzystanie XML-a w zarządzaniu formularzami ubezpieczeniowymi ZUS www.empolis.pl Materiały Artykuły 2006-11-09 Definiowanie typów dokumentów część 4: XML Schema, RELAX NG, Schematron 33 6