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



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

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.

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

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ą

Rola języka XML narzędziem

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Podstawy języka XML. 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

XML extensible Markup Language. Paweł Chodkiewicz

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

Wykład 2 xaml, cz Czym jest xml?

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

Wprowadzenie do XML schema

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

XML i nowoczesne technologie zarządzania treścią

Schematy XML. Tomasz Traczyk.

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

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

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

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

III. Dane podstawowe definiowanie organizacji

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

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

XML-owe bazy danych ćwiczenia 1

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

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

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

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 1 do Instrukcji użytkownika minisiis, SIIS 5.x. Spis kodów błędów

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Mechanizm generowania edeklaracji

10. Translacja sterowana składnią i YACC

The Binder Consulting

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

Dlaczego GML? Gdańsk r. Karol Stachura

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

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

Przykładowy dokument XML

RDF Schema (schematy RDF)

XML. Æwiczenia praktyczne

- 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

GML w praktyce geodezyjnej

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

Internet Semantyczny. Schematy RDF i wnioskowanie

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

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

Hurtownie danych - przegląd technologii

XML extensible Markup Language. część 4

Kurs WWW. Paweł Rajba.

XML DTD XML Schema CSS

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

SymSync integracja danych Opencart/Prestashop Symfonia Handel Instrukcja obsługi

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)

Wykład 8: klasy cz. 4

Podstawy XML-a. Zaawansowane techniki programowania

Bazy danych 2. Wykład 1

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

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

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

Dokumentacja API BizIn

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Ada-95. Dariusz Wawrzyniak

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

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wprowadzenie do technologii XML

Dokumentacja ARTEMIZJON 2. Opis modułu CRM aplikacji Artemizjon 2.

Instrukcja konfiguracji programu KS-ASW do pracy w trybie wielopodmiotowym

2017/2018 WGGiOS AGH. LibreOffice Base

EAP XML Legislator Opis zmian w wersji Service Pack 44 ABC PRO Sp. z o.o.

Microsoft Office 2016 Krok po kroku

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

Język UML w modelowaniu systemów informatycznych

XML extensible Markup Language. część 3

JPK Jednolity Plik Kontrolny

Instrukcja obsługi Multiconverter 2.0

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Kancelaria zmiany w programie styczeń 2009

Jednolity Plik Kontrolny w IFK

Programy dodatkowe (Plug-Ins)

1. Zaczynamy! (9) 2. Edycja dokumentów (33)

Otwarte protokoły wymiany informacji w systemach ITS

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

Po zrealizowaniu materiału student będzie w stanie korzystać z usługi RSS oferowanej na stronach www utworzyć kanał RSS na stronie www

Księgowanie i eksport wynagrodzeń do systemu WF-FaKir

Transkrypt:

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

Globalne i lokalne deklaracje elementów i atrybutów Deklaracje lokalne: <xsd:complextype name="osobatyp"> <xsd:sequence> <xsd:element name="imie" type="xsd:string" minoccurs="1" maxoccurs="2"/> <xsd:element name="nazwisko" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="nip" type="niptyp" use="required"/> </xsd:complextype> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 2

Globalne i lokalne deklaracje elementów i atrybutów Deklaracje globalne i odwołania do nich: <xsd:element name="imie" type="xsd:string"/> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:attribute name="nip" type="niptyp"/> <xsd:complextype name="osobatyp"> <xsd:sequence> <xsd:element ref="imie" minoccurs="1" maxoccurs="2"/> <xsd:element ref="nazwisko"/> </xsd:sequence> <xsd:attribute ref="nip" use="required"/> </xsd:complextype> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 3

Elementy czy atrybuty? Informacje modelowane zwykle w elementach: zawartość (elementy semantyczne, np. nazwisko, nazwa leku, adres), struktura (np. rozdział, akapit, tytuł, lista), wyszukiwanie (np. termin do indeksu, glosariusza, a także elementy dedykowane), odesłania (np. hiperlinki, noty, przypisy). Informacje modelowane zwykle w atrybutach: metainformacje (np. jednostka miary, waluta, język, priorytet), identyfikatory wartości i odwołania do nich. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 4

Elementy czy atrybuty? Zalety elementów: mogą zawierać inne elementy i atrybuty, mogą się powtarzać, można bezpiecznie rozszerzać ich model zawartości, np. dodając atrybuty, można dokładnie sterować sposobem ich występowania (kolejnością, liczbą wystąpień, itp.) Zalety atrybutów: są bardziej zwięzłe, mogą być automatycznie dodawane do elementów, jeśli mają wartości domyślne. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 5

Wartości domyślne i ustalone <xsd:element name="ilość" type="xsd:positiveinteger" default="1"/> <xsd:element name="cena" type="xsd:positiveinteger" fixed="5"/> <xsd:attribute name="waluta" type="xsd:string" default="pln"/> <xsd:attribute name="vat" type="xsd:string" fixed="22%"/> Przed przetworzeniem <towar><cena/></towar> <towar><ilość>3</ilość></towar> <kwota>20</kwota> <kwota waluta="eur">20</kwota> Po przetworzeniu <towar><cena>5</cena></towar> <towar><ilość>3</ilość></towar> <kwota waluta="pln" VAT="22%"> 20</kwota> <kwota waluta="eur" VAT="22%"> 20</kwota> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 6

Przestrzenie nazw Problem: ta sama nazwa oznacza dwa różne byty w różnych dokumentach, dokumenty te są powiązane (np. wspólnie przetwarzane, jeden zanurzony w drugim, itp.) Rozwiązanie: przestrzeń nazw (ang. namespace): grupa nazw oddzielona (składniowo i semantycznie) od innych nazw. Status: rekomendacja W3C z 14 stycznia 1999 r, XML 1.0 (w tym DTD) nie wspierają przestrzeni nazw, nowsze standardy (XML Schema, XSL, XLink,...) wspierają przestrzenie nazw. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 7

Nazwy przestrzeni nazw Identyfikatory URI, np: http://www.w3.org/xslt/transform/1.0 http://szz.mimuw.edu.pl/osoby urn:szz:mimuw Nazwy przestrzeni nazw: nie muszą wskazywać konkretnych zasobów, pełnią funkcję unikatowych identyfikatorów, są porównywane jako napisy (istotna jest wielkość liter). Wykorzystanie w dokumentach XML: odwzorowanie na kilkuznakowy prefiks, poprzedzanie nazw prefiksem. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 8

Użycie przestrzeni nazw w XML-u <os:osoba xmlns:os="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <os:imie>jan</os:imie> <os:nazwisko>kowalski</os:nazwisko> <os:nip>123-456-78-90</os:nip> <os:opis>to jest <xhtml:b>bardzo</xhtml:b> fajny facet!</os:opis> <os:pracuje-w> <inst:firma> <inst:nazwa>business Consulting</inst:nazwa> <inst:nip>987-654-32-10</inst:nip> </inst:firma> </os:pracuje-w> </os:osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 9

Domyślna przestrzeń nazw <osoba xmlns="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <imie>jan</imie> <nazwisko>kowalski</nazwisko> <NIP>123-456-78-90</NIP> <opis>to jest <xhtml:b>bardzo</xhtml:b> fajny facet!</opis> <pracuje-w> <inst:firma> <inst:nazwa>business Consulting</inst:nazwa> <inst:nip>987-654-32-10</inst:nip> </inst:firma> </pracuje-w> </osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 10

Widoczność przestrzeni nazw <os:osoba xmlns:os="http://szz.mimuw.edu.pl/osoby"> <os:imie>jan</os:imie> <os:nazwisko>kowalski</os:nazwisko> <os:nip>123-456-78-90</os:nip> <os:pracuje-w> <os:firma xmlns:os="http://szz.mimuw.edu.pl/instytucje"> <os:nazwa>business Consulting</os:nazwa> <os:nip>987-654-32-10</os:nip> </os:firma> </os:pracuje-w> </os:osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 11

Nazwy z prefiksem i bez Nazwy elementów: kwalifikowane należą do pewnej przestrzeni nazw: poprzedzone prefiksem, nie poprzedzone prefiksem, jeśli są w zasięgu deklaracji domyślnej przestrzeni nazw; niekwalifikowane nie należą do żadnej przestrzeni nazw: nie poprzedzone prefiksem, poza zasięgiem deklaracji domyślnej przestrzeni nazw. Nazwy atrybutów: poprzedzone prefiksem (globalne) należą do pewnej przestrzeni nazw, nie poprzedzone prefiksem nie należą do żadnej przestrzeni nazw. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 12

Nazwy elementów bez prefiksów <osoba xmlns="http://szz.mimuw.edu.pl/osoby"> <imie>jan</imie> <nazwisko>kowalski</nazwisko> <NIP>123-456-78-90</NIP> <pracuje-w> <firma xmlns=""> <nazwa>business Consulting</nazwa> <NIP>987-654-32-10</NIP> </firma> </pracuje-w> </osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 13

Nazwy atrybutów <osoba xmlns="http://szz.mimuw.edu.pl/osoby" xmlns:xlink="http://www.w3.org/1999/xlink"> <imie>jan</imie> <nazwisko>kowalski</nazwisko> <NIP>123-456-78-90</NIP> <pracuje-w xlink:type="simple" xlink:href="..." rodzaj="etat">business Consulting</pracuje-w> </osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 14

Atrybuty: ta sama nazwa czy nie? Poprawne: <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n2"> <good n1:a="1" n2:a="2"/> </x> Niepoprawne: <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n1"> <bad n1:a="1" n2:a="2"/> </x> Poprawne: <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns="http://szz.mimuw.edu.pl/n1"> <good n1:a="1" a="2"/> </x> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 15

Przestrzenie nazw i schematy Schemat zapisuje się przy pomocy jednego lub więcej dokumentów schematów. Schemat deklaruje nazwy należące do zero lub więcej przestrzeni nazw. Dokument schematu deklaruje nazwy należące do zero lub jednej przestrzeni nazw. Przestrzeń nazw zawiera nazwy zadeklarowane w zero lub więcej schematach. import osoba imię nazwisko NIP osoby.xsd firma http://szz.mimuw.edu.pl/osoby nazwa Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 16 NIP inst.xsd http://szz.mimuw.edu.pl/instytucje

Dokument schematu (1) <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://szz.mimuw.edu.pl/osoby" targetnamespace="http://szz.mimuw.edu.pl/osoby"> <xsd:complextype name="osobatyp">... </xsd:complextype> <xsd:element name="osoba" type="osobatyp"/> <xsd:element name="numer" type="xsd:integer"/>... </xsd:schema> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 17

Dokument schematu (2) <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> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 18

Łączenie 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, lokalizacje dokumentów schematów są określone w egzemplarzu, procesor łączy dokumenty schematów znajdujące się w predefiniowanych (skonfigurowanych) lokalizacjach, lokalizacje dokumentów schematów są przekazywane jako parametry wiersza poleceń. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 19

include Dołączanie dokumentu schematu do docelowej przestrzeni nazw głównego dokumentu schematu. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://szz.mimuw.edu.pl/osoby" targetnamespace="http://szz.mimuw.edu.pl/osoby"> <xsd:include schemalocation="inst.xsd"/>... </xsd:schema> Dołączany dokument musi: mieć taką samą docelową przestrzeń nazw jak dokument główny, lub nie mieć docelowej przestrzeni nazw. osoby.xsd osoba imię nazwisko NIP inst.xsd firma nazwa REGON http://szz.mimuw.edu.pl/osoby Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 20

redefine Dołączanie dokumentu schematu do docelowej przestrzeni nazw głównego dokumentu schematu z możliwością przedefiniowania: typów prostych i złożonych, nazwanych grup modeli, grup atrybutów. <xsd:redefine schemalocation="inst.xsd"/> osoby.xsd osoba imię nazwisko NIP NIPTyp inst.xsd firma nazwa REGON NIPTyp http://szz.mimuw.edu.pl/osoby Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 21

import Odwołanie do komponentów w innej przestrzeni nazw. <xsd: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"> <xsd:import schemalocation="inst.xsd" namespace="http://szz.mimuw.edu.pl/instytucje"/>... </xsd:schema> osoby.xsd osoba imię nazwisko NIP http://szz.mimuw.edu.pl/osoby inst.xsd firma nazwa NIP http://szz.mimuw.edu.pl/instytucje Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 22

Egzemplarz Przestrzeń nazw egzemplarzy XML Schema: http://www.w3.org/2001/xmlschema-instance zawiera atrybuty: nil, type, schemalocation, nonamespaceschemalocation. Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 23

schemalocation <?xml version="1.0"?> <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> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 24

nonamespaceschemalocation <?xml version="1.0"?> <osoba xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation= "osoby.xsd"> <imie>jan</imie> <nazwisko>kowalski</nazwisko> </osoba> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 25

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 specjalną wartość, np. N/A, element ma wartość nil. <?xml version="1.0"?> <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: <xsd:element name="drugie-imie" type="xsd:string" nillable="true"/> Definiowanie typów dokumentów część 2: Przestrzenie nazw, XML Schema 26