XML Schema w przykładach

Podobne dokumenty
Przykładowy dokument XML

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, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

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

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 Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

XML i nowoczesne metody zarządzania treścią

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

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

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

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

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

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

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

Wprowadzenie do XML schema

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

XML i nowoczesne metody zarządzania treścią

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

Politechnika Koszalińska

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

Wprowadzenie do technologii XML

XML DTD XML Schema CSS

Rola języka XML narzędziem

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

Schematy XML. Tomasz Traczyk.

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

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

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

<xsd:import namespace=" schemalocation="

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

<xsd:import namespace=" schemalocation="

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

Dokumenty elektroniczne w administracji publicznej - generaliter

XML extensible Markup Language. część 4

XML extensible Markup Language. część 3

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

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

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

Wprowadzenie do technologii XML

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

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

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

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

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

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

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

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

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

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

PL_ADMINISTRACJA (ustawodawstwo)

BGK Zlecenia (Ferryt Enterprise)

Integracja Obieg Dokumentów - GiS Spis treści

Metody reprezentacji informacji Przedmiot:

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

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

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

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

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

Nazwa pliku XSD:

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

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

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

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

Dlaczego GML? Gdańsk r. Karol Stachura

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

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

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

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Aplikacje internetowe laboratorium XML, DTD, XSL

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŁÓDZKIEGO

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

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

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

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

XML extensible Markup Language. Paweł Chodkiewicz

XML extensible Markup Language. część 2

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

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

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

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

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

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

XML i nowoczesne metody zarządzania treścią

GML w praktyce geodezyjnej

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

Transkrypt:

DTD a XML Schema Krótkie porównanie dla niecierpliwych: XML Schema w przykładach Maciej Ogrodniczuk mog@empolis.pl DTD Wywodzi się z SGML-a Specyficzna składnia 10 typów danych Brak kontroli tekstowej zawartości elementów XML Schema Zaprojektowany na potrzeby XML-a Składnia XML-owa Ponad 40 typów danych Zaawansowana kontrola tekstowej zawartości elementów Po co nam formalizacja struktury? Dlaczego jeszcze? Dokumenty XML-owe bez określonej formalnie definicji struktury mogą istnieć ale UWAGA: Bez formalnej strukturalizacji XML daje nam mało - separacja struktury od treści sprowadza się do segmentacji danych i nie ma z niej wiele pożytku. Nikt nie lubi sztywnych reguł, ale to się czasem opłaca tendencja do coraz większej formalizacji (stąd typy danych). Korzyść to dostępność logicznej struktury treści XML pomaga lepiej zrozumieć dokument. Przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. Jak podaje Roger L. Costello, aż 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Definiujemy Typy Dokumentów Związki zawierania się i porządku elementów definiowane są z użyciem wyrażeń regularnych: <!ELEMENT nazwa (model_zawartości)> * 0 lub więcej wystąpień, + 1 lub więcej wystąpień,? 0 lub 1 wystąpienie,, sekwencja, alternatywa, () grupowanie, #PCDATA oznaczenie zawartości tekstowej, EMPTY oznaczenie zawartości pustej. Definiujemy Typy Dokumentów cd. <!ATTLIST nazwa_elementu nazwa_atrybutu typ kwalifikator_wartości wartość_domyślna?> Typy atrybutów: ID unikatowa (w ramach dokumentu) wartość, IDREF wskaźnik do elementu ID, NMTOKEN ciąg dozwolonych znaków, CDATA napis o rozszerzonej zawartości, (a b c) jedna z podanych wartości. Kwalifikatorem wartości jest jedno ze słów: #REQUIRED wartość wymagana, #IMPLIED wartość nie musi zostać podana, #FIXED wartość stała. 1

Przykład DTD <!ELEMENT słownik (hasło)+> <!ELEMENT hasło (pojęcie, objaśnienie)> <!ATTLIST hasło id ID #REQUIRED datazapisu NMTOKEN #REQUIRED> <!ELEMENT pojęcie (#PCDATA)> <!ELEMENT objaśnienie (#PCDATA link)*> <!ELEMENT link (#PCDATA)> <!ATTLIST link hasło IDREF #REQUIRED> Związanie DTD z instancją dokumentu: DOCTYPE z podaniem odwołania do definicji struktury lub samej definicji, element główny korzeń drzewa struktury. Dokument zgodny z DTD <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE słownik PUBLIC "-//EMPOLIS//DICTIONARY//PL" "http://www.empolis.pl/test/testdic.dtd"> <słownik> <hasło id= ciepły datazapisu= 2001-05-30 > <pojęcie>ciepły</pojęcie> <objaśnienie>mający temperaturę pośrednią między gorącem a zimnem</objaśnienie> </hasło> <hasło id= ciepluchny datazapisu= 2001-06-01 > <pojęcie>ciepluchny</pojęcie> <objaśnienie>forma zdrobniała o odcieniu intensywnym od <link hasło= ciepły >ciepły</link> </objaśnienie> </hasło> </słownik> Wady DTD Świat bez XML Schema Jedynie podstawowa kontrola nad strukturą dokumentów, Zbyt wysokopoziomowe typy danych, Bardzo ogólne metody definiowania częstości wystąpień, Mało obiektowe, nierozszerzalne definicje, Składnia różna od składni opisywanej zawartości. Wyobraźmy sobie system przetwarzający zamówienia zapisane w XML-u, z polem odpowiadającym liczbie zamawianych produktów. Co stanie się, gdy do przetwarzania zostanie skierowane zamówienie z ujemną liczbą produktów? Czy system odrzuci je jako błędne? Na jakim etapie? A może wcale nie zareaguje, zwiększy wartość licznika stanu zapasów i wyda polecenie przelewu z naszego konta na konto podane w zamówieniu? Przydałoby się niskopoziomowe sprawdzanie poprawności najlepiej wbudowane w dokument. XML Schema wczoraj i dziś Wprowadzenie 15 lutego 1999: Dokument W3C opisujący wymagania stawiane przed nowym formatem: mechanizmy tworzenia struktury + typy proste + reguły przetwarzania, 2 maja 2001: XML Schema staje się oficjalną rekomendacją W3C: XML Schema Part 0: Primer XML Schema Part 1: Structures XML Schema Part 2: Datatypes Do definicji typu dokumentu w formacie XML Schema wykorzystywana jest standardowa składnia XML-a. Dla uniknięcia konfliktów nazw, składniki definicji należą do przestrzeni nazw XML Schema, wyróżnianej prefiksem xsd. Cała definicja zawarta jest w elemencie głównym xsd:schema, zaś odpowiednikami deklaracji elementów i atrybutów z DTD są elementy xsd:element i xsd:attribute. 2

Typy danych: proste i złożone Typy proste definiują zbiory wartości atomowych (tzn. bez wewnętrznej struktury XML). Są nimi wszystkie typy wbudowane (np. liczba, napis, wartość logiczna), jak również typy stworzone na ich bazie. Używa się ich do określania dopuszczalnych wartości atrybutów i zawartości elementów. Oto przykład deklaracji elementu o zawartości typu prostego: <xsd:element name="pojęcie" /> Typy wbudowane przegląd Najczęściej stosowane typy wbudowane: string ciąg znaków, boolean wartość logiczna (true i false lub 1 i 0), integer liczba całkowita z przedziału 126789 126789, float liczba rzeczywista (dopuszcza także wartości: INF, INF i NaN), date data (postaci 2002-02-28), ID, IDREF, CDATA, language, urireference Typy złożone Typy złożone: definicje modeli zawartości + atrybuty. Sekwencja wystąpień elementów xsd:sequence, Alternatywa xsd:choice, Grupowanie xsd:group. Określanie liczby wystąpień elementów: atrybuty minoccurs i maxoccurs o wartościach całkowitych + unbounded (nieograniczona liczba wystąpień). Kontrola użycia atrybutów realizowana przy pomocy atrybutu use o dopuszczalnych wartościach required, optional lub prohibited. Typ złożony: przykład definicji <xsd:element name="hasło"> <xsd:element name="pojęcie" minoccurs="1" maxoccurs="1"/> <xsd:element name="objaśnienie" minoccurs="1" maxoccurs="1"/> <xsd:attribute name="id" type="xsd:id" /> <xsd:attribute name="datazapisu" type="xsd:datetime" use="required" /> Elementy opcjonalne DTD: <!ELEMENT pojazd (pociąg samolot samochód)> XML Schema: <xsd:element name="pojazd"> <xsd:choice> <xsd:element name="pociąg" <xsd:element name="samolot" <xsd:element name="samochód" </xsd:choice> Nowość: Dowolna kolejność W SGML-u tak, w XML-u z DTD nie! <xsd:element name="książka"> <xsd:all> <xsd:element name="tytuł" <xsd:element name="autor" </xsd:all> Uwaga: Elementy w zasięgu all mogą wystąpić co najwyżej raz. 3

Typ złożony, ale prosty Przypadek: Chcemy zdefiniować element z zawartością tekstową i atrybutem. <xsd:element name="roślina"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="gatunek" use="required"/> </xsd:extension> </xsd:simplecontent> Typy anonimowe a typy nazwane Oddzielenie pojęcia elementu od typu zawartości: typ anonimowy: <xsd:element name="osoba"> typ nazwany: <xsd:element name="osoba" type="osoba"/> <xsd:complextype name="osoba"> Własne typy danych Dozwolone wyrażenia regularne Tworzone łatwo na podstawie typów prostych, z użyciem tzw. aspektów (facets). Najważniejsze z nich: mininclusive, maxinclusive, minexclusive, maxexclusive zawężają zakres dozwolonych wartości liczbowych, pattern wzorzec wartości zgodny z podanym wyrażeniem regularnym, enumeration typ wyliczeniowy, list listy wartości typu prostego, length, minlength, maxlength opowiednio wymagana, minimalna lub maksymalna długość napisu lub listy.. a? a+ a* (a b) [ab]c [a-c]x [^0-9]a (la){2} a{1,3} a{2,} \s \d \D \w Przykład: Nowy typ prosty Korzystanie z aspektów wymaga zastosowania w definicji typu elementu ograniczającego xsd:restriction. Nowy nazwany typ prosty tworzymy poprzez użycie elementu xsd:simpletype: <xsd:simpletype name="kodpocztowy"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{3}"/> Przykład: Anonimowy typ prosty Zakres wartości liczbowych: <xsd:element name="wiek"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="0"/> <xsd:maxinclusive value="120"/> Typ wyliczeniowy: <xsd:element name="plec"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="k"/> <xsd:enumeration value="m"/> 4

Przykład: Lista wartości <xsd:simpletype name="lista5"> <xsd:list itemtype="xsd:integer"/> <xsd:simpletype name="lista5"> <xsd:restriction base="lista"> <xsd:length value="5"/> Lub prościej: <xsd:simpletype name="lotterynumbers"> <xsd:restriction> <xsd:list itemtype="onetoninetynine"> <xsd:length value="6"/> Rozszerzanie typów <xsd:complextype name="publikacja"> <xsd:element name="tytuł" <xsd:element name="autor" <xsd:element name="rokpubl" type="xsd:year" <xsd:complextype name="książka"> <xsd:complexcontent> <xsd:extension base="publikacja" > <xsd:element name="isbn" </xsd:extension> </xsd:complexcontent> Zawężanie typów <xsd:complextype name="publikacja"> <xsd:element name="tytuł" <xsd:element name="autor" <xsd:complextype name="publikacjajednegoautora"> <xsd:complexcontent> <xsd:restriction base="publikacja" > <xsd:element name="tytuł" <xsd:element name="autor" </xsd:complexcontent> Rozszerzaniu i zawężaniu mówimy: NIE! Zabraniamy rozszerzania i zawężania: <xsd:complextype name="publikacja" final="#all"> Zabraniamy rozszerzania i zawężania: <xsd:complextype name="publikacja" final="extension"> Zabraniamy zawężania: <xsd:complextype name="publikacja" final="restriction"> Zastępowanie elementów Możemy chcieć używać nazw elementów wymiennie, np. w wersji skróconej i rozszerzonej. <xsd:element name="data" type="xsd:date"/> <xsd:element name="dataostatniegoodwołania" substitutiongroup="data" type="xsd:date"/> <obiekt> <data>2002-02-28</data> </obiekt> <obiekt> <dataostatniegoodwołania>2002-02-28 </dataostatniegoodwołania> </obiekt> Definicje globalne i lokalne <xsd:element name="książka"> <xsd:element name="autor" <xsd:element ref="isbn" <xsd:element name="isbn"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{3}"/> 5

Użycie XML Schema Jeszcze jeden prosty przykład [1/3] <słownik xmlns="http://www.empolis.pl" xmlns:xsi=http://www.w3.org/2001/xmlschema xsi:schemalocation="http://www.empolis.pl dictionary.xsd"> </słownik> Wielopoziomowa walidacja: Sprawdź, że dokument library.xml jest zgodny z regułami opisanymi w dictionary.xsd. Sprawdź, że dictionary.xsd jest poprawnym dokumentem (zgodnym z regułami opisanymi w XMLSchema.xsd pliku zawierającym schemat dla XML Schema. XML Schema rozszerza funkcjonalność DTD (możliwa jest automatyczna konwersja DTD do nowego formatu): <!ELEMENT Biblioteka (Książka)*> <!ELEMENT Książka (Tytuł, Autor, DataWydania, ISBN)> <!ELEMENT Tytuł (#PCDATA)> <!ELEMENT Autor (#PCDATA)> <!ELEMENT DataWydania (#PCDATA)> <!ELEMENT ISBN (#PCDATA)> Jeszcze jeden prosty przykład [2/3] Jeszcze jeden prosty przykład [3/3] <xsd:schema xmlns:xsd=http://www.w3.org/2001/xmlschema targetnamespace=http://www.empolis.pl xmlns=http://www.empolis.pl elementformdefault="qualified"> <xsd:element name="biblioteka"> <xsd:element ref="książka" minoccurs="0" maxoccurs="unbounded"/> [] </xsd:schema> <xsd:element name="książka"> <xsd:element ref="tytuł" <xsd:element ref="autor" <xsd:element ref="datawydania" <xsd:element ref="isbn" <xsd:element name="tytuł" /> <xsd:element name="autor" /> <xsd:element name="datawydania" /> <xsd:element name="isbn" /> Model mieszany: dokument <List xmlns=http://www.list.pl xmlns:xsi=http://www.w3.org/2001/xmlschema xsi:schemalocation="http://www.list.pl Letter.xsd"> <Treść> Szanowny Panie! Z powodu niepogratulowania mi otrzymania <wyróżnij>nagrody Nobla</wyróżnij> może mi się Pan od dzisiaj nie kłaniać. </Treść> </List> Model mieszany w XML Schema <xsd:schema xmlns:xsd=http://www.w3.org/2001/xmlschema targetnamespace=http://www.list.pl xmlns=http://www.list.pl elementformdefault="qualified"> <xsd:element name="list"> <xsd:element name="treść" minoccurs="1" maxoccurs="1"> <xsd:complextype mixed="true"> <xsd:element name="wyróżnij" minoccurs="0" maxoccurs="unbounded"/> </xsd:schema> 6

Co dalej? Online XML Schema to przyszłość. Czy zagraża DTD? Chyba jednak nie: Wieloletnie doświadczenia związane z wykorzystaniem SGML-a, Dostępność dobrze zbudowanych DTD, Przyzwyczajenie (co się wygodniej czyta?) www.w3.org/xml/schema Źródło najświeższych informacji o XML Schema www.xmlspy.com XML Spy www.tibco.com/products/extensibility/solutions/turbo_xml.html Turbo XML (IDE, które wchłonęło XML Authority) ftp.cogsci.ed.ac.uk/pub/xsv/xsv14.exe Świeżutki XML Schema Validator Henry ego Thompsona xml.apache.org/xerces2-j/ Xerces 7