XML i nowoczesne metody zarządzania treścią

Podobne dokumenty
XML i nowoczesne metody zarządzania treścią

Przykładowy dokument XML

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

XML Schema w przykładach

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

- 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

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

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

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

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

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

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

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

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Wprowadzenie do XML schema

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

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

Schematy XML. Tomasz Traczyk.

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

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

XML extensible Markup Language. część 4

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

<xsd:import namespace=" schemalocation="

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

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

Dokumenty elektroniczne w administracji publicznej - generaliter

<xsd:import namespace=" schemalocation="

Kraków, dnia 10 grudnia 2015 r. Poz UCHWAŁA NR XII/79/2015 RADY GMINY ZIELONKI. z dnia 26 listopada 2015 roku

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

Politechnika Koszalińska

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

UCHWAŁA NR XXIV/381/16 RADY MIASTA MYSŁOWICE. z dnia 1 września 2016 r.

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

Załączniki do rozporządzenia Ministra Finansów z dnia grudnia 2010 r. (poz. ) Załącznik nr 1

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

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

PL_ADMINISTRACJA (ustawodawstwo)

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

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

UCHWAŁA NR XIX/159/2016 RADY MIEJSKIEJ W SOŚNICOWICACH. z dnia 23 czerwca 2016 r.

XML i nowoczesne metody zarządzania treścią

Załącznik nr 5 do uchwały nr 245/2016 Rady Miasta Siemianowic Śląskich z dnia UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W DO-2 DEKLARACJA O

UCHWAŁA NR RADY GMINY PANKI. z dnia 7 lipca 2016 r.

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

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

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Integracja Obieg Dokumentów - GiS Spis treści

UCHWAŁA NR XI/252/2015 RADY MIASTA GLIWICE. z dnia 19 listopada 2015 r.

UCHWAŁA NR XXII/544/2016 RADY MIASTA GLIWICE. z dnia 15 grudnia 2016 r.

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

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. część 2

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Gorzów Wielkopolski, dnia 29 czerwca 2016 r. Poz UCHWAŁA NR RADY MIEJSKIEJ W SULECHOWIE. z dnia 21 czerwca 2016 r.

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

Załącznik do rozporządzenia. Ministra Finansów z dnia września 2006 r. (poz. )

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

Uchwała XXXVIII/775/2013 Rady Miejskiej w Gliwicach. z dnia 7 listopada 2013 rok

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

BGK Zlecenia (Ferryt Enterprise)

<?xml version="1.0" encoding="utf-8" standalone="no"?> <xsd:schema xmlns="

Bez tytułu <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="

UCHWAŁA NR XI/252/2015 RADY MIASTA GLIWICE. z dnia 19 listopada 2015 r.

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Lublin, dnia 7 lipca 2016 r. Poz UCHWAŁA NR XVI/95/2016 RADY GMINY CZEMIERNIKI. z dnia 28 czerwca 2016 r.

Nazwa pliku XSD:

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

Bez tytułu <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="

Szczecin, r. Copyright (c) 2015 Izba Skarbowa w Szczecinie. Izba Skarbowa w Szczecinie

ZARZĄDZENIE NR RZ BURMISTRZA MIASTA PYSKOWICE. z dnia 10 lutego 2017 r.

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

Rola języka XML narzędziem

UCHWAŁA NR 245/2016 RADY MIASTA SIEMIANOWIC ŚLĄSKICH. z dnia 23 czerwca 2016 r.

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

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

Opole, dnia 15 grudnia 2016 r. Poz UCHWAŁA NR XXIII/152/16 RADY GMINY JEMIELNICA. z dnia 12 grudnia 2016 r.

ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia r.

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

UCHWAŁA NR... RADY MIASTA KATOWICE. z dnia... r.

UCHWAŁA NR VII/130/2015 RADY MIASTA GLIWICE. z dnia 18 czerwca 2015 r.

UCHWAŁA NR XXIII/152/16 RADY GMINY JEMIELNICA. z dnia 12 grudnia 2016 r.

UCHWAŁA NR IV/39/2019 RADY GMINY GNOJNIK. z dnia 30 stycznia 2019 r.

CELAB. Specyfikacja protokołów przesyłania wyników badań

XML DTD XML Schema CSS

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

UCHWAŁA NR XXIV/499/16 RADY MIASTA KATOWICE. z dnia 27 kwietnia 2016 r.

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

Projekt z dnia 10 grudnia 2010 r.

Transkrypt:

XML i nowoczesne metody zarządzania treścią Wykład 4: Jeszcze o XML Schema Maciej Ogrodniczuk MIMUW, 22 października 2009 Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 1

Powiązanie schematu z dokumentem Powiązanie schematu z dokumentem składa się z trzech elementów: Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem Powiązanie schematu z dokumentem składa się z trzech elementów: deklaracji przestrzeni nazw dla egzemplarza dokumentu zgodnego z XML Schema: xmlns:xsi="http://www.w3.org/2001/xmlschema-instance", Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem Powiązanie schematu z dokumentem składa się z trzech elementów: deklaracji przestrzeni nazw dla egzemplarza dokumentu zgodnego z XML Schema: xmlns:xsi="http://www.w3.org/2001/xmlschema-instance", powiązania schematu dla elementów nie należących do żadnej przestrzeni nazw poprzez podanie URL-a schematu w atrybucie xsi:nonamespaceschemalocation, Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem Powiązanie schematu z dokumentem składa się z trzech elementów: deklaracji przestrzeni nazw dla egzemplarza dokumentu zgodnego z XML Schema: xmlns:xsi="http://www.w3.org/2001/xmlschema-instance", powiązania schematu dla elementów nie należących do żadnej przestrzeni nazw poprzez podanie URL-a schematu w atrybucie xsi:nonamespaceschemalocation, ew. powiązań listy używanych przestrzeni nazw z URL-ami schematów mających posłużyć do walidacji elementów, których nazwy należą do używanych w dokumencie przestrzeni nazw w atrybucie xsi:schemalocation. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem <?xml version="1.0"?> <tekst xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nonamespaceschemalocation="tekst.xsd" xsi:schemalocation="http://www.example.org/wzory wzory.xsd http://www.example.org/wykresy wykresy.xsd">... </tekst> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem <?xml version="1.0"?> <tekst xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nonamespaceschemalocation="tekst.xsd" xsi:schemalocation="http://www.example.org/wzory wzory.xsd http://www.example.org/wykresy wykresy.xsd">... </tekst> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem <?xml version="1.0"?> <tekst xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nonamespaceschemalocation="tekst.xsd" xsi:schemalocation="http://www.example.org/wzory wzory.xsd http://www.example.org/wykresy wykresy.xsd">... </tekst> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Powiązanie schematu z dokumentem <?xml version="1.0"?> <tekst xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nonamespaceschemalocation="tekst.xsd" xsi:schemalocation="http://www.example.org/wzory wzory.xsd http://www.example.org/wykresy wykresy.xsd">... </tekst> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 2

Schemat walidacji Wielopoziomowa walidacja: Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 3

Schemat walidacji Wielopoziomowa walidacja: 1 sprawdź (kaskadowo), że dokumenty schematu są poprawne strukturalnie (zgodne ze schematem dla XML Schema), Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 3

Schemat walidacji Wielopoziomowa walidacja: 1 sprawdź (kaskadowo), że dokumenty schematu są poprawne strukturalnie (zgodne ze schematem dla XML Schema), 2 sprawdź, że dokument jest zgodny z regułami opisanymi w schemacie. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 3

Docelowa przestrzeń nazw dokumentu schematu Jeśli chcemy, by nazwy elementów, atrybutów i typów zdefiniowanych w dokumencie schematu należały do określonej przestrzeni nazw, musimy ją określić w atrybucie targetnamespace elementu głównego <xsd:schema>. Brak tego atrybutu oznacza, że nazwy komponentów wynikowych nie będą należeć do żadnej przestrzeni nazw. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 4

Docelowa przestrzeń nazw dokumentu schematu Dobrze: <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" > <xsd:complextype name="typbazowy">... </xsd:complextype> <xsd:complextype name="typpochodny"> <xsd:complexcontent> <xsd:restriction base="typbazowy">... </xsd:restriction> </xsd:complexcontent> </xsd:complextype> <xsd:element name="element" type="typpochodny"> </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 4

Docelowa przestrzeń nazw dokumentu schematu Za mało! <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/test" > <xsd:complextype name="typbazowy">... </xsd:complextype> <xsd:complextype name="typpochodny"> <xsd:complexcontent> <xsd:restriction base="typbazowy">... </xsd:restriction> </xsd:complexcontent> </xsd:complextype> <xsd:element name="element" type="typpochodny"> </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 4

Docelowa przestrzeń nazw dokumentu schematu Dobrze: <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/test" xmlns="http://www.example.org/test"> <xsd:complextype name="typbazowy">... </xsd:complextype> <xsd:complextype name="typpochodny"> <xsd:complexcontent> <xsd:restriction base="typbazowy">... </xsd:restriction> </xsd:complexcontent> </xsd:complextype> <xsd:element name="element" type="typpochodny"> </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 4

Docelowa przestrzeń nazw dokumentu schematu Dobrze: <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/test" xmlns:typy="http://www.example.org/test"> <xsd:complextype name="typbazowy">... </xsd:complextype> <xsd:complextype name="typpochodny"> <xsd:complexcontent> <xsd:restriction base="typy:typbazowy">... </xsd:restriction> </xsd:complexcontent> </xsd:complextype> <xsd:element name="element" type="typy:typpochodny"> </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 4

Nazwy kwalifikowane i niekwalifikowane Nazwy kwalifikowane (ang. qualified) należą do pewnej przestrzeni nazw. Mogą być poprzedzone prefiksem lub należeć do domyślnej przestrzeni nazw. Nazwy niekwalifikowane (ang. unqualified) nie należą do żadnej. Autor schematu może zdecydować, czy w dokumentach elementy i atrybuty zdefiniowane lokalnie muszą być kwalifikowane czy nie: na poziomie schematu z użyciem atrybutów elementformdefault i attributeformdefault o wartościach qualified lub unqualified (domyślnie), na poziomie lokalnej definicji atrybutem form o takiej samej zawartości. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 5

Lokalne nazwy niekwalifikowane: przykład Schemat: <xsd:complextype name="typosoba"> <xsd:sequence> <xsd:element name="imię" type="xsd:token" minoccurs="0" maxoccurs="2"/> <xsd:element name="nazwisko" type="xsd:token"/> </xsd:sequence> <xsd:attribute name="pesel"/> </xsd:complextype> <xsd:element name="osoba" type="typosoba"/> Dokument: <os:osoba xmlns:os="http://www.example.org/osoby" pesel="04250101234"> <imię>jan</imię> <nazwisko>kowalski</nazwisko> </os:osoba> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 6

Lokalne nazwy kwalifikowane: przykład Schemat: <xsd:schema... elementformdefault="qualified" attributeformdefault="qualified"> Dokument 1: <os:osoba xmlns:os="http://www.example.org/osoby" os:pesel="26511756789"> <os:nazwisko>nowopolski</os:nazwisko> </os:osoba> Dokument 2: <osoba xmlns="http://www.example.org/osoby" <nazwisko>traugutt</nazwisko> </osoba> > Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 7

Lokalne nazwy kwalifikowane: przykład Schemat: <xsd:schema... elementformdefault="qualified" attributeformdefault="qualified"> Dokument 1: <os:osoba xmlns:os="http://www.example.org/osoby" os:pesel="26511756789"> <os:nazwisko>nowopolski</os:nazwisko> </os:osoba> Dokument 2: <osoba xmlns="http://www.example.org/osoby" xmlns:osoby="http://www.example.org/osoby" osoby:pesel="63812224680"> <nazwisko>traugutt</nazwisko> </osoba> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 7

Schematy (dokumentów) i dokumenty schematów Schemat (struktura logiczna) może być zapisany w wielu dokumentach schematów (plikach.xsd). Specyfikacja XML Schema określa trzy metody łączenia dokumentów schematów: include, import, redefine, Lokalizacje dokumentów opisujących schemat są określone w egzemplarzu, a ponadto: procesor może używać dokumentów schematów z predefiniowanych lokalizacji, lokalizacje dokumentów schematów mogą być przekazywane jako parametry wiersza poleceń. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 8

Modularyzacja schematów metodą <xsd:include> Metoda include dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 9

Modularyzacja schematów metodą <xsd:include> Metoda include dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu. Dołączany dokument musi mieć taką samą docelową przestrzeń nazw jak dokument główny lub nie mieć w ogóle docelowej przestrzeni nazw. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 9

Modularyzacja schematów metodą <xsd:include> Metoda include dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu. Dołączany dokument musi mieć taką samą docelową przestrzeń nazw jak dokument główny lub nie mieć w ogóle docelowej przestrzeni nazw. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://www.example.org/ceny" targetnamespace="http://www.example.org/ceny"> <xsd:include schemalocation="produkty.xsd"/>... </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 9

Modularyzacja schematów metodą <xsd:include> Metoda include dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu. Dołączany dokument musi mieć taką samą docelową przestrzeń nazw jak dokument główny lub nie mieć w ogóle docelowej przestrzeni nazw. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://www.example.org/ceny" targetnamespace="http://www.example.org/ceny"> <xsd:include schemalocation="produkty.xsd"/>... </xsd:schema> Uwaga: dołączane schematy nie muszą być kompletne: źle, bo musimy pilnować zależności między schematami, dobrze, bo możemy parametryzować schematy (np. definiować różne wersje typów dla elementów o danych nazwach). Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 9

<xsd:redefine> i <xsd:import> Metoda redefine dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu z możliwością przedefiniowania komponentów: <xsd:redefine schemalocation="redefine.xsd"/> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 10

<xsd:redefine> i <xsd:import> Metoda redefine dołącza dokument schematu do docelowej przestrzeni nazw głównego dokumentu schematu z możliwością przedefiniowania komponentów: <xsd:redefine schemalocation="redefine.xsd"/> Metoda import dołącza dokument schematu z innej przestrzeni nazw: <xsd:import schemalocation="import.xsd" namespace="http://www.example.org/firmy"/> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 10

<xsd:import>: przykład z życia <xsd:import namespace="http://www.w3.org/1999/xhtml" schemalocation="http://www.w3.org/2002/08/ xhtml/xhtml1-strict.xsd"/> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 11

<xsd:import>: przykład z życia <xsd:import namespace="http://www.w3.org/1999/xhtml" schemalocation="http://www.w3.org/2002/08/ xhtml/xhtml1-strict.xsd"/> <xsd:complextype name="typkodxhtmlowy"> <xsd:sequence> <xsd:any namespace="http://www.w3.org/1999/xhtml" processcontents="skip"/> </xsd:sequence> </xsd:complextype> <xsd:element name="xhtml" type="typkodxhtmlowy"> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 11

<xsd:import>: przykład z życia <xsd:import namespace="http://www.w3.org/1999/xhtml" schemalocation="http://www.w3.org/2002/08/ xhtml/xhtml1-strict.xsd"/> <xsd:complextype name="typkodxhtmlowy"> <xsd:sequence> <xsd:any namespace="http://www.w3.org/1999/xhtml" processcontents="skip"/> </xsd:sequence> </xsd:complextype> <xsd:element name="xhtml" type="typkodxhtmlowy"> <xhtml xsi:nonamespaceschemalocation="test2.xsd" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:html="http://www.w3.org/1999/xhtml"> <html:body>... </html:body> </xhtml> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 11

Symbole wieloznaczne (ang. wildcards) Pamiętamy przykład definicji umożliwiającej użycie dowolnych elementów z danej przestrzeni nazw: <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:complextype> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 12

Symbole wieloznaczne (ang. wildcards) Atrybut namespace może też zawierać listę wartości lub przyjmować wartości specjalne: ##any elementy mogą należeć do dowolnej przestrzeni nazw lub nie należeć do żadnej przestrzeni nazw, ##other elementy mogą należeć do dowolnej przestrzeni nazw, z wyjątkiem docelowej przestrzeni nazw dokumentu schematu; jeśli dokument schematu nie ma docelowej przestrzeni nazw, elementy zastępujące mogą należeć do dowolnej przestrzeni nazw, ale nie mogą nie należeć do żadnej przestrzeni nazw. ##targetnamespace elementy mogą należeć do docelowej przestrzeni nazw dokumentu schematu, ##local elementy mogą nie należeć do żadnej przestrzeni nazw. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 12

Wartości nieokreślone Koncepcja wartości niezdefiniowanych (ang. nil values) umożliwia zapis informacji o nieokreśloności konstrukcji wyrażonej danym elementem XML-owym. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 13

Wartości nieokreślone Koncepcja wartości niezdefiniowanych (ang. nil values) umożliwia zapis informacji o nieokreśloności konstrukcji wyrażonej danym elementem XML-owym. Użycie: 1 Możliwość wystąpienia wartości nieokreślonej zapisuje się w schemacie oznaczając element atrybutem nillable="true". Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 13

Wartości nieokreślone Koncepcja wartości niezdefiniowanych (ang. nil values) umożliwia zapis informacji o nieokreśloności konstrukcji wyrażonej danym elementem XML-owym. Użycie: 1 Możliwość wystąpienia wartości nieokreślonej zapisuje się w schemacie oznaczając element atrybutem nillable="true". 2 Tak oznaczony element będzie mógł być w dokumencie opatrywany specjalnym atrybutem xsi:nil (z przestrzeni nazw dla egzemplarzy dokumentu http://www.w3.org/2001/xmlschema-instance) o wartości true, co będzie odpowiadać wartości nieokreślonej. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 13

Wartości nieokreślone: przykład Schemat: <xsd:element name="książka"> <xsd:complextype> <xsd:sequence> <xsd:element name="autor" nillable="true"> <xsd:complextype> <xsd:sequence> <xsd:element name="imię-i-nazwisko"/> <xsd:element name="data-urodzenia"/> <xsd:element name="data-śmierci"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="tytuł"/> </xsd:sequence> </xsd:complextype> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 14

Wartości nieokreślone: przykład Użycie w dokumencie: <książka xsi:nonamespaceschemalocation="book.xsd" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance"> <autor xsi:nil="true"/> <tytuł>biblia</tytuł> </książka> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 14

Wartości nieokreślone: przykład Użycie w dokumencie: <książka xsi:nonamespaceschemalocation="book.xsd" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance"> <autor xsi:nil="true"/> <tytuł>biblia</tytuł> </książka> Uwagi: Element o wartości nieokreślonej musi mieć zawartość pustą. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 14

Wartości nieokreślone: przykład Użycie w dokumencie: <książka xsi:nonamespaceschemalocation="book.xsd" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance"> <autor xsi:nil="true"/> <tytuł>biblia</tytuł> </książka> Uwagi: Element o wartości nieokreślonej musi mieć zawartość pustą. Nieokreśloność jest ważniejsza niż zdefiniowany model zawartości. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 14

Wartości nieokreślone: przykład Użycie w dokumencie: <książka xsi:nonamespaceschemalocation="book.xsd" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance"> <autor xsi:nil="true"/> <tytuł>biblia</tytuł> </książka> Uwagi: Element o wartości nieokreślonej musi mieć zawartość pustą. Nieokreśloność jest ważniejsza niż zdefiniowany model zawartości. Atrybuty elementu o wartości nieokreślonej muszą być w każdym wypadku zgodne z modelem. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 14

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Dla elementów mamy więcej sposobów reprezentacji wartości pustej, np.: 1 brak elementu, 2 element pusty, 3 element nieokreślony. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Dla elementów mamy więcej sposobów reprezentacji wartości pustej, np.: 1 brak elementu, 2 element pusty, 3 element nieokreślony. Dany element może więc mieć następujący model: <xsd:element name="pojawiam-się-i-znikam" > </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Dla elementów mamy więcej sposobów reprezentacji wartości pustej, np.: 1 brak elementu, 2 element pusty, 3 element nieokreślony. Dany element może więc mieć następujący model: <xsd:element name="pojawiam-się-i-znikam" minoccurs="0" > </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Dla elementów mamy więcej sposobów reprezentacji wartości pustej, np.: 1 brak elementu, 2 element pusty, 3 element nieokreślony. Dany element może więc mieć następujący model: <xsd:element name="pojawiam-się-i-znikam" minoccurs="0" > <xsd:complextype/> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Dla atrybutów wartość pustą można reprezentować na jeden sposób: use="optional". Dla elementów mamy więcej sposobów reprezentacji wartości pustej, np.: 1 brak elementu, 2 element pusty, 3 element nieokreślony. Dany element może więc mieć następujący model: <xsd:element name="pojawiam-się-i-znikam" minoccurs="0" nillable="true"> <xsd:complextype/> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Przykład: <tablica> <napis>ala ma żółwia</napis> <napis xsi:nil="true"/> <napis/> <napis xsi:nil="true"/> </tablica> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Przykład: <tablica> <napis>ala ma żółwia</napis> <napis xsi:nil="true"/> <napis/> <napis xsi:nil="true"/> </tablica> Komentarz: napis pusty (o zerowej długości) można reprezentować elementem pustym lub brakiem elementu, Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Przykład: <tablica> <napis>ala ma żółwia</napis> <napis xsi:nil="true"/> <napis/> <napis xsi:nil="true"/> </tablica> Komentarz: napis pusty (o zerowej długości) można reprezentować elementem pustym lub brakiem elementu, napis o nieokreślonej wartości można reprezentować wartością nil lub brakiem elementu, Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Dobre praktyki: sposoby reprezentacji wartości pustej Przykład: <tablica> <napis>ala ma żółwia</napis> <napis xsi:nil="true"/> <napis/> <napis xsi:nil="true"/> </tablica> Komentarz: napis pusty (o zerowej długości) można reprezentować elementem pustym lub brakiem elementu, napis o nieokreślonej wartości można reprezentować wartością nil lub brakiem elementu, jeśli jednak definiujemy strukturę, w której wystąpienie elementu ma znaczenie (np. dla jej budowy, rozmiaru), brak elementu okazuje się złym reprezentantem czegokolwiek. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 15

Typy różne klasyfikacje Typy proste (ang. simple) i złożone (ang. complex): proste bez struktury elementowej ani atrybutowej, złożone mogą mieć zawartość elementową i wprowadzać atrybuty. Typy jednostkowe (ang. atomic) i wielowartościowe (listy i unie): jednostkowe zawierające niepodzielne wartości, listy skończone (ew. puste) sekwencje wartości jednostkowych, unie złożenia typów. Typy bazowe (ang. ur-types), pierwotne (ang. primitive) i pochodne (ang. derived): bazowe pra-typy, pierwotne istniejące od zawsze, z rozłącznymi przestrzeniami wartości, pochodne wywiedzione od innych typów poprzez ograniczenie, stworzenie listy lub unii. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 16

Typy różne klasyfikacje Typy wbudowane (ang. built-in) i zdefiniowane przez użytkownika (ang. user-derived): wbudowane zdefiniowane w specyfikacji, zdefiniowane przez użytkownika na potrzeby budowy schematu. Typy nazwane i anonimowe: nazwane globalne, anonimowe o zasięgu lokalnym. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 16

Typ złożony o zawartości prostej Problem: Chcemy zdefiniować element z zawartością tekstową i atrybutem. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 17

Typ złożony o zawartości prostej Problem: Chcemy zdefiniować element z zawartością tekstową i atrybutem. Rozwiązanie: <xsd:element name="liczba-słownie"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="wartość" type="xsd:positiveinteger"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 17

Rozszerzanie typów (ang. derivation by extension) Rozszerzanie: Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 18

Rozszerzanie typów (ang. derivation by extension) Rozszerzanie: zawartości prostej: dodawanie atrybutów do typu prostego lub typu złożonego o zawartości prostej, Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 18

Rozszerzanie typów (ang. derivation by extension) Rozszerzanie: zawartości prostej: dodawanie atrybutów do typu prostego lub typu złożonego o zawartości prostej, zawartości złożonej: dodawanie do typu bazowego dodatkowych elementów lub atrybutów. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 18

Rozszerzanie typów (ang. derivation by extension) Rozszerzanie: zawartości prostej: dodawanie atrybutów do typu prostego lub typu złożonego o zawartości prostej, zawartości złożonej: dodawanie do typu bazowego dodatkowych elementów lub atrybutów. Dwie uwagi: wartości typu bazowego nie muszą być poprawnymi wartościami typu wyprowadzonego (rozszerzenie może np. dodawać elementy lub atrybuty, które są wymagane), Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 18

Rozszerzanie typów (ang. derivation by extension) Rozszerzanie: zawartości prostej: dodawanie atrybutów do typu prostego lub typu złożonego o zawartości prostej, zawartości złożonej: dodawanie do typu bazowego dodatkowych elementów lub atrybutów. Dwie uwagi: wartości typu bazowego nie muszą być poprawnymi wartościami typu wyprowadzonego (rozszerzenie może np. dodawać elementy lub atrybuty, które są wymagane), definiując rozszerzenie zawartości złożonej, nie trzeba powtarzać modelu zawartości typu bazowego procesor doda nowy model po modelu zawartości typu bazowego, jak gdyby oba modele były zawarte w grupie sequence. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 18

Rozszerzanie typów złożonych <xsd:complextype name="typpublikacja"> <xsd:sequence> <xsd:element name="tytuł" maxoccurs="unbounded"/> <xsd:element name="autor" maxoccurs="unbounded"/> <xsd:element name="rokpubl" type="xsd:year"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="typksiążka"> <xsd:complexcontent> <xsd:extension base="typpublikacja"> <xsd:sequence> <xsd:element name="isbn"/> </xsd:sequence> </xsd:extension> </xsd:complexcontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 19

Ograniczanie typów (ang. derivation by restriction) Ograniczanie zawartości: dla zawartości prostej za pomocą aspektów, dla zawartości złożonej poprzez: ograniczanie 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 atrybutów: ograniczenie typu atrybutu, ograniczanie wystąpienia atrybutu (z opcjonalnego na wymagany lub zabroniony), dodanie, zmiana lub usunięcie wartości domyślnej, dodanie wartości stałej. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 20

Ograniczanie zawartości prostej i atrybutów: przykład <xsd:complextype name="typprzedziałczasu"> <xsd:simplecontent> <xsd:extension base="xsd:positiveinteger"> <xsd:attribute name="jednostka"/> <xsd:attribute name="milisekund" type="xsd:positiveinteger"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 21

Ograniczanie zawartości prostej i atrybutów: przykład <xsd:complextype name="typwiekwina"> <xsd:simplecontent> <xsd:restriction base="typprzedziałczasu"> <xsd:maxinclusive value="300"/> <xsd:attribute name="jednostka" fixed="rok"/> </xsd:restriction> </xsd:simplecontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 21

Ograniczanie zawartości prostej i atrybutów: przykład <xsd:complextype name="typwiekwina"> <xsd:simplecontent> <xsd:restriction base="typprzedziałczasu"> <xsd:maxinclusive value="300"/> <xsd:attribute name="jednostka" fixed="rok"/> </xsd:restriction> </xsd:simplecontent> </xsd:complextype> <xsd:complextype name="typliczbacykli"> <xsd:simplecontent> <xsd:restriction base="typprzedziałczasu"> <xsd:attribute name="jednostka" fixed="cykli procesora"/> <xsd:attribute name="milisekund" use="prohibited"/> </xsd:restriction> </xsd:simplecontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 21

Ograniczanie zawartości prostej i atrybutów: przykład <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema">... <xsd:element name="okres" type="typprzedziałczasu"/> <xsd:element name="wiekwina" type="typwiekwina"/> <xsd:element name="czaswykonaniainstrukcji" type="typliczbacykli"/>... </xsd:schema> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 21

Ograniczanie zawartości prostej i atrybutów: przykład <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema">... <xsd:element name="okres" type="typprzedziałczasu"/> <xsd:element name="wiekwina" type="typwiekwina"/> <xsd:element name="czaswykonaniainstrukcji" type="typliczbacykli"/>... </xsd:schema> <okres jednostka="mrugnięcia okiem" milisekund="700">2</okres> <wiekwina milisekund="9460800000">3</wiekwina> <czaswykonaniainstrukcji>5</czaswykonaniainstrukcji> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 21

Ograniczanie zawartości złożonej: przykład <xsd:complextype name="typpublikacja"> <xsd:sequence> <xsd:element name="tytuł"/> <xsd:element name="autor" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="typpublikacjajednegoautora"> <xsd:complexcontent> <xsd:restriction base="typpublikacja"> <xsd:sequence> <xsd:element name="tytuł"/> <xsd:element name="autor"/> </xsd:sequence> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 22

Wykluczanie elementów <xsd:complextype name="typpublikacja"> <xsd:sequence> <xsd:element name="tytuł" maxoccurs="unbounded"/> <xsd:element name="autor" minoccurs="0" maxoccurs="3"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="typpublikacjabezautora"> <xsd:complexcontent> <xsd:restriction base="typpublikacja"> <xsd:sequence> <xsd:element name="tytuł" maxoccurs="unbounded"/> <xsd:element name="autor" minoccurs="0" maxoccurs="0"/> </xsd:sequence> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 23

Niedozwolone ograniczenie typu prostego <xsd:simpletype name="typdwucyfrowy"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}"/> </xsd:restriction> </xsd:simpletype> <xsd:element name="elementtrzycyfrowy"> <xsd:simpletype> <xsd:restriction base="typdwucyfrowy"> <xsd:pattern value="\d{3}"/> </xsd:restriction> </xsd:simpletype> </xsd:element> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 24

Ograniczanie i zawężanie jednocześnie Chcemy zdefiniować element <kodpocztowy> o wzorcu XX-XXX i stałym atrybucie PL dla strefy kodowej. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 25

Ograniczanie i zawężanie jednocześnie Chcemy zdefiniować element <kodpocztowy> o wzorcu XX-XXX i stałym atrybucie PL dla strefy kodowej. Jednocześnie się nie da, trzeba w dwóch krokach: Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 25

Ograniczanie i zawężanie jednocześnie Chcemy zdefiniować element <kodpocztowy> o wzorcu XX-XXX i stałym atrybucie PL dla strefy kodowej. Jednocześnie się nie da, trzeba w dwóch krokach: <xsd:simpletype name="typkodpocztowy"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{3}"/> </xsd:restriction> </xsd:simpletype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 25

Ograniczanie i zawężanie jednocześnie Chcemy zdefiniować element <kodpocztowy> o wzorcu XX-XXX i stałym atrybucie PL dla strefy kodowej. Jednocześnie się nie da, trzeba w dwóch krokach: <xsd:simpletype name="typkodpocztowy"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{3}"/> </xsd:restriction> </xsd:simpletype> <xsd:complextype name="typkodpocztowypolski"> <xsd:simplecontent> <xsd:extension base="typkodpocztowy"> <xsd:attribute name="strefa" fixed="pl"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 25

Kontrola nad tworzeniem i użyciem typów wyprowadzonych Dwa atrybuty: final do kontroli nad tworzeniem, block do kontroli nad użyciem. Trzy wartości obu atrybutów: extension zabraniamy rozszerzania, restriction zabraniamy ograniczania, #all zabraniamy rozszerzania i ograniczania. Globalna kontrola nad całym schematem: Użycie: atrybutem finaldefault jak byśmy podali wartość z atrybutu przy każdym komponencie schematu, atrybutem blockdefault j.w. <xsd:complextype name="typpublikacja" final="#all"> <xsd:schema... finaldefault="restriction"> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 26

Kontrola nad użyciem aspektów W przypadku typów prostych można zabronić zmiany wartości aspektów używając atrybutu fixed: <simpletype name="typkodpocztowy"> <restriction base="string"> <length value="7" fixed="true"/> </restriction> </simpletype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 27

Korzyści z typów wyprowadzonych w dokumentach Korzystając z hierarchii typów możemy elastyczniej budować dokumenty: przypisując elementowi typ bazowy w schemacie, korzystając z typu wyprowadzonego w dokumencie. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 28

Korzyści z typów wyprowadzonych w dokumentach Korzystając z hierarchii typów możemy elastyczniej budować dokumenty: przypisując elementowi typ bazowy w schemacie, korzystając z typu wyprowadzonego w dokumencie. Użycie typu wyprowadzonego wymaga jego jawnego wskazania w atrybucie xsi:type z przestrzeni nazw dla egzemplarzy dokumentów http://www.w3.org/2001/xmlschema-instance. Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 28

Korzyści z typów wyprowadzonych w dokumentach Korzystając z hierarchii typów możemy elastyczniej budować dokumenty: przypisując elementowi typ bazowy w schemacie, korzystając z typu wyprowadzonego w dokumencie. Użycie typu wyprowadzonego wymaga jego jawnego wskazania w atrybucie xsi:type z przestrzeni nazw dla egzemplarzy dokumentów http://www.w3.org/2001/xmlschema-instance. Uwaga: typy bazowe mogą być jawnie oznaczane w schemacie jako abstrakcyjne (ustawiając wartość atrybutu abstract jako true) i wówczas w dokumencie musi zostać użyty i wskazany atrybutem xsd:type któryś z typów pochodnych). Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 28

Użycie typów wyprowadzonych: przykład Schemat: <xsd:complextype name="typadres"> <xsd:sequence> <xsd:element name="nazwa" type="xsd:string"/> <xsd:element name="miasto" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="typadresusa"> <xsd:complexcontent> <xsd:extension base="typadres"> <xsd:sequence> <xsd:element name="stan" type="typstanyusa"/> </xsd:sequence> </xsd:extension> </xsd:complexcontent> </xsd:complextype> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 29

Użycie typów wyprowadzonych: przykład Schemat: <xsd:element name="adres" type="typadres"/> Dokument: <adres> <nazwa>jan Kowalski</nazwa> <miasto>warszawa</miasto> </adres> <adres xsi:type="typadresusa"> <nazwa>george W. Bush</nazwa> <miasto>dallas</miasto> <stan>texas</stan> </adres> Wykład 4: Jeszcze o XML Schema XML i nowoczesne metody zarządzania treścią 29