1 XML Schema Andreas Freier & Tobias Maurer 10. Oktober 2003 Seminar Logische Aspekte von XML - SS 2003 Gert Smolka PS-Lab, Uni Saarland.

Slides:



Advertisements
Ähnliche Präsentationen
Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
Advertisements

Excel – Kurs Philip Clasen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Folienserie des Fonds der Chemischen Industrie
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Vorteile der Online-Produkte
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Workshop zur Medienarbeit der katholischen Kirche Aspekte des Religionsmonitors Berlin, 02. April 2008.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
-17 Konjunkturerwartung Europa September 2013 Indikator > +20 Indikator 0 a +20 Indikator 0 a -20 Indikator < -20 Europäische Union gesamt: +6 Indikator.
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Bäume als Datenmodelle
DOM (Document Object Model)
Welcome DTD. Document Type Definition Graphic Services/Everything you already know about presentations Was ist eine DTD? DTD ist eine Schemasprache.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Betreuerin: Kathleen Jerchel
Differentieller Stromverstärker
Schieferdeckarten Dach.ppt
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Was kann HTML? EINLEITUNG EINLEITUNG Bsp Main Title First Subtitle.
Eine Einführung in die CD-ROM
...ich seh´es kommen !.
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Das 19. Jahrhundert: John Ruskin ( ) und die Kunsterziehungsbewegung in England.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Auslegung eines Vorschubantriebes
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
PROCAM Score Alter (Jahre)
Symmetrische Blockchiffren DES – der Data Encryption Standard
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Großer Altersunterschied bei Paaren fällt nicht auf!
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
Pigmentierte Läsionen der Haut
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Titelmasterformat durch Klicken bearbeiten Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fünfte Ebene 1 Rising energy.
Der Erotik Kalender 2005.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Es war einmal ein Haus
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Kompetenztraining Jura Martin Zwickel / Eva Julia Lohse / Matthias Schmid ISBN: © 2014 Walter de Gruyter GmbH, Berlin/Boston Abbildungsübersicht.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
Qualitative Interviews Sabina Misoch ISBN: © 2015 Walter de Gruyter GmbH, Berlin/Mu ̈ nchen/Boston Abbildungsübersicht / List of Figures.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Monatsbericht Ausgleichsenergiemarkt Gas – November
 Präsentation transkript:

1 XML Schema Andreas Freier & Tobias Maurer 10. Oktober 2003 Seminar Logische Aspekte von XML - SS 2003 Gert Smolka PS-Lab, Uni Saarland

2 Vorschau XML Schema: praktische Sicht Die Essenz von XML Werte und Typen Gültigkeitstheorem Abschluss

3 2x(Descartes, 1637) λx.2x(Church, 1935) (LAMBDA (X) (* 2 X))(McCarthy, 1955) Die Evolution der Sprache

4 X * 2 X (W3C, 1998)

5 X * 2 X (LAMBDA-TERM (VAR-LIST (VAR X)) (EXPR (APPLICATION (EXPR (CONST *)) (ARGUMENT-LIST (EXPR (CONST 2)) (EXPR (VAR X)))))) XML- vs. LISP-Syntax

6 XML Schema: praktische Sicht eine Spezifikationssprache für XML- Dokumente Verbesserung zu DTD: unterschiedliche Typen XML-Syntax

7 Beispiel aus der Praxis Firma X stellt Dokumente zur Verfügung es gibt mehrere Arten von Dokumenten Dokumente sind untereinander verlinkt Dokumente sind verfügbar: online über einen Browser offline von einer CD als gedruckter Text

8 Mögliche Lösung Dokumente werden intern in einer XML- Datenbank gespeichert für jeden Typ von Dokumenten gibt es ein XML Schema beim Schreiben werden Dokumente von der Datenbank validiert es können somit nur gültige Dokumente geschrieben und gelesen werden Weiterer Vorteil: eine eindeutige Spezifikation für jeden Dokumenttyp

9 XML Schema: theoretische Sicht "The Essence of XML" von Jerome Simeon und Philip Wadler: eine der ersten Anwendungen formaler Methoden auf einen Industrie-Standard erste wissenschaftliche Untersuchung der Beziehung zwischen benannten Typen und strukturellen Typen der Beziehung zwischen Validierung und Typzugehörigkeit

10 XML als externes Format zur Darstellung von Daten nicht schwer benötigte Eigenschaften: self-describing: man muß aus der externen Darstellung die interne Darstellung ableiten können round-tripping: beim Konvertieren aus der internen Darstellung in die externe und wieder zurück muß die neue interne Darstellung mit der alten identisch sein

11 XML besitzt keine der beiden Eigenschaften nicht selbstbeschreibend ohne XML Schema, da z.B. keine Unterscheidung zwischen Strings und Integers Beispiel: Überführung in die LISP-Syntax => (foo "1 2 3") oder (foo 1 2 3)? 1 two 3 => (bar 1 "two" 3) oder (bar 1 "two" "3")? kein round-tripping wegen Beschränkungen des XML Schema, z.B. bei Vereinigungen von Integers und Strings

12 Autoren: Die Essenz von XML die Aufgabe von XML ist nicht schwer XML erfüllt diese nicht sehr gut Dennoch: Da XML eine weit verbreitete Technologie ist, lohnt es sich, sie durch Modelle zu formalisieren

13 Besonderheiten des Modells XML Schema stark vereinfacht, z.B. von 19 primitiven Datentypen nur integer und string vereinfachte Syntax: define type feet restricts integer define element height of type feet unsere Schreibweise:

14 Benannte und strukturelle Typen Benannte Typen type Feet = Integer type Miles = Integer unterschiedliche Typen, weil unterschiedliche Namen Strukturelle Typen type Feet = Integer type Miles = Integer Synonyme für den Typ Integer, gleiche Typen, weil gleiche Struktur

15 Typzugehörigkeit und Validierung Programmiersprachen: Wert v ist entweder vom Typ t oder nicht XML: Validierung annotiert ungetypte Werte mit Typen Nur bei validierten Werten ist die Prüfung auf Typzugehörigkeit möglich

16 define type feet restricts integer define element height of type feet => element height { "10023" } validate as element height { "10023" } => element height of type feet { } Ungetypter Wert wurde mit einem Typ annotiert Validierung

17 Gilt: getypter Wert element height of type feet { } matches element height Gilt nicht: ungetypter Wert element height { "10023" } matches element height Prüfung auf Typzugehörigkeit

18 ungetypte Werte UntypedValue::= () |UntypedItem(, UntypedItem)* UntypedItem::= element ElementName { UntypedValue } |String element paper { element title { "Data on the Web" }, element author { "Serge Abiteboul" } }

19 getypte Werte Value::= () |Item(, Item)* Item::=Element |String | Integer Element::= element ElementName OfType? { Value } OfType::= of type TypeName element paper of type paperType { element title of type string { "Data on the Web" }, element author of type string { "Serge Abiteboul" } }

20 Typen Type::= () | ItemType | Type, Type | Type | Type ? | Type + | Type * ItemType ::= ( integer | string ) | ElementType ElementType ::= element ElementName? OfType? Listen: define element ints of type intList define type intList { integer+ } Vereinigungen: define element fact of type intOrStrList define type intOrStrList { ( integer | string )* }

21 Typen Definition ::= define element ElementName OfType | define type TypeName TypeDerivation define element title of type string define element author of type string define element year of type string define element abstract of type string define type publicationType { element title ?, element author *, element abstract ?, element year } define element paper of type publicationType

22 Typen TypeDerivation ::= restricts AtomicTypeName | restricts TypeName { Type } | extends TypeName { Type } define type publicationType { element title ?, element author *, element abstract ?, element year } define type bookType restricts publicationType { element author +, element title, element year } define type ISBNbookType extends bookType { element ISBN of type integer } define element book of type bookType

23 Typen anyType ist die Wurzel der Typhierarchie von XML Schema und wie folgt definiert: define type anyType restricts anyType { ( integer | string | element )* }

24 Worauf wollen wir hinaus? Type UntypedValue Value interne Repräsentationexterne Repräsentation

25 Und so sieht's aus: validate as Type { UntypedValue } Value partielle Funktion

26 THEOREM: Gültigkeitstheorem validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue Beweis durch strukturelle Induktion.

27 validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue Value matches Type element author of type string { "Robert Harper" }, element author of type string { "John Mitchell" } matches element author of type string +

28 element configuration of type configuration.type { element shuttle of type miles { 120 }, element laser of type miles { } } matches element configuration of type configuration.type Value matches Type configuration erwartet: element laser of type feet

29 Value matches Type element configuration { element shuttle { 120 }, element laser { } } matches element configuration of type configurationType configuration ist ungetypt

30 validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue element fact of type intOrStr { "I", "saw", 8, "cats" } erases to element fact { "I saw 8 cats" }

31 validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue element mixed of type anyType { "I saw", "eight ", element em of type string { "cats" } } erases to element mixed { "I saw eight ", element em { "cats" } } formal I saw eight cats XML

32 Zur Erinnerung validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue

33 matches validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue ( ) matches ( ) Value matches Type 1 Value matches Type 1 | Type 2 Value matches Type 1 Value matches Type 2 | Type 1 Value matches ( ) | Type Value matches Type?

34 für Elemente ElementType yields ElementName of type BaseTypeName BaseTypeName resolves to Type TypeName derives from BaseTypeName Value matches Type element ElementName of type TypeName { Value } matches ElementType Wert Typ

35 erases to validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue element ElementName of type TypeName { Value } erases to element ElementName { UntypedValue }

36 erases to validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue Value 1 erases to UntypedValue 1, String 1 Value 2 erases to String 2, UntypedValue 2 String 3 = concat (String 1, " ", String 2 ) Value 1, Value 2 erases to UntypedValue 1, String 3, UntypedValue 2

37 erases to validate as Type { UntypedValue } Value genau dann wenn Value matches Type, Value erases to UntypedValue String erases to String Integer-of-string ( String ) erases to String 8 of type ( integer | string ) "8" Beispiel:

38 Roundtripping Korrolar: Roundtripping Falls dann gilt: Value = Value' Value matches Type Value erases to UntypedValue validate as Type { UntypedValue } Value' Type ist eindeutig (i.S.d. Validierung)

39 Eindeutigkeit Definition: Eindeutigkeit Ein Typ (Type) heißt eindeutig (im Sinne der Validierung), wenn es für jeden ungetypten Wert (UntypedValue) höchstens einen Wert (Value) gibt so dass gilt: validate as Type { UntypedValue } Value

40 Sinnvolle Werte enthalten Werte Elemente mit Typannotation, => der Wert des Elementes passt zum Typ in der Annotation ein durch Validierung erzeugter Wert ist immer sinnvoll matching optimieren

41 Optimiertes Matching Validierung führt immer zu einem sensiblen Wert: validate as Type { UntypedValue } Value Value is sensible ElementType yields ElementName of type BaseTypeName BaseTypeName resolves to Type TypeName derives from BaseTypeName Value matches Type element ElementName of type TypeName { Value } matches ElementType

42 Abschlussbemerkung Andere Typsysteme für XML: benötigen Subtyping Algorithmen, die auf Regulären Baumausdrücken und Endlichen Baumautomaten basieren. Hier: gewöhnliche Reguläre Ausdrücke und Endliche Automaten genügen.

43 Philip Wadler: A formal semantics of patterns in XSLT (1999) Two semantics of XPath (2000) MSL: A model for W3C XML Schema (2001) Philip Wadler und Jerome Simeon: An Algebra for XML Query (2000) Jerome Simeon: YATL: a Functional and Declarative Language for XML (2000) Integrity Constraints for XML (2000) A Unified Constraint Model for XML (2001) Related Work

44 The Essence of XML, Jérôme Siméon & Philip Wadler [POPL`03] Data on the Web, Serge Abiteboul, Peter Buneman, Dan Suciu Quellen