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

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

Przykładowy dokument XML

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

XML Schema w przykładach

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

XML DTD XML Schema CSS

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

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

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

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

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

Rola języka XML narzędziem

DTD - encje ogólne i parametryczne, przestrzenie nazw

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

XML i nowoczesne metody zarządzania treścią

Wprowadzenie do XML schema

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

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

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

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

Politechnika Koszalińska

XML extensible Markup Language. część 3

Schematy XML. Tomasz Traczyk.

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

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

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

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

Wprowadzenie do technologii XML

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

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

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

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

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

XML extensible Markup Language. Paweł Chodkiewicz

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

XML extensible Markup Language. część 4

XML i nowoczesne metody zarządzania treścią

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

XML i nowoczesne metody zarządzania treścią

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

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

Dokumenty elektroniczne w administracji publicznej - generaliter

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

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

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Aplikacje internetowe laboratorium XML, DTD, XSL

Semistrukturalne bazy danych Wykład dla studentów matematyki

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

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

BGK Zlecenia (Ferryt Enterprise)

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

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

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

c TP: anything: 13 listopada 2004 roku 1

Metody reprezentacji informacji Przedmiot:

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

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

XML i nowoczesne metody zarządzania treścią

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

PL_ADMINISTRACJA (ustawodawstwo)

<xsd:import namespace=" schemalocation="

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

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

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

<xsd:import namespace=" schemalocation="

Nazwa pliku XSD:

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

Integracja Obieg Dokumentów - GiS Spis treści

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

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

XML extensible Markup Language 1

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

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

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

Wykład 5: Klasy cz. 3

Wprowadzenie do XML. Tomasz Przechlewski

Programowanie internetowe

XML extensible Markup Language. część 2

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

Technologie internetowe

2 Podstawy tworzenia stron internetowych

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

Wprowadzenie do technologii XML

Podstawy (X)HTML i CSS

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Technologie zarządzania treścią

Podstawy JavaScript ćwiczenia

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

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

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Transkrypt:

Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 02 T. Romańczukiewicz Jagiellonian University 2009/2010

Plan Plan 1 Przypomnienie 2 DTD 3 Schematy XML 4 Podsumowanie

Plan Przypomnienie DTD Schematy XML Podsumowanie 1 Przypomnienie 2 DTD 3 Schematy XML 4 Podsumowanie

Przypomnienie DTD Schematy XML Podsumowanie Przypomnienie: XML - język znaczników zaprojektowany do przechowywania danych. Do prezentowania danych bezpośrednio zawartych w XML można użyć np. arkuszy kaskadowych CSS. XML pozwala na praktycznie nieograniczona dowolność. Strukturę określa się zagnieżdżajac znaczniki, dodatkowe informacje można przechowywać w atrybutach. W wielu praktycznych zastosowaniach należy jednak ograniczyć tę dowlolność - definicja typu dokumentu DTD. Jeśli dokument jest poprawnie sformułowany wg rekomendacji W3C można go walidować czyli sprawdzać jego zgodność z DTD. Zawartość dokumentów można czytać przy pomocy np. JavaScript. Kilka różnych dokumentów można łaczyć w jedna całość, a nazwy elementów z różnych DTD rozróżnia się poprzez przestrzenie nazw.

Plan Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E 1 Przypomnienie 2 DTD DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów Encje 3 Schematy XML 4 Podsumowanie

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Struktura dokumentu XML został tak skonstruowany aby pozwalał na maksymalna dowolność (struktura dokumentu, nazwy znaczników itp). Czasami jednak warto określić pewne ramy jakich dokument musi się trzymać. Zabieg ten może przyspieszyć przetwarzanie danych w dokumencie oraz zapobiega powstawaniu ewentualnych błędów już podczas etapu tworzenia dokumentu. Definicja typu dokumentu (DTD, ang. Document Type Definition) formalny opis budowy zawierajacego informacje o nazwach przyporzadkowanych częściom składowym tekstu (elementach), ich dodatkowych własnościach (atrybutach) i zależnosciach pomiedzy elementami, łacz acych je w strukturę drzewiasta

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E DTD a Schematy XML Strukturę dokumentu można opisać na dwa sposoby: Definicje typu dokumentów Schematy XML W chwili obecnej najczęściej używa się DTD. Jest to jednak metoda bardzo ograniczona i mało precyzyjna. Schematy XML nie tylko opisuja sama strukturę dokumentu, ale również pozwalaja na określanie typu danych w treści elementów dziedziczenie składni określanie minimalnej i maksymalnej ilości wystapień elementu ograniczanie wartości danych wymuszanie niepowtarzalności atrybutów (...) wiele, wiele innych - o tym w dalszej części Alternatywy: Relax NG, Schematron i inne

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Budowa DTD Listing 1: Przykład DTD 1 <?xml version="1.0" encoding="utf-8"?> 2 <?xml-stylesheet type="text/css" href="katalog.css"?> 3 <!DOCTYPE CATALOG [ 4 <!ELEMENT CATALOG (Artist+) > 5 <!ELEMENT Artist (Artist-Name, Album+) > 6 <!ELEMENT Artist-Name (#PCDATA) > 7 <!ELEMENT Album (Title, Year) > 8 <!ELEMENT Title (#PCDATA) > 9 <!ELEMENT Year (#PCDATA) > 10 <!ATTLIST Album id CDATA "100" >]> <!ELEMENT nazwa elementu (model zawartosci)> element+ element wystapi jeden lub więcej razy, element* 0 lub więcej razy, element? 0 lub 1 raz, element1, element2 elementy wystapi a w podanej kolejności, element1 element2 wystapi element1 lub element2 (grupa) grupa składników modelu, #PCDATA wystapi zawartość tekstowa ( czysty tekst bez podelementów), EMPTY element nie posiada żadnej zawartości, ANY w treści moga wystapić dowolne zadeklarowane elementy.

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Model mieszany. Czasami zachodzi konieczność wymieszania danych wraz z elementami. Np gdy chcemy dodać dodatkowy element - dodatkowa uwaga, data itp, a nie jest to konieczne dla każdego elementu. <!ELEMENT nazwa_elementu (#PCDATA uzupelnienie )*> i można tego używać w następujacy sposób: Listing 2: Model mieszany 1 <nazwa_elemetu> 2 zawartosc pierwszego elementu 3 </nazwa_elemetu> 4 5 <nazwa_elemetu> 6 zawartosc drugiego elementu 7 <uzupelnienie> 8 to jest drugi element 9 </uzupelnienie> 10 </nazwa_elemetu>

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Definicja atrybutu Listing 3: Przykład definicji atrybutu 1 <!ATTLIST nazwa elementu nazwa atrybutu1 typ1 zawartosc1 2 nazwa atrybutu2 typ2 zawartosc2 3...> Typy atrybutów: CDATA ciag znaków, NMTOKEN ciag znaków tworzacych poprawna nazwę, NMTOKENS ciag NMTOKEN oddzielanych spacjami, ID identyfikator unikalny w obrębie dokumentu, IDREF wskaźnik do ID innego elementu, IDREFS ciag IDREF oddzielany białymi znakami, (a b...) jedna z podanych wartości (typ wyliczeniowy), #REQUIRED atrybut jest wymagany, #IMPLIED wartość nie musi być podana, wartosc wartość domyślna, w dokumencie można ja zmieniać #FIXED wartość stała.

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Elementy czy atrybuty w elementach należy zapisywać istotny tekst, który będzie wypisywany, w atrybutach dodatkowe parametry w elementach należy zapisywać dane, a w atrybutach metadane elementy można zagnieżdżać, atrybuty nie - nie maja wewnętrznej struktury kolejność atrybutów nie ma znaczenia, dla elementów jest ważna w DTD można tylko atrybutom można przyporzadkowywać wartości domyślne. Listing 4: Umieszczanie DTD w osobnym pliku 1 <!DOCTYPE element_glowny SYSTEM "uri_do_dtd.dtd">

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Encje W DTD można definiować też makrorozwinięcia - encje: Listing 5: Definicje encji wewnętrznych 1 <!ENTITY nazwa_encji "rozwiniecie"> 2... 3 <przyklad> 4 przyklad uzycia encji &nazwa_encji; 5 </przyklad> 6... W XML można korzystać z kilku predefiniowanych encji: &apos; " " & & < < > > Można też używać ich do odwołań do znaków w kodzie dziesiętnym &#kod_znaku; oraz #xkod_znaku; w kodzie szesnastkowym.

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Encje zewnętrzne Listing 6: Przykład użycia encji zewnętrznych 1 <!ENTITY klasyka SYSTEM "klasyka_rocka.xml"> 2 <!ENTITY NWOBHM SYSTEM "NWOBHM.xml"> 3 <!ENTITY Thrash SYSTEM "http://prunus.if.uj.edu.pl/slayer_itp.xml"> 4 5 <CATALOG> 6 &klasyka; 7 &NWOBHM; 8 &Thrash; 9... 10 </CATALOG> Właczanie DTD jest również encję zewnętrzna: <!DOCTYPE element_glowny SYSTEM "uri_do_dtd.dtd">

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Encje parametryczne Encje parametryczne definiuje się i używa przy pomocy znaku %: Listing 7: Przykład użycia encji zewnętrznych 1 <!ENTITY % fontstyle "TT I B U"> 2 <!ENTITY % inline "#PCDATA %fontstyle;"> 3 <!ELEMENT p (%inline;)*> 4 <!ELEMENT font (%inline;)*> Można używać np. do definicji elementów w razie potrzeby dodać lub zmienić jeden fragment wykorzystywany w definicji wielu elementów. Możliwe jest też właczanie lub wyłaczanie fragmentów DTD poprzez instrukcje: Listing 8: Przykład użycia encji zewnętrznych 1 <![INCLUDE[... definicja_uzywana... ]]> 2 <![IGNORE[... definicja_nieuzywana... ]]> Można teraz łatwo tworzyć kilka wersji DTD w jednym tylko dokumencie i właczać pewne sekcje DTD parametrycznie.

Przypomnienie DTD Schematy XML Podsumowanie DTD - potrzeba, zalety i wady Konstrukcja DTD Definicje atrybutów E Wady DTD duża złożoność brak możliwości określania tekstowej zawartości atrybutów mało dokładne określanie ilości wystapień danego elementu (+,?, ) brak struktury XML w DTD Rozwiazanie: schematy XML

Plan Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż 1 Przypomnienie 2 DTD 3 Schematy XML Przykłady Elementy proste i złożone Definicje typów Dodatkowe możliwości 4 Podsumowanie

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Schemat XML Listing 9: Przykład schematu XML 1 <?xml version="1.0" encoding="utf-8"?> 2 <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> 3... 4 </xs:schema> i użycie referencji do schematu w pliku XML jako przestrzeni nazw: Listing 10: Plik XML 1 <?xml version="1.0" encoding="utf-8"?> 2 <element_glowny xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="moj_schemat.xsd"> 3... 4 </element_glowny>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż W XML rozróżniamy kilka typów elementów typ prosty - element zawierajacy jedynie dane proste (liczby, tekst) typ złożony - element zawierajacy inne elementy badź atrybuty każdy atrybut jest typem prostym - nie może zawierać ani atrybutów ani elementów W schemacie typy złożone deklaruje autor, typy proste sa już zawarte w specyfikacji. Autor jednak może tworzyć nowe typy proste.

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Przykład schematu Listing 11: Przykład schematu XML2 1 <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> 2 3 <xsd:complextype name="adres"> 4 <xsd:element name="nazwisko" type="xsd:string"/> 5 <xsd:element name="imie" type="xsd:string"/> 6 <xsd:element name="ulica" type="xsd:string"/> 7 <xsd:element name="nr_domu" type="xsd:int"/> 8 <xsd:element name="nr_mieszkania" type="xsd:int" use="optional"/> 9 </xsd:complextype> 10 11 <xsd:simpletype name="nr_ewidencyjny"> 12 <xsd:pattern value="\d{2}-\d{5}" base="xsd:string"/> 13 </xsd:simpletype> 14 15 <xsd:element name="moj_adres" type="adres" maxoccurs="1"/> 16 </xsd:schema> Definiujemy przestrzeń nazw xsd, typ złożony adres oraz typ prosty nr_ewidencyjny składajacy się z dwóch cyfr, kreski i pięciu cyfr.

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Wbudowane typy proste Poniżej wykaz typów jakich można używać: binary,boolean, byte, century,date, decimal, double, float, int, integer, long ENTITIES, ENTITY, ID, IDREF, IDREFS, language, month, Name, NCName, NMTOKEN,NMTOKENS,NOTATION negativeinteger, nonnegativeinteger, nonpositiveinteger, positiveinteger,qname, recurringdate, recurringday, recurringduration, short, string,time timeduration, timeinstant, timeperiod, unsignedbyte,unsignedint, unsignedlong, unsignedshort, urireference, year

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Krotność wystapienia elementu określa się przy pomocy następujacych atrybutów: minoccurs, maxoccurs. Domyślnie maxoccurs=minoccurs. Bez ograniczeń: maxoccurs="unbounded" Można też użyć jednego z dwóch atrybutów fixed lub default W deklaracji atrybutu <xsd:attribute name="licznik"value="100"type="xsd:int"> możliwe jest użycie atrybutu use który może mieć jedna z następujacych wartości required, optionaln fixed, default, prohibited. Gdy use="default"value="100" to jeśli wartość nie zostanie określona w samym atrybucie to przypisana zostanie wartość domyślna.

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Definicje typów prostych Listing 12: Typy proste 1 <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> 2 3 <xsd:simpletype name="nr_ewidencyjny"> 4 <xsd:pattern value="\d{2}-\d{5}" base="xsd:string"/> 5 </xsd:simpletype> 6 7 <xsd:simpletype name="dzienmiesiaca" base="xsd:integer"> 8 <xsd:mininclusive value="1"/> 9 <xsd:maxinclusive value="31"/> 10 </xsd:simpletype> 11 12 <xsd:simpletype name="dzientygodnia" base="xsd:string"> 13 <xsd:enumeration value="poniedzialek"/> 14 <xsd:enumeration value="wtorek"/> 15 <xsd:enumeration value="sroda"/> 16 <xsd:enumeration value="czwartek"/> 17 <xsd:enumeration value="piatek"/> 18 <xsd:enumeration value="sobota"/> 19 <xsd:enumeration value="niedziela"/> 20 </xsd:simpletype> 21 22 </xsd:schema> Uwaga: wyrażenie używane do formatowania xsd:pattern maja postać wyrażeń regularnych Perla!

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Anonimowe definicje typów Czasami nie ma konieczności definiowania osobnych typów. Dzieje się tak w przypadku, gdy dany tym byłby użyty np. jedynie raz. Można wtedy zamiast xsd:simpletype czy xsd:complextype użyć po prostu xsd:element lub xsd:attribute bez podawania typu. Można też definiować elementy puste: Listing 13: Przykład anonimowej definicji typu 1 <xsd:element name="album" minoccurs="0" maxoccurs="50"> 2 <xsd:complextype> 3 <xsd:element name="title" type="xsd:string"/> 4 <xsd:element name="year" type="xsd:year"/> 5 <xsd:attribute name="id" type="xsd:string"/> 6 </xsd:complextype> 7 </xsd:element> 8 9 <xsd:element name="cover"> 10 <xsd:complextype content="empty"> 11 <xsd:attribute name="source" type="xsd:string"/> 12 <xsd:attribute name="width" type="xsd:integer"/> 13 <xsd:attribute name="height" type="xsd:integer"/> 14 </xsd:complextype> 15 </xsd:element>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Elementy mieszane Można też definiować typ mieszany: elementy + zwykły tekst dzięki atrybutowi content="mixed". W DTD można było jedynie określić zawartość bez kolejności występowania. W schematach mamy możliwość podawania kolejności i krotności występowania poszczególnych elementów. Listing 14: Elementy mieszane 1 <xsd:element name="przypominajka"> 2 <xsd:complextype content="mixed"> 3 <xsd:element name="nazwisko" type="xsd:string"/> 4 <xsd:element name="tytul" type="xsd:string"/> 5 <xsd:element name="terminmaksymalny"> 6 <xsd:simpletype base="xsd:integer"> 7 <xsd:maxexclusive value="14"/> 8 </xsd:simpletype> 9 </xsd:element> 10 <xsd:element name="wartosc" type="xsd:decimal"/> 11 </xsd:complextype> 12 </xsd:element> Atrybut content może przyjmować również wartości "elementonly" - wartość domyślna dla typów złożonych "textonly" - domyślny model zawartości dla typu prostego

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Komentarze w schematach W schematach XML używa się trzech typów komentarzy: np: xsd:annotation - ogólny komentarz zawierajacy dwa pozostałe - bardziej szczegółowe xsd:documentation - typowy komentarz przeznaczony dla czytajacych dokument xsd:appinfo - informacje dla aplikacji czytajacych dokument Listing 15: komentarze 1 <xsd:annotation> 2 <xsd:documentation> 3 Jakis komentarz dla przyszlych pokolen 4 </xsd:documentation> 5 </xsd:annotation>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż xsd:choice Wybór umożliwia wskazanie szeregu elementów, z których zostanie wybrany zawsze tylko jeden Listing 16: Marny wybór 1 <xsd:element name="person"> 2 <xsd:complextype> 3 <xsd:choice> 4 <xsd:element name="employee" type="employee"/> 5 <xsd:element name="member" type="member"/> 6 </xsd:choice> 7 </xsd:complextype> 8 </xsd:element> Można też tworzyć sekwencje, aby wymusić kolejność użycia elementów: Listing 17: Marny wybór 1 <xsd:element name="person"> 2 <xsd:complextype> 3 <xsd:sequence> 4 <xsd:element name="firstname" type="xsd:string"/> 5 <xsd:element name="lastname" type="xsd:string"/> 6 </xsd:sequence> 7 </xsd:complextype> 8 </xsd:element>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż All i group Oprócz indykatorów wyboru i sekwencji można używać także indykatoru xsd:all. Jego użycie oznacza, że wszystkie elementy musza zostać wykorzystane dokładnie raz: Listing 18: All 1 <xsd:element name="person"> 2 <xsd:complextype> 3 <xsd:all> 4 <xsd:element name="firstname" type="xsd:string"/> 5 <xsd:element name="lastname" type="xsd:string"/> 6 </xsd:all> 7 </xsd:complextype> 8 </xsd:element>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Pojawienie się którejś z powyższych trzech konstrukcji można zawrzeć wewnatrz grupy a po zdefiniowaniu całej grupy można się do niej odwołać: Listing 19: Grupowanie 1 <xsd:group name="persongroup"> 2 <xsd:sequence> 3 <xsd:element name="firstname" type="xsd:string"/> 4 <xsd:element name="lastname" type="xsd:string"/> 5 <xsd:element name="birthday" type="xsd:date"/> 6 </xsd:sequence> 7 </xsd:group> 8 9 <xsd:element name="person" type="personinfo"/> 10 11 <xsd:complextype name="personinfo"> 12 <xsd:sequence> 13 <xsd:group ref="persongroup"/> 14 <xsd:element name="country" type="xsd:string"/> 15 </xsd:sequence> 16 </xsd:complextype>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Grupy można również tworzyć dl atrybutów: Listing 20: Grupy atrybutów 1 <xsd:attributegroup name="personattrgroup"> 2 <xsd:attribute name="firstname" type="xsd:string"/> 3 <xsd:attribute name="lastname" type="xsd:string"/> 4 <xsd:attribute name="birthday" type="xsd:date"/> 5 </xsd:attributegroup> 6 7 <xsd:element name="person"> 8 <xsd:complextype> 9 <xsd:attributegroup ref="personattrgroup"/> 10 </xsd:complextype> 11 </xsd:element>

ANY Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż Czasami nawet najlepiej przemyślany schemat musi dopuszczać możliwość rozszerzenia o kolejny niezdefiniowany element. Do tego typu deklaracji służy xsd:any. Można też rozszerzyć definicję o dowolny atrybut xsd:anyattribute Listing 21: Rozszerzenie definicji o dowolny element 1 <xsd:element name="person"> 2 <xsd:complextype> 3 <xsd:sequence> 4 <xsd:element name="firstname" type="xsd:string"/> 5 <xsd:element name="lastname" type="xsd:string"/> 6 <xsd:any minoccurs="0"/> 7 </xsd:sequence> 8 <xsd:anyattribute/> 9 </xsd:complextype> 10 </xsd:element>

Przypomnienie DTD Schematy XML Podsumowanie Przykłady Elementy proste i złożone Definicje typów Dodatkowe moż substitutiongroup Łatwo wyobrazić sobie sytuacje kiedy schemat jest dobrze napisany, ale wszystkie nazwy elementów sa w języku angielskim. XML z założenia ma opisywać dane tak aby łatwo się je czytało. Można użyć podstawienia, które zamiast nazwy np. w języku angielskim pozwoli używać nazw w języku polskim: Listing 22: substitutiongroup 1 <xsd:element name="name" type="xsd:string"/> 2 <xsd:element name="nazwisko" substitutiongroup="name"/> 3 4 <xsd:complextype name="custinfo"> 5 <xsd:sequence> 6 <xsd:element ref="name"/> 7 </xsd:sequence> 8 </xsd:complextype> 9 10 <xsd:element name="customer" type="custinfo"/> 11 <xsd:element name="klient" substitutiongroup="customer"/> Listing 23: XML 1 <klient> 2 <nazwisko>jan Kowalski</nazwisko> 3 </klient> 4 5 <customer> 6 <name>john Smith</name> 7 </customer> Używaj ac atrybutu block="substitution" można zabronić podstawienia nazwy

Plan Przypomnienie DTD Schematy XML Podsumowanie 1 Przypomnienie 2 DTD 3 Schematy XML 4 Podsumowanie

Przypomnienie DTD Schematy XML Podsumowanie Podsumowanie Aby wymusić konkretna strukturę dokumentu i zawartość elementów używa się DTD lub schematów DTD sa bardziej rozpowszechnione jednak maja wiele ograniczeń (np. brak możliwości dokładnego określania ilości wystapień elementów). DTD jest osobnym "językiem" określajacym strukturę dokumentu Schematy pozwalaja na dużo dokładniejsza kontrolę struktury dokumentu, oraz bardziej systematyczne określanie zawartości Sa poprawnie sformułowanym dokumentem XML