Erik Wilde XML Schema

Ähnliche Dokumente
XML DTD und Schema von Thomas Mangold

XML Grundlagen Teil I

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

XML Informationsmodelle

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester XML und Datenbanken.

Projektseminar Texttechnologische Informationsmodellierung

Web-Programmierung (WPR)

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

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

2. Einführung in Datenbanken und XML

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

Java API for XML Binding

1 Software Engineering 1

Java und XML 2. Java und XML

Extensible Markup Language (XML)

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

5. Programmierschnittstellen für XML

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

Drum prüfe, wer sich ewig bindet...

Jens Kupferschmidt Universitätsrechenzentrum

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

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

Norm 230 Übertragung von Dateien

Validierung von XML Dokumenten

XML Schema vs. Relax NG

Tutorial: Die Extensible Markup Language (XML)

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

XML Extensible Markup Language

5. Programmierschnittstellen für XML

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Strukturierung von Inhalten

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

XML, XHTML und MathML

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen

XML-Praxis. XML-Grammatiken. Jörn Clausen

IT-Zertifikat: Daten- und Metadatenstandards

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

VU Semistrukturierte Daten 2. XQuery (Teil 2) Inhalt

inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG

... MathML XHTML RDF

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Gliederung. Service Oriented Architecture - XML Technologies. 1 von 11

Berner Fachhochschule Software Schule Schweiz JDOM. Beatrice Amrhein. Oktober 06

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

XML Extensible Markup Language

Verteilte Anwendungen. Teil 2: Einführung in XML

XML - Extensible Markup Language. Agenda - Oracle XML DB

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Model Driven Software Development

Kapitel 5: Datenaustausch mit XML

WSDL Web-basierte Anwendungen WSDL WSDL. Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien. Web Services Description Language

XML Extensible Markup Language

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Anhang B. B.1 Webseiten für Entwickler. Anwendungen

Web-Anwendungsentwicklung mit dem Delivery Server

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Zusammenfassung M. Rigling 1/22 Version 1.0

XMI & Java. von Stefan Ocke so3@inf.tu-dresden.de 5.Juli 2001

Kontroll- und Mitteilungsverfahren

Vom kanonischen Geschäftsobjektmodell zur Konkreten WSDL

Aufgaben eines Codegenerators

ASN.1 <-> XML TRANSLATION

Einführung in XML. Seminar: XML in der Bioinformatik Frank Schönmann WS 2002/03

XML. Basis Syntax. Basis Syntax. XML (extensible Markup Language)

XML-RPC, SOAP und Web Services. Jörn Clausen

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

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

Dynamische Websites mit XML und PHP4

Wiederholung: Beginn

InDesign. InDesign und XML wie geht s weiter? <xml/> markupforum Stuttgart 1. März Workflows IDML. Zukunft. gregor.fellenz@indesignblog.

Daten- und Metadatenstandards Wintersemester 2011 / November 2011 XML II: DTD

Vorlesung - Web Services

HYPERIMAGE. Technologieentwicklung und WebServices

Präsentation zum Thema XML Datenaustausch und Integration

Ferhat Ayaz. XML mit C++

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

XML-Praxis. XML-Grammatiken.

XML-Technologien. XML-Parser. Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010

11 XML Programmierung

Java für C++ Programmierer

Zustandsgebundene Webservices

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Definition der Schnittstelle zur Übertragung der. gemäß Deponieselbstüberwachungsverordnung NRW

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

WCF Services in InfoPath 2010 nutzen

5. Übung zur Vorlesung Service-orientierte Architekturen

Vorlesung Computerphilologie. Ontologien und Ontologie-Sprachen

Web-Konzepte für das Internet der Dinge Ein Überblick

Modellbasierte Softwareentwicklung mit EMF

Spezifikationsmethode zur Generierung von Modellen und Tests. Qualifizierung von Codegeneratoren.

1. Einführung. Gliederung. Document Object Model (DOM) DOM Die Spezifikation (1) Level 2 HTML Specification. 1. Einführung. 2.

GWI Research. Gesellschaft für Wirtschaftsberatung und Informatik

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

XML-RPC zur Backend- Kommunikation in einem mobilen SBB-Projekt

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

Das Umfeld von XML. Übersicht

Java Web Services. Seminarunterlage. Version 4.02 vom

G.I.G. GUI-Erzeugung für DLR-Anwendungscodes

Transkript:

XML Schema Erik Wilde ETH Zürich http://dret.net/netdret/ Abstract XML Schema wird als Grundlage für eine zunehmende Anzahl von XML-Technologien (Web Services, XQuery, XSLT 2.0) immer wichtiger. XML Schema führt als wichtigste Neuerung eine Typebene in die Welt von XML ein, die aus zwei grundlegenden Arten von Typen (Simple und Complex Types) besteht. Dieses Typkonzept und die Konsequenzen für XML-Anwendungen werden in dieser Session vorgestellt. Erik Wilde XML Schema 2 JAX 2004 1

Übersicht DTDs XML Schema Anwendungen von XML Schema Eigenschaften von XML Schema Typen und ihre Verwendung lokale und globale Deklarationen Umgang mit XML Schema Modellierung und Programmierung Zusammenfassung Erik Wilde XML Schema 3 Nachteile von DTDs keine Beziehungen zwischen Elementtypen keine Typ-Hierarchie der Elemente zusammenhangsloses Nebeneinander keine Unterstützung von Wiederverwendung verbreitetes Parameter Entity Design Pattern keine anwendungsorientierten Datentypen keine Unterstützung für XML Namespaces "DTDs and Namespaces don't mix" keine XML Syntax kann nicht mit XML Tools verarbeitet werden Erik Wilde XML Schema 4 JAX 2004 2

Schemasprachen als Konzept durch eine DTD validierte Dokumente well-formed XML Dokumente Erik Wilde XML Schema 5 DTD-valid vs. Application-valid durch eine DTD validierte Dokumente nützlich well-formed XML Dokumente Erik Wilde XML Schema 6 JAX 2004 3

XML Schema CLIX CRVX DDML DSD DT4DTD DTD Examplotron MNS MSL NRL RELAX RELAX NG SAF Schematron SOX TREX XCSL XDR XML-Data XML Schema http://dret.net/glossary/xmlschemalanguage viele verschiedene Verbesserungsvorschläge DTD um Datentypen erweitern (DT4DTD) weitergehende Ansätze verschiedener Akteure XML Data von Microsoft, später reduziert auf XDR Konzentration der Aktivitäten beim W3C alle wichtigen Akteure waren beteiligt separate Spezifikation des W3C keine Veränderung der XML Spezifikation basiert auf verschiedenen W3C Spezifikationen XML 1.0, XML Infoset, XML Namespaces, XML Base mittlerweile Basis vieler XML-Technologien Erik Wilde XML Schema 7 XML Schema als DTD++ durch eine DTD validierte Dokumente durch ein XML Schema validierte Dokumente well-formed XML Dokumente Erik Wilde XML Schema 8 JAX 2004 4

Schema-valid vs. Application-valid durch eine DTD validierte Dokumente durch ein XML Schema nützlichvalidierte Dokumente well-formed XML Dokumente Erik Wilde XML Schema 9 Valid und schema-valid XML XML unterscheidet zwischen zwei "Levels" well-formed gehorchen dem XML-Standard valid sind well-formed und gehorchen einer DTD well-formed und valid Konzepte sind direkt im XML Standard definiert können mit DTD und Dokument verifiziert werden schema-valid Dokumente müssen gemäss einem XML Schema validiert werden gibt es nur mit XML Schema Applikationen haben mehr Randbedingungen als valid Dokumente Erik Wilde XML Schema 10 JAX 2004 5

XML Schema Parser XML Schema Document SGML Declaration XML Schema Parser Erik Wilde XML Schema 11 XML Schema validiert Bäume streng genommen keine XML-Anwendung auf dem Infoset (XML Abstraktion) definiert Validierung ist definiert als Infoset-Operation Eingabe ist ein XML Infoset die Validierung ergänzt das Infoset um Informationen Post-Schema Validation Infoset (PSVI) Contributions Ausgabe ist ein annotiertes Infoset viel verschiedene Information im PSVI Erfolg der Validierung (valid/invalid/partial/skipped) Typ-Informationen (kommen nicht aus der Instanz) Verweis auf die Schema Components Erik Wilde XML Schema 12 JAX 2004 6

XML Schema & Web Services Web Services sind XML-basierte Applikationen Definition der Schnittstellen mittels WSDL Typdefinitionen in WSDL benutzen XML Schema Austausch der Daten mittels SOAP Instanzen von XML Schema definierten Schnittstellen Modellierung von WSDL Datentypen im einfachsten Fall Generierung aus einer Instanz schnell und einfach, aber kein "gutes" XML Schema für langlebige komplexe Anwendungen: gute Modelle Versionierung der WSDL Schnittstellen u.u. Koexistenz verschiedener Softwareversionen Erik Wilde XML Schema 13 XML Schema & XQuery XQuery wird die Abfragesprache für XML in der ersten Version keine Manipulation von Daten zum grossen Teil auf XPath 2.0 beruhend Abfragesprachen brauchen Datentypen ansonsten gibt es nur textuelle Vergleiche untauglich für Zahlen, Daten, Zeiten,... ansonsten gibt es keine Relationen grösser, kleiner, Intervalle,... XQuery benutzt die XML Schema Datentypen an sich benutzt XQuery das XPath 2.0 Datenmodell Erik Wilde XML Schema 14 JAX 2004 7

XML Schema & XSLT 2.0 XSLT 2.0 erweitert XSLT 1.0 stark deutliche Verbesserung des Sprachumfangs deutliche Verbesserung der Expression Language XSLT 1.0 hat ein sehr einfaches Datenmodell XPath 1.0: Node Sets, Boolean, Number, String keine weitergehenden Datentypen Daten, Zeiten, Zeitintervalle,... keine Operationen auf solchen Werten möglich XSLT 2.0 benutzt die XML Schema Datentypen an sich benutzt XSLT 2.0 das XPath 2.0 Datenmodell Erik Wilde XML Schema 15 Was ist neu an XML Schema? XML Schema führt Datentypen ein Datentypkonzept orthogonal zu XML soweit es eben geht, XML 1.0 bleibt unverändert Simple Types und Complex Types XML Schema führt Typableitungen ein verschiedene Arten der Typableitung sind möglich es ergibt sich eine Typhierarchie XML Schema modernisiert ID/IDREF (fast) alles wird besser als in DTDs aber der IDREFS Typ wird nicht mehr unterstützt Erik Wilde XML Schema 16 JAX 2004 8

XML Schema Typen Instanz XML Dokument Element DTD Element Typ XML Schema Schema Erik Wilde XML Schema 17 Was ist ein Attribut? was ist ein Attribut in der Instanz? was XML 1.0 definiert wie ein Attribut aussieht zusätzlich dazu die Definition der XML Namespaces wie wird ein Attribut definiert? ein Attribut hat einen Simple Type es kann optional oder verpflichtend sein es kann einen Defaultwert haben es kann an drei Stellen definiert werden 1. als Attribut eines Complex Type 2. als eigenständiges Attribut zur Referenzierung 3. innerhalb (u.u. geschachtelter) Gruppen von Attributen Erik Wilde XML Schema 18 JAX 2004 9

Was ist ein Simple Type? definiert die Grundbausteine von XML Schema und damit auch XML Dokumenten definiert Inhalt von Elementen oder Attributen Element: <isbn>0130655678</isbn> Attribut: <buch isbn="0130655678"> drei Varianten von Simple Types 1. Atomic Types (kleinste Einheit, z.b. Zahlen) 2. List Types (mit Space getrennt, z.b. "3 5 7") 3. Union Types (Vereinigung anderer Simple Types) Erik Wilde XML Schema 19 Hierarchie der Simple Types derived types primitive types built-in types ur-types Erik Wilde XML Schema 20 JAX 2004 10

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 Restrictions enthalten Facets Facets sind durch vorgegebene Elemente definiert es gibt 12 Arten von Facets jede Restriction enthält 0-n Facets Facets können wiederholt werden wichtiges Werkzeug zur exakten Typ-Definition Erik Wilde XML Schema 21 Primitive Types Facets (I) string boolean float double decimal duration datetime time date length, minlength, maxlength, pattern, enumeration, whitespace pattern, whitespace totaldigits, fractiondigits, pattern, whitespace, enumeration, maxinclusive, maxexclusive, Erik Wilde XML Schema 22 JAX 2004 11

Primitive Types Facets (II) gyearmonth gyear gmonthday gday gmonth hexbinary base64binary anyuri QName NOTATION 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 Erik Wilde XML Schema 23 Patterns (Regular Expressions) Einschränkung von Simple Types Restrictions mit dem pattern Element Beschränkung der lexikalischen Werte einfacher Aufbau der Ausdrücke normale Zeichen: "C&A" Zeichenklassen: "\p{isbasiclatin}" Zeichenmengen: "[\p{isbasiclatin}-[\d]]" Quantifiers: "[a-za-z]{1,8}" Klammerausdrücke: "(XML(\s+ -))?Schema" beliebige Kombination dieser Mechanismen Erik Wilde XML Schema 24 JAX 2004 12

Was ist ein Element? was ist ein Element in der Instanz? was XML 1.0 definiert wie ein Element aussieht zusätzlich dazu die Definition der XML Namespaces wie wird ein Element definiert? ein Element hat (meist) einen Complex Type es darf auch einen Simple Type haben es kann Identity Constraints enthalten es kann an drei Stellen definiert werden 1. im Content Model eines Complex Type 2. als eigenständiges Element zur Referenzierung 3. innerhalb wiederverwendbarer Named Model Groups Erik Wilde XML Schema 25 Was ist ein Complex Type? definiert die Verwendung von Elementen durch den erlaubten Inhalt (das Content Model) und die erlaubten Attribute Content Model (a, b?, (c d e)) Complex Type Attributes attr1 (xs:decimal) attr2 (xs:string)? Complex Types können abgeleitet werden Restriction schränkt Inhalt und/oder Attribute ein Extension fügt Inhalt und/oder Attribute hinzu Erik Wilde XML Schema 26 JAX 2004 13

Complex Type Restriction das Inhaltsmodell kann eingeschränkt werden die Attribute können eingeschränkt werden ihre Verwendung oder ihre Typen Instanzen sind gültig gemäss des Basistyps Code kann 1:1 wiederverwendet werden Content Model (a, b, (c d )) Restricted Complex Type Attributes attr1 (xs:integer) attr2 (xs:string) Erik Wilde XML Schema 27 Complex Type Extension Hinzufügen von Inhalt oder Attributen Inhalt wird implizit an das Content Model angehängt Attribute werden der Attributmenge hinzugefügt Instanzen sind ungültig gemäss dem Basistyp Code muss mit der Erweiterung umgehen können Extended Complex Type Content Model ((a,b?,(c d e)), (f,g)) Attributes attr3 (xs:anyuri) Erik Wilde XML Schema 28 JAX 2004 14

Identity Constraints Erweiterung des ID/IDREF Konzepts aber IDREFS wird nicht unterstützt 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 beruhen auf Wertegleichheit (+002 integer = 2 integer ) ermöglichen Keys über mehrere Felder ermöglichen scoped Keys (d.h. kontext-abhängig) können auch auf Elemente angewendet werden sind etwas komplizierter zu benutzen Erik Wilde XML Schema 29 XML Schema Components Erik Wilde XML Schema 30 JAX 2004 15

Erklärung der Zusammenhänge 1. Elemente werden durch Typen definiert Simple und Complex Types sind erlaubt 2. Simple Type Ableitung von Simple Types 3. Complex Type Ableitung von Typen Simple und Complex Types sind erlaubt 4. Attribute werden durch Typen definiert ein Attribut hat immer einen Simple Type 5. Complex Types verwenden Elemente (Content Model) und Attribute Erik Wilde XML Schema 31 Alle XML Schema Components Erik Wilde XML Schema 32 JAX 2004 16

Lokale und Globale Deklarationen XML Schema unterstützt Wiederverwendung von Typen (simple und komplexe Typen) von Elementen und Attributen eine Modellierungsfrage des Schemas keine Auswirkungen auf die Instanzen wichtig für langlebige Schemas Wiederverwendung von Schemateilen Versionierung beide Konzepte sind orthogonal alle Kombinationen sind möglich und sinnvoll Erik Wilde XML Schema 33 Orthogonalität der Konzepte Element/Attribut Typen Global Lokal Global 1: Element/Attribut und Typ sind benannt und wiederverwendbar 3: Element/Attribut ist wiederverwendbar und verwendet einen lokal definierten Typen Lokal 2: lokal definiertes Element/Attribut verwendet benannten Typ 4: lokal definiertes Element/Attribut verwendet lokal definierten Typen Erik Wilde XML Schema 34 JAX 2004 17

1: Alles Global globale Definition von Elementen und Typen maximiert die Wiederverwendbarkeit macht die XML Schema Source schwer lesbar mögliche Variante als generelles Vorgehen Erik Wilde XML Schema 35 2: Globale Typen ermöglicht die Wiederverwendung von Typen verschiedene Elemente mit gleichem Typ ermöglicht Typen, die auf Typen basieren unterstützt strukturelle Gemeinsamkeiten Erik Wilde XML Schema 36 JAX 2004 18

3: Globale Elemente/Attribute dies ist die einzig mögliche Variante in DTDs aber nur fast, denn nur Elemente sind global Attribute jedoch lokal (in der ATTLIST des Elements) gleiche Modellierungsprobleme wie in DTDs Wiederverwendung von Elementen die Struktur der Elemente ist nicht wiederverwendbar Erik Wilde XML Schema 37 4: Alles Lokal Russian Doll Modellierungsstil alles ist ineinandergeschachtelt maximiert Kompaktheit, reduziert Übersichtlichkeit ermöglicht keinerlei Wiederverwendung und damit auch keine Rekursion es exisitiert nur eine globale Deklaration das Document Element ist global definiert Erik Wilde XML Schema 38 JAX 2004 19

Modellierungsfragen ist XML Schema meine Modellierungssprache? falls ja, sollten Modellierungsregeln definiert werden falls nein, wird es generiert aus dem Modell Modellierung für Wiederverwendung Typbibliotheken für verschiedene XML Schemas verschiedene Applikationen verschiedene Versionen einer Applikation Modellierungsrichtlinien sind wichtig XML Schema bietet (zu) viele Freiheiten Kontrolle z.t. über final, block und abstract schlechte Modellierung kann sehr teuer werden Erik Wilde XML Schema 39 Implementierungsfragen XML Schema benutzt Typen viele Mechanismen beruhen auf der Typebene Programme sollten eher Typen als Namen verwenden XML 1.0 kennt keine Typen in sehr limitierter Weise und nur für Attribute Typbasierung beeinflusst durch Modellierung Russian Doll Schema braucht keine Typen globale Typen sollten erkannt werden abgeleitete Typen mit abgeleitetem Code verarbeiten XML Schema kennt sogar Casting (Type Substitution) Erik Wilde XML Schema 40 JAX 2004 20

XML Schema Support XML Schema Support in APIs bisher kein etabliertes API für PSVI Contributions bisher kein etabliertes API für Schema Components XML Schema Implementierungen viele Parser implementieren XML Schema kaum einer implementiert es komplett und korrekt XML Schema Test Suites vom W3C http://www.w3.org/2001/05/xmlschema-test-collection.html IBM's Schema Quality Checker (SQC) http://www.alphaworks.ibm.com/tech/xmlsqc Erik Wilde XML Schema 41 Zusammenfassung XML Schema als Basis für XML führt Typen ein ermöglicht bessere (restriktivere) Schemas als DTDs XML Schema ist ein komplexer Standard viele Modellierungsvarianten Schemas werden schnell unübersichtlich XML Schema Modellierung ist wichtig Basis für Datenbanken und verteilte Applikationen bisher sehr wenig Arbeiten in diesem Bereich Erik Wilde XML Schema 42 JAX 2004 21