XML Schema: Validieren statt Programmieren

Ähnliche Dokumente
Erik Wilde XML Schema

Namespaces. Namensräume...

XML Schemasprachen. Übersicht und Einordnung. Übersicht. ! DTDs und XML Schema. ! Schemasprachen als Konzept. ! Schemasprachen selbstgemacht

3. XML Schema. XML Schema. Eigenschaften von XML Schema. Vorteile eines expliziten Schemas: Die XML Schema Recommendation des W3C besteht aus:

XML Schema Kurzreferenz

XML Vorlesung FHA SS

Einleitung. Schema root Übersicht Dokumentation

Mario Jeckle. XML Schema

XML Grundlagen Teil I

XML DTD und Schema von Thomas Mangold

XSL Transformation (XSLT) Teil IV

DTDs und XML- Schemata

Repräsentation von Struktur

B Babuschka. Siehe Matrjoschka Babuschka-Design 294, 296, 301, 357 base 102, 109, 238 base64binary 74

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Versuchsziele. 1. Aufgabe. Hochschule Harz FB Automatisierung und Informatik Versuch: XML Thema: Grundkenntnisse in XML mit DTD s und Schemata

Definition von Datentypen mit XML- Schemata

3.1 Sinn und Zweck von Namensräumen

Seminar: mobile GIS Austausch von Geodaten

Präsentation zum Thema XML Datenaustausch und Integration

2. Übung. Systemobjektmodell. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

Semistrukturierte Daten. 2. Datenmodellierung mit XML und XML-Schema XML. Lernziele:

XSD - XML Schema Definition

Konzeptionelle Modellierung von XML-Dokumenttypen

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

Document Type Definition (DTD)

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

GEFEG.FX für ISO und GEFEG.Validation.Portal für ISO 20022:

XML Schema-Sprachen 04

XML, XHTML und MathML

Logische Dokumentenstruktur mit SGML und XML

XML Vorlesung ETHZ SS XQuery XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

BackBüro Service GmbH. Version Dokumentation der XML-Schema-Definitionen für Rezepturen - Basis

IT-Zertifikat: Daten- und Metadatenstandards

Kontrollmitteilungsverfahren

XML-Schema (SCH) Sie erhalten einen Überblick über alle für XML-Schema relevanten Spezifikationen

XML Informationsmodelle

1 Was ist XML? Hallo XML! Kommentare in XML 52

Erhöhung der Datenqualität in XML-Dokumenten von Desktop Applikationen. Alexander Hilliger von Thile - REI/ID

Tutorial 3 Einführung in XML

<B1>Skript</B1> Skript zur Vorlesung Auszeichnungssprachen Stand: September 2016

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Kontroll- und Mitteilungsverfahren

XML Schema 2015 S h_da S Seite 1

Programmieren 2 C++ Überblick

Repetitorium Informatik (Java)

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

XML Schema vs. Relax NG

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

XML und Datenmodellierung

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

2. Einführung in Datenbanken und XML

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

CLICK TO EDIT MASTER TITLE STYLE

Transkript:

namics Developer Days 21./22.6.2002 XML Schema: Validieren statt Programmieren Erik Wilde ETH Zürich http://dret.net/netdret/ 21.6.2002 namics Developer Days XML Schema 1 Übersicht Motivation XML Schema from 10.000 ft Alternativen und Ergänzungen zu XML Schema Probleme und Stand der Technik 21.6.2002 namics Developer Days XML Schema 2 XML Schema Validieren statt Programmieren 1

Motivation Programmieren und Validieren B2B Applikationen brauchen valide Daten viele Bedingungen sind nicht im Schema mehr Validieren heisst weniger Programmieren deklarative vs. prozedurale Vorgehensweise bessere Verträge in B2B Szenarien Information Producer vs. Information Consumer XML und Schemas DTDs und ihre Nachteile XML Schema als Weiterentwicklung von DTDs 21.6.2002 namics Developer Days XML Schema 3 Was ist schlecht an DTDs? eine ganze Menge... keine Datentypen Elemente haben #PCDATA Attribute haben einige wenige Typen (CDATA, ID,...) keine Unterstützung für Modellierungsmethoden Element- und Attributtypen sind isoliert moderne Modellierung benutzt Typhierarchien keine XML Dokument Syntax braucht spezielle Parser, keine XML Tools diverse wenig benutzte obskure Features 21.6.2002 namics Developer Days XML Schema 4 XML Schema Validieren statt Programmieren 2

XML Schema from 10.000 ft XML Schema Simple Types XML Schema Complex Types Type Derivation Identity Constraints Konsistenzbedingungen Advanced Features Reusable Groups und Substitution Groups 21.6.2002 namics Developer Days XML Schema 5 Instanz Element Typ Abstraktionsgrad Instanz 42 Element Anzahl Typ Integer Dokument Schema 21.6.2002 namics Developer Days XML Schema 6 XML Schema Validieren statt Programmieren 3

XML Schema Standards XML Schema Part 1: Structures Element Anzahl Typ Integer XML Schema Part 2: Datatypes 21.6.2002 namics Developer Days XML Schema 7 Was sind "Simple Types"? die Grundbausteine von XML Schema und damit auch XML Dokumenten Inhalt von Elementen oder Attributen Elemente: <isbn>0130655678</isbn> Attribute: <buch isbn="0130655678"> drei Varianten von Simple Types Atomic Types (kleinste Einheit, z.b. Zahlen) List Types (mit Space getrennt, z.b. "3 5 7") Union Types (Vereinigung anderer Simple Types) 21.6.2002 namics Developer Days XML Schema 8 XML Schema Validieren statt Programmieren 4

Hierarchie der Simple Types derived types primitive types ur-types 21.6.2002 namics Developer Days XML Schema 9 Schema der Built-In Types <xs:simpletype name="integer"> <xs:restriction base="xs:decimal"> <xs:fractiondigits value="0" fixed="true"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="nonnegativeinteger"> <xs:restriction base="xs:integer"> <xs:mininclusive value="0"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="positiveinteger"> <xs:restriction base="xs:nonnegativeinteger"> <xs:mininclusive value="1"/> </xs:restriction> </xs:simpletype> 21.6.2002 namics Developer Days XML Schema 10 XML Schema Validieren statt Programmieren 5

Named oder Anonymous? Simple Types kommen in zwei Varianten Named Simple Types Anonymous Simple Types eine Frage der Wiederverwendung Named Types haben einen Typ-Namen können (und sollten) wiederverwendet werden werden immer global deklariert (im gesamten Schema) Anonymous Types werden ohne Name verwendet definiert an der Stelle wo sie verwendet werden damit keine Wiederverwendung möglich eine wichtige Modellierungsfrage! 21.6.2002 namics Developer Days XML Schema 11 Named Simple Types deklariert durch simpletype <xsd:simpletype name="dresssizetype"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="2"/> <xsd:maxinclusive value="18"/> </xsd:restriction> </xsd:simpletype> Inhalt restriction, list oder union definiert, ob weiter abgeleitet werden darf <xsd:simpletype name="dresssizetype" final="#all"> kann spezifisch die Art von Ableitung verbieten extension, restriction, list, union (und #all) 21.6.2002 namics Developer Days XML Schema 12 XML Schema Validieren statt Programmieren 6

Anonymous Simple Types gleiche Struktur wie Named Types simpletype Element aber ohne name (und u.u. final) Attribut immer innerhalb von anderen Typ-Definitionen element, attribute, restriction, list, union die Möglichkeiten sind genau die gleichen <xsd:attribute name="size"> <xsd:simpletype> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="2"/> <xsd:maxinclusive value="18"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> 21.6.2002 namics Developer Days XML Schema 13 Simple Type Restrictions Simple Types können durch Restriction von anderen Simple Types abgeleitet werden der Base Type ist immer ebenfalls ein Simple Type Wurzel dieser Hierarchie ist der anysimpletype Erweiterungen sind nur möglich, indem der Simple Type zum Complex Type erweitert wird Restrictions enthalten Facets Facets sind durch vorgegebene Elemente definiert jede Restriction enthält 0-n Facets Facets können auch wiederholt werden wichtiges Werkzeug zur exakten Typ-Definition 21.6.2002 namics Developer Days XML Schema 14 XML Schema Validieren statt Programmieren 7

Facets definieren Einschränkungen von Wertebereichen von Simple Types Einteilung in zwei Klassen von Facets fundamental Facets grundlegende Eigenschaften constraining (or non-fundamental) Facets einschränkende Eigenschaften Facets haben einen Wert die meisten Facets können fixiert werden 21.6.2002 namics Developer Days XML Schema 15 Constraining Facets die praktisch anwendbaren Facets definieren Einschränkungen von Wertebereichen können bei Typableitungen verschärft werden es gibt 12 Typen von Constraining Facets length, minlength, maxlength, pattern, enumeration, whitespace, maxinclusive, maxexclusive, minexclusive, mininclusive, totaldigits, fractiondigits nicht alle Facets sind für alle Typen sinnvoll Verfügbarkeit richtet sich nach Primitive Type 21.6.2002 namics Developer Days XML Schema 16 XML Schema Validieren statt Programmieren 8

Primitive Types Facets (I) string boolean float double decimal duration datetime time date length, minlength, maxlength, pattern, enumeration, whitespace pattern, whitespace pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive totaldigits, fractiondigits, pattern, whitespace, enumeration, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive 21.6.2002 namics Developer Days XML Schema 17 Primitive Types Facets (II) gyearmonth gyear gmonthday gday gmonth hexbinary base64binary anyuri QName NOTATION pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive pattern, enumeration, whitespace, maxinclusive, maxexclusive, mininclusive, minexclusive length, minlength, maxlength, pattern, enumeration, whitespace length, minlength, maxlength, pattern, enumeration, whitespace length, minlength, maxlength, pattern, enumeration, whitespace length, minlength, maxlength, pattern, enumeration, whitespace length, minlength, maxlength, pattern, enumeration, whitespace 21.6.2002 namics Developer Days XML Schema 18 XML Schema Validieren statt Programmieren 9

Verwendung von Facets Facets können fixiert werden keine weitere Änderung in Subtypen erlaubt wird mit dem fixed Attribut angegeben nicht möglich für pattern und enumeration Facets werden vererbt entlang der gesamten Typenhierachie wiederholte Facets müssen restriktiver sein keine Erweiterung der Einschränkungen erlaubt gilt auch für pattern und enumeration 21.6.2002 namics Developer Days XML Schema 19 Was man mit Facets nicht kann... Facets schränken einen Simple Type ein in verschiedenen Dimensionen in u.u. mehreren Schritten (Typableitung) können sich nicht auf andere Typen beziehen z.b. End-Datum muss nach dem Anfang liegen können keine Auswertungen vornehmen Summenfeld muss Summe bestimmter Felder sein d.h. konkrete Instanzen sind unberücksichtigt falls notwendig: zusätzliche Mechanismen z.b. Schematron oder programmgesteuert 21.6.2002 namics Developer Days XML Schema 20 XML Schema Validieren statt Programmieren 10

Patterns (Regular Expressions) Einschränkung von Simple Types Restrictions mit dem pattern Element Beschränkung der lexikalischen Werte einfacher Aufbau der Ausdrücke recht ähnlich den RegEx aus Perl, vi, grep,... zusätzlich Einbeziehung von Unicode Klassen sollten fast immer verwendet werden z.b. alle Texte auf ISO 8859-1 beschränken erleichtert das Leben der Applikationssoftware 21.6.2002 namics Developer Days XML Schema 21 Simple Types in XML Schema bisher haben wir Atomic Types betrachtet Datentypen gemäss der Typhierarchie Atomic Types erlauben genau einen Wert gemäss genau eines Typs (Typen können erweitert werden) Erweiterung des "genau einen Wert": Lists Listen von Werten sind erlaubt es dürfen nur Simple Types verwendet werden Trennung mit XML Whitespace Erweiterung des "genau eines Typs": Unions Mengen von Typen sind erlaubt es dürfen nur Simple Types verwendet werden 21.6.2002 namics Developer Days XML Schema 22 XML Schema Validieren statt Programmieren 11

Simple Type Derivations Derivation Restriction List Union Atomic Atomic List Union Base Type List List Union Union Union List Union 21.6.2002 namics Developer Days XML Schema 23 Was sind "Complex Types"? Elemente mit komplexen Typ haben entweder Child Elements oder Attribute ein komplexer Typ hat (meist) entweder ein Attribut oder ein Element Attribute haben auch einen Typ, dieser kann aber nie ein Complex Type sein. Complex Types haben entweder einen Namen (global definiert) oder sind anonym (lokal definiert) Elemente in einem Complex Type können nur dann den gleichen Namen haben, wenn sie auch vom gleichen Typ sind (andere Eigenschaften dürfen aber verschieden sein, z.b. minoccurs) 21.6.2002 namics Developer Days XML Schema 24 XML Schema Validieren statt Programmieren 12

Content in Complex Types Content eines Elementes sind die Daten (Zeichenketten) und Child Elements zwischen den beiden Tags des Elementes Arten von Content für komplexe Typen: Simple Content Complex Content: Element-only Content Mixed Content Empty Content 21.6.2002 namics Developer Days XML Schema 25 Complex Types + Content Types Simple Type Complex Type Simple Content Complex Content Element only Mixed Empty 21.6.2002 namics Developer Days XML Schema 26 XML Schema Validieren statt Programmieren 13

Wieso Type Derivation? "vom Allgemeinen zum Speziellen" Erweiterung von bestehenden Typ-Definitionen (Original bleibt erhalten) abgeleitete Typen können zur Verfeinerung eines Schemas benutzt werden oder erlauben die Weiterverwendung von bereits definierten Typen (statt mit Copy/Paste Typ- Deklaration kopieren und anpassen) objekt-orientierter Ansatz 21.6.2002 namics Developer Days XML Schema 27 Type Extension und Restriction Type Extension (Erweiterung): bestehenden Typ mit Attributen und/oder Child Elements erweitern Werte des Basis-Typs sind nicht unbedingt auch gültige Werte des erweiterten Typs Type Restriction (Einschränkung): bestehender Typ wird eingeschränkt Wertebereich eines eingeschränkten Typs ist Untermenge des Basis-Typs alle Werte des eingeschränkten Typs gehören auch in den Wertebereich des Basis-Typs Complex Types können nicht gleichzeitig erweitert und eingeschränkt werden (nur in 2 Schritten) 21.6.2002 namics Developer Days XML Schema 28 XML Schema Validieren statt Programmieren 14

Erlaubte Typ-Erweiterungen Base Type Complex Type Simple Type Simple Content Element only Complex Content Mixed Empty Simple Type Derived Type Complex Type Simple Content Complex Content Elementonly Mixed Empty 21.6.2002 namics Developer Days XML Schema 29 Erlaubte Typ-Restriktionen Base Type Complex Type * Falls alle Child Elements optional sind Simple Type Simple Content Element only Complex Content Mixed Empty Simple Type Derived Type Complex Type Simple Content Complex Content Elementonly Mixed * Empty * * 21.6.2002 namics Developer Days XML Schema 30 XML Schema Validieren statt Programmieren 15

Identity Constraints Erweiterung des ID/IDREF(S) Konzepts bieten eine ganze Reihe von Vorteilen belassen den Typ der Keys ermöglicht eine Typ-Validierung der Keys ermöglicht verschiedene Key Typen, z.b. Integers/Strings ermöglichen Keys über mehrere Felder ermöglichen scoped Keys (d.h. kontext-abhängig) beruhen auf Wertegleichheit (z.b. +002 = 2) können auch auf Elemente angewendet werden sind etwas komplizierter zu benutzen 21.6.2002 namics Developer Days XML Schema 31 ID/IDREF(S) in XML DTDs Referenzen von Elementen zu Elementen IDs werden als Attribute vergeben sie müssen gültige XML Namen sein sie müssen im XML Dokument eindeutig sein IDREF(S) werden als Attribute vergeben sie müssen existierende IDs referenzieren keine Möglichkeit der eigenen Typisierung Identifikation einzig über den Attributtyp ID keine Integers als Keys möglich (nur XML Namen) unabhängig vom Elementtyp 21.6.2002 namics Developer Days XML Schema 32 XML Schema Validieren statt Programmieren 16

Identity Constraints Eigenschaften Identity Contraints sind Einschränkungen genauere Spezifikation des Inhalts Keys/Referenzen nur eine mögliche Anwendung in vielen Fällen anwendbar genauere Spezifikation des Schemas prüfen deklarativ auf semantische Probleme nicht alles kann angegeben werden keine kausalen Abhängigkeiten programmierte Tests sind immer noch notwendig leider keine Verbindung mit dem Typ-Konzept 21.6.2002 namics Developer Days XML Schema 33 Reusable Groups wiederverwendbare Gruppen Elemente (Named Model Groups) Attribute (Attribute Groups) Deklaration von Gruppen immer gemeinsam verwendete Elemente/Attribute andere Art der Beziehung als bei Type Derivation lockerer Zusammenhang statt Spezialisierung Referenzierung über Gruppennamen entspricht Parameter Entities in DTDs semantisch wohldefiniert und damit sauberer 21.6.2002 namics Developer Days XML Schema 34 XML Schema Validieren statt Programmieren 17

Substitution Groups Ersetzen von Elementen durch andere Elemente es müssen abgeleitete Typen sein Beispiel: Element Kurs könnte in einer Liste von Kursen ersetzt werden durch Elemente wie Kochkurs, vakurs etc ermöglichen heterogene Aufzählungen Liste von Elementen unterschiedlicher Typen in einer Schema-Instanz Substitution Groups machen solche Listen lesbarer 21.6.2002 namics Developer Days XML Schema 35 XML Schema Processor Software für die Validierung von Infosets oftmals XML Parser mit Schema Unterstützung unterstützen neben DTDs auch XML Schema viele Implementierungen sind noch neu XML Schema lässt Spielraum verschiedene Parser machen verschiedene Dinge nicht alle Features müssen unterstützt werden Lokalisierung von Schema Dokumenten Zugriff auf das Resultat der Validierung Requirements definieren und abklären 21.6.2002 namics Developer Days XML Schema 36 XML Schema Validieren statt Programmieren 18

XML Schema Validation XML Schema arbeitet auf dem Infoset Eingabe der Validierung ist ein XML Infoset das Infoset wird validiert je nach processcontents Anweisungen d.h. u.u. werden Teile nicht validiert das Infoset wird um das Resultat ergänzt Post Schema Validation Infoset Contributions XML kennt ähnliches (Default oder Fixed Attribute) sehr viel detaillierter als eine ja/nein Entscheidung zusätzliche Informationen im Infoset können von Programmen ausgewertet werden 21.6.2002 namics Developer Days XML Schema 37 Effekte der Schema-Validierung das Infoset verändert sich PSVI Contributions aber auch "normale" Infoset Informationen z.b. werden Attributdefaults ergänzt sehr wichtig für die Weiterverarbeitung ein Schema sollte von Processing Guidelines begleitet werden u.u. Minimalbedingungen an einen Parser XML Schema ist keine komplette Lösung das Umfeld muss ebenso betrachtet werden 21.6.2002 namics Developer Days XML Schema 38 XML Schema Validieren statt Programmieren 19

Probleme und Stand der Technik XML Schema ist aufwendig deutlich mehr Aufwand als DTDs XML Schema ist fehlerhaft der Standard enthält Fehler im Typsystem XML Schema Software ist fehlerhaft oftmals nicht der volle Standard implementiert nicht auf eine Software verlassen falsch validierte Dokumente sind ein Problem falsche XML Schemas sind ein grosses Problem Test-Suite ist in Entwicklung u.u. Entwicklung eines offiziellen Conformance Test 21.6.2002 namics Developer Days XML Schema 39 Und trotzdem: XML Schema andere Software ist auch fehlerhaft DTD-Validierung ist auch nicht perfekt programmierte Tests sind es auch nicht XMl Schema Validierung wird besser werden XML Schema verbessert die Modellierung man muss mehr nachdenken über seine Daten man kann Modellierungstools benutzen XML Schema als B2B Basis Contract auf Basis XML Schema statt B2B bessere formale Übereinkunft weniger Interpretationsspielraum auf beiden Seiten 21.6.2002 namics Developer Days XML Schema 40 XML Schema Validieren statt Programmieren 20

"Validieren" von XML Schemas Validation definiert XML Dokument Validierung Ausgangspunkt ist ein korrektes XML Schema wie kommt man zu einem korrekten Schema? XML Schema selber sagt nichts dazu (z.b. lazy vs. eager) Apache Xerces XML Schema Parser http://xml.apache.org/xerces2-j/ Schema Quality Checker von IBM Alphaworks http://www.alphaworks.ibm.com/tech/xmlsqc validiert keine Dokumente, sondern prüft Schemas Achtung: funktioniert nicht mit va 2 v 1.4.x 21.6.2002 namics Developer Days XML Schema 41 Und so kann man vorgehen... 1. beginnen mit einem einfachen XML Schema erstellt mit einem graphischen Tool wie XML Spy konvertiert aus einer bestehenden DTD 2. "validieren" des XML Schema mit Tools 3. validieren von Beispiel- oder Livedaten Toolunterstützung zur Erstellung von Beispieldaten 4. inkrementelle Verfeinerung des XML Schema z.b. Simple Type Facets, insbesondere Patterns 5. verbleibende Lücken der Validierung feststellen Lücken füllen mit Schematron o.ä. oder Code 21.6.2002 namics Developer Days XML Schema 42 XML Schema Validieren statt Programmieren 21

Alternativen & Ergänzungen XML Schema kann nicht alles keine Auswertung von Instanzen z.b. ein Summenfeld in einer Rechnung keine Abhängigkeiten zwischen Instanzen ein Integer muss grösser sein als ein anderer Schematron validiert Instanzen Tree Patterns statt Grammatiken finden von Context Nodes, Überprüfen von Bedingungen beliebige XPath Ausdrücke sind erlaubt (Effizienz!) kann eine Grammatik ergänzen oder ersetzen Schematron Schema wird nach XSLT übersetzt erfordert keine spezielle Infrastruktur oder Software 21.6.2002 namics Developer Days XML Schema 43 Zusammenfassung XML Schema als DTD++ Weiterentwicklung aufgrund von realem Bedarf Verbesserung in zwei Teilbereichen Datentypen Datenstrukturen XML Schema Simple Types einfachen Typenkonzept anwendungsorientierte Datentypen Ableitung von Typen möglich Einschränkungen von Wertebereichen (Facets) Verwendung von List oder Union Types 21.6.2002 namics Developer Days XML Schema 44 XML Schema Validieren statt Programmieren 22