Dokumentverarbeitung

Ähnliche Dokumente
XML-Übersicht. Von HTML zu XML

XML-Übersicht. Von HTML zu XML. Nutzen von XML. Geschichte von XML. Eigenschaften von XML. Nutzen von XML (extensible Markup Language)

Kapitel WT:III (Fortsetzung)

XML Schema 2012/2013 S Seite 1 h_da W

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

XML Schema S 2010/2011 a W _d Seite 1 h

2a) Rekursion (zugeschnitten auf Anfrage) (C) Prof. E. Rahm Universität Leipzig

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

XML Schema 2015 S h_da S Seite 1

XSD - XML Schema Definition

XML Schema. Seite 1. h_da SS 22007

XML Schema S 2012 h_da S Seite 1

XML Schema 2015 S h_da S Seite 1

Einleitung. Schema root Übersicht Dokumentation

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

XML Schema S 2011 h_da S Seite 1

XML Schema 2016 S h_da S Seite 1

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Definition von Datentypen mit XML- Schemata

XML Schema 2012/2013 S Seite 1 h_da W

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

Klaus Schild, Klaus Schild, Element-Deklaration: 1. Möglichkeit

XML Schema vs. Relax NG

XML-Schema. Einordnung

Exkurs: Backus-Naur-Form (BNF) Document Type Definition (DTD) W3C XML Schema (XSD) RELAX NG. Diskussion

XML-Schema. Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme


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

Zusammenfassung M. Rigling 1/22 Version 1.0

Nonstandard Datenbanken

6. XML-Datenbanken: Datendefinition

5. XML Datenbanken: Datendefinition

DTDs und XML-Schema. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

5. XML-Datenbanken: Datendefinition

XML-Schema Datentypen

Warum XML-Schema? XML-Schema DTD

Deklaration standalone="yes" Quelle:

DTDs und XML- Schemata

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

XML-Schema im Detail. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken

4. XML-Datenbanken: Datendefinition

Technische Richtlinie

Diese Version ist anwendbar für die Übermittlung von Daten, die die folgenden Veranlagungszeiträume betreffen:

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

Herbstsemester Januar Datenbanksysteme II

Infobrief der Bundesagentur für Arbeit Datenlieferung über XSozial-BA-SGB II:

Einführung in XML. Präsenzveranstaltung zur E-Learning-Veranstaltung. Sommersemester Prof. Dr. Klaus-Peter Fähnrich Heiko Kern

XML Vorlesung FHA SS

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

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

XML DTD und Schema von Thomas Mangold

Seminar: mobile GIS Austausch von Geodaten

Aufgabe 1 : XML Schema ( (g,h,i) Punkte) Das folgende XML-Schema modelliert beliebig große Matrizen mit Elementen aus den rationalen Zahlen.

Projektspezifische Datenschemata erstellen

Übung 3 Klaus Schild,

Tutorial: Ein Benutzerprofil erstellen. Version: 2.0 Autoren: Anja Beuth, Stefan Suermann

JAXB. Java Architecture for XML Binding.

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

Gültige Dokumente = korrekte Dokumente?

Gültige Dokumente = korrekte Dokumente?

D#32058 Spezifikation UPOC DM V2

XML für Medientechnologen

Hauptseminar Informatik. Die Strukturierung von XML-Dokumenten mit Hilfe von DTDs und XML Schema

<BPM-XML-Seminar/> Michael Fellmann, M.A. Grundlagen Standards und Vokabulare XML-basiertes Prozessmanagement. Universität Osnabrück

ech-0035: Design von XML Schemas

XML, XML-DTDs, und XML Schema

Lösungen zum Praktikum XML-Technologien XML-Grammatiken

Vorlesung Datenbanken II SS 2006

XML Schema Kurzreferenz

Gliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension

1. Übung zur Vorlesung Service-orientierte Architekturen

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone

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

<< Java Architecture for XML Binding >>

XML Empfehlung Anlage Einführung Allgemeine Grundlagen Anforderungen und Zielsetzung Dateinamenskonvention...

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

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

Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen

Web Technologien XML, XQuery, XPath und XSLT

XML Schema-Sprachen 04

Spezifikation der Schnittstellen zur Kommunikation im XML-Format

Mario Jeckle. XML Schema

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser.

XML RSS. 1. Einführung 2. Syntax 3. Eigenschaften 4. Validierung 5. Fazit. 1. Einführung 2. Struktur 3. Fazit. Seite 2

XML für Medientechnologen

XML. Teil 3: Namensräume. Abteilung Informatik WS 02/03

XML Schema: Validieren statt Programmieren

GAEB-DA-XML 3.0: Was kommt danach?

Cross Media Publishing von Lehrmaterialien mit XML Schema & XSL-Transformationen

Namespaces. Namensräume...

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009

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

Document Type Definition (DTD)

Analyse der Datenkommunikation zur drahtlosen Steuerung eines NAO Roboters durch ein Android Gerät

Dokumentverarbeitung

Transkript:

Dokumentverarbeitung XML Schema D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2011/12, 2. Dezember 2011, c 2010-12 D.Rösner D. Rösner DokV 2011/12... 1

Gliederung 1 XML-Schema D. Rösner DokV 2011/12... 2

XML Schema: Motivation Gegenüberstellung (nach [Radiya/Dixit]) ein Fragment einer XML-Dokumentinstanz <InvoiceNo> 123456789 </InvoiceNo> <ProductID> J123456 </ProductID> Fragment einer zugehörigen DTD <!ELEMENT InvoiceNo (#PCDATA)> <!ELEMENT ProductID (#PCDATA)> D. Rösner DokV 2011/12... 4

XML Schema: Limitierungen von DTDs in DTDs können Elemente nur drei Arten von Inhalt besitzen: Zeichenfolge (Textstring) gemischter Inhalt: aus Zeichenfolge und Elementen Menge von (Kinder-)Elementen keine Differenzierung von Datentypen DTDs verwenden keine XML-Syntax in DTDs sind alle Element-Namen global in DTDs nur die Bedingungen *, +,? D. Rösner DokV 2011/12... 5

Gegenüberstellung (nach [Radiya/Dixit]) cont. ein Fragment einer XML-Dokumentinstanz <InvoiceNo> 123456789 </InvoiceNo> <ProductID> J123456 </ProductID> Fragment einer zugehörigen DTD <!ELEMENT InvoiceNo (#PCDATA)> <!ELEMENT ProductID (#PCDATA)> Fragment eines XML-Schema <element name="invoiceno" type="positive-integer"/> <element name="productid" type="productcode"/> <simpletype name="productcode" base="string"> <pattern value="[a-z]{1}d{6}"/> </simpletype> D. Rösner DokV 2011/12... 6

XML-Schema: Grundsätze um ein Element zu definieren, muss man ihm einen Namen und ein Inhaltsmodell geben in XML-Schema ist das Inhaltsmodell durch einen Typ gegeben Elemente von Instanzen können dann nur Werte haben, die dem im Schema definierten Typ entsprechen D. Rösner DokV 2011/12... 7

XML-Schema: Grundsätze Arten von Typen: einfache Typen: können weder Elemente noch Attribute im Wert haben komplexe Typen: können eingebettete Elemente haben oder Attribute abgeleitete einfache Typen: durch Zusatzbedingungen aus Grundtyp hervorgegangen (z.b. ProductCode) D. Rösner DokV 2011/12... 8

XML-Schema: Grundsätze cont. sobald Attribute benötigt, muss ein komplexer Typ benutzt werden dieser kann auch als anonymer Typ (d.h. ohne explizites Setzen des Attributs name) definiert werden eines complextype: <element name="price"> <complextype base="decimal" derivedby="extension"> <attribute name="currency" type="string"/> </complex Type> </element> D. Rösner DokV 2011/12... 9

Gegenüberstellung (nach [Radiya/Dixit]) XML-Dokumentinstanz <Book><Title>Cool XML</Title></Book> mögl. DTD (Ausschnitt) <!ELEMENT Book (Title, Author)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Author (#PCDATA)> mögl. XML-Schema <element name="book" type="booktype"/> <complextype name="booktype"> <element name="title" type="string"/> <element name="author" type="string"/> </complextype> D. Rösner DokV 2011/12... 10

Gegenüberstellung (nach [Radiya/Dixit]) dokument ist konform zu DTD wie zu Schema Unterschied: in DTD sind alle Elemente global, im Schema sind Title und Author lokal definiert globaler Skopus ist möglich: <element name="title" type="string"/> <element name="author" type="string"/> <element name="book" type="booktype"/> <complextype name="booktype"/> <element ref="title"/> <element ref="author"/> </complex Type> Beachte: Attribut ref D. Rösner DokV 2011/12... 11

Gegenüberstellung (nach [Radiya/Dixit]) Variante: Booktype als lokaler und anonymer Typ <element name="title" type="string"/> <element name="author" type="string"/> <element name="book"> <complextype> <element ref="title"/> <element ref="author"/> <complextype> </element> D. Rösner DokV 2011/12... 12

Bedingungen für das Inhaltsmodell in XML-Schema minoccurs... minimal mögliches Vorkommen eines Elements maxoccurs... maximal mögliches Vorkommen eines Elements (in beiden Fällen ist Voreinstellung 1) choice... nur genau eines der Kinder kann in Instanz vorkommen all... (nur auf oberster Ebene eines Inhaltsmodells) alle Elemente können einmal oder nicht und in bel. Reihenfolge auftauchen D. Rösner DokV 2011/12... 13

erweiterte Möglichkeiten Sprachmittel für Typvererbung (type inheritance) Mechanismen, um zu steuern, ob ein Subtyp definiert werden kann Äquivalenztypen abstrakte Elemente oder Typen benannte Gruppen von Attributen und Elementen D. Rösner DokV 2011/12... 14

erweiterte Möglichkeiten cont. mit annotation können für Menschen gedachte (documentation) bzw. für verarbeitende Programme vorgesehene (appinfo) Infos im Schema untergebracht werden Eindeutigkeitsbedingungen D. Rösner DokV 2011/12... 15

XML Schema XML-Schema Ein einfaches XML-Dokument (vgl. Eric van der Vlist [2000]) <?xml version="1.0" encoding="utf-8"?> <book isbn="0836217462"> <title>being a Dog Is a Full-Time Job</title> <author>charles M. Schulz</author> <character> <name>snoopy</name> <friend-of>peppermint Patty</friend-of> <since>1950-10-04</since> <qualification> extroverted beagle </qualification> </character> <character> <name>peppermint Patty</name> <since>1966-08-22</since> <qualification>bold, brash and tomboyish</qualification> </character> </book> D. Rösner DokV 2011/12... 17

Entwicklung eines zugehörigen Schema: Element xs:schema <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema">.../... </xs:schema> D. Rösner DokV 2011/12... 18

Entwicklung eines zugehörigen Schema: cont. Element book als xs:complextype xs:sequence als sog. Compositor <xs:element name="book"> <xs:complextype> <xs:sequence>.../... </xs:sequence>.../... </xs:complextype> </xs:element> D. Rösner DokV 2011/12... 19

Entwicklung eines zugehörigen Schema: cont. title und author als einfache Typen keine Attribute und keine Kinder (ausser Text) <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> D. Rösner DokV 2011/12... 20

Entwicklung eines zugehörigen Schema: cont. Element character mit Angaben zur Kardinalität Default für minoccurs wie maxoccurs ist 1 <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence>.../... </xs:sequence> </xs:complextype> </xs:element> D. Rösner DokV 2011/12... 21

Entwicklung eines zugehörigen Schema: cont. alle Kinder von character <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> D. Rösner DokV 2011/12... 22

Entwicklung eines zugehörigen Schema: cont. Definition der Attribute nach Definition aller Elemente Element xs:attribute <xs:attribute name="isbn" type="xs:string"/> Zusammenfassung: sog. Russian Doll design (oder: Puppe in der Puppe ) jedes Element und Attribut wird im jeweiligen Kontext definiert D. Rösner DokV 2011/12... 23

XML Schema: komplett <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="book"> <xs:complextype> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="character" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string"/>... D. Rösner DokV 2011/12... 24

XML Schema: komplett cont. <xs:element name="friend-of" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> D. Rösner DokV 2011/12... 25

XML Schema: Probleme mit bisheriger Lösung Probleme mit bisheriger Lösung zu eng an Dokument orientiert zu verschieden von DTD Variante: flacher Katalog aller Elemente in der Dokumentinstanz für Elemente Liste der Kindelemente und Attribute Referenzen auf Definitionen von Elementen und Attributen D. Rösner DokV 2011/12... 26

Entwicklung des Schema als flacher Katalog: Elemente (vgl. Eric van der Vlist [2000]) <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <!-- definition of simple type elements --> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="name" type="xs:string"/> <xs:element name="friend-of" type="xs:string"/> <xs:element name="since" type="xs:date"/> <xs:element name="qualification" type="xs:string"/> <!-- definition of attributes --> <xs:attribute name="isbn" type="xs:string"/>... D. Rösner DokV 2011/12... 27

Entwicklung als flacher Katalog (cont.):... <!-- definition of complex type elements --> <xs:element name="character"> <xs:complextype> <xs:sequence> <xs:element ref="name"/> <xs:element ref="friend-of" minoccurs="0" maxoccurs="unbounded"/> <xs:element ref="since"/> <xs:element ref="qualification"/> <!-- the simple type elements are referenced using the "ref" attribute; the definition of the cardinality is done when the elements are referenced --> </xs:sequence> </xs:complextype> </xs:element>... D. Rösner DokV 2011/12... 28

Entwicklung als flacher Katalog (cont.):... <xs:element name="book"> <xs:complextype> <xs:sequence> <xs:element ref="title"/> <xs:element ref="author"/> <xs:element ref="character" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute ref="isbn"/> </xs:complextype> </xs:element> </xs:schema> D. Rösner DokV 2011/12... 29

Definition von benannten Datentypen: Datentyp nametype als xs:string mit maximal 32 Zeichen d.h. Ableitung durch xs:restriction <xs:simpletype name="nametype"> <xs:restriction base="xs:string"> <xs:maxlength value="32"/> </xs:restriction> </xs:simpletype> D. Rösner DokV 2011/12... 30

Definition von benannten Datentypen: reguläre Ausdrücke mit xs:pattern hier: ISBN-Nummer aus 10 Ziffern <xs:simpletype name="isbntype"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{10}"/> </xs:restriction> </xs:simpletype> D. Rösner DokV 2011/12... 31

komplexe Datentypen (mit Elementen und Attributen): <xs:simpletype name="sincetype"><xs:restriction base="xs:date"/> </xs:simpletype> <xs:simpletype name="desctype"><xs:restriction base="xs:string"/> </xs:simpletype> <!-- definition of complex types --> <xs:complextype name="charactertype"> <xs:sequence> <xs:element name="name" type="nametype"/> <xs:element name="friend-of" type="nametype" minoccurs="0" maxoccurs="unbounded"/> <xs:element name="since" type="sincetype"/> <xs:element name="qualification" type="desctype"/> </xs:sequence> </xs:complextype> D. Rösner DokV 2011/12... 32

komplexe Datentypen (cont.): <xs:complextype name="booktype"> <xs:sequence> <xs:element name="title" type="nametype"/> <xs:element name="author" type="nametype"/> <xs:element name="character" type="charactertype" minoccurs="0"/> <!-- the definition of the "character" element is using the "charactertype" complex type --> </xs:sequence> <xs:attribute name="isbn" type="isbntype" use="required"/> </xs:complextype> <!-- Reference to "booktype" to define the "book" element --> <xs:element name="book" type="booktype"/> D. Rösner DokV 2011/12... 33

XML Schema: für bessere Wiederverwendbarkeit (vgl. Eric van der Vlist [2000]) Gruppen von Elementen <xs:group name="mainbookelements"> <xs:sequence> <xs:element name="title" type="nametype"/> <xs:element name="author" type="nametype"/> </xs:sequence> </xs:group> Gruppen von Attributen <xs:attributegroup name="bookattributes"> <xs:attribute name="isbn" type="isbntype" use="required"/> <xs:attribute name="available" type="xs:string"/> </xs:attributegroup> D. Rösner DokV 2011/12... 34

Verwendung von Gruppen Referenz mit xs:group bzw. xs:attributegroup <xs:complextype name="booktype"> <xs:sequence> <xs:group ref="mainbookelements"/> <xs:element name="character" type="charactertype" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attributegroup ref="bookattributes"/> </xs:complextype> D. Rösner DokV 2011/12... 35

weitere Compositors: XML-Schema bisher verwendet: Compositor xs:sequence Compositor xs:choice für Alternativen <xs:group name="nametypes"> <xs:choice> <xs:element name="name" type="xs:string"/> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="middlename" type="xs:string" minoccurs="0"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:choice> </xs:group> D. Rösner DokV 2011/12... 36

weitere Compositors: XML-Schema xs:all für ungeordnete Mengen zu beachten: xs:all nur als einziges Kind auf oberster Ebene eines Inhaltsmodells Kinder nur xs:element-definitionen oder -Referenzen und zugehörige Kardinalitäten höchstens 1 D. Rösner DokV 2011/12... 37

weitere Compositors: cont. für xs:all: <xs:complextype name="booktype"> <xs:all> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="character" type="charactertype" minoccurs="0" maxoccurs="unbounded"/> </xs:all> <xs:attribute name="isbn" type="isbntype" use="required"/> </xs:complextype> D. Rösner DokV 2011/12... 38

Derivation von einfachen Datentypen: xs:list für durch Leerraum getrennte Listen <xs:simpletype name="isbntypes"> <xs:list itemtype="isbntype"/> </xs:simpletype> <xs:simpletype name="isbntypes10"> <xs:restriction base="isbntypes"> <xs:minlength value="1"/> <xs:maxlength value="10"/> </xs:restriction> </xs:simpletype> D. Rösner DokV 2011/12... 39

Definition von leeren Inhaltsmodellen: mit xs:complextype ohne Angabe von Kinderelementen <xs:element name="book"> <xs:complextype> <xs:attribute name="isbn" type="isbntype"/> </xs:complextype> </xs:element> D. Rösner DokV 2011/12... 40

einfache Inhaltselemente einfache Inhaltselemente (d.h. Elemente mit Zeichendaten und Attributen): <xs:element name="book"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="isbn" type="isbntype"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> würde folgendes akzeptieren: <book isbn="0836217462"> Funny book by Charles M. Schulz. Its title (Being a Dog Is a Full-Time Job) says it all!</book> D. Rösner DokV 2011/12... 41

gemischter Inhalt (mixed content): gemischter Inhalt (mixed content): <xs:element name="book"> <xs:complextype mixed="true"> <xs:all> <xs:element name="title" type="xs:string"/> <xs:element name="author" type="xs:string"/> </xs:all> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> würde folgendes akzeptieren: <book isbn="0836217462"> Funny book by <author>charles M. Schulz</author>. Its title (<title>being a Dog Is a Full-Time Job</title>) says it all!</book> D. Rösner DokV 2011/12... 42

XML Schema: weitere Aspekte (vgl. Eric van der Vlist [2003]) XML Schema unterscheidet zwischen den Daten, wie sie aus den Instanzdokumenten ausgelesen werden können (dem sog. lexikalischen Raum), und den Werten, wie sie entsprechend dem Datentyp interpretiert werden (dem sog. Werteraum) D. Rösner DokV 2011/12... 43

Lexikalischer Raum vs. Werteraum e: <xs:float>-wert 3.1416 kann auch im lexikalischen Raum dargestellt sein als 03.1416, 3.14160 oder.31416e1 Testen auf Gleichheit und Sortieren werden im Werteraum durchgeführt; 3.1416 und 03.1416 sind gleich, wenn der Typ <xs:float> ist, jedoch verschieden für Typ <xs:string> D. Rösner DokV 2011/12... 44

XML Schema: Ableitung einfacher Datentypen (vgl. Eric van der Vlist [2000]: Using W3C XMLSchema http://www.xml.com/pub/a/2000/11/29/schemas/part1.html) Element xs:restriction zur Ableitung aus anderen Datentypen durch Einschränkung unterschiedliche Arten der Restriktion heissen Facetten (engl. facets) durch Elemente angegeben D. Rösner DokV 2011/12... 45

XML Schema: Ableitung einfacher Datentypen e für Facetten: xs:pattern... regulärer Ausdruck xs:maxlength... maximale Länge (z.b. xs:string) xs:enumeration... Enumeration von Werten... D. Rösner DokV 2011/12... 46

Ableitung durch Vereinigung von Datentypen: xs:union <xs:simpletype name="isbntype"> <xs:union> <xs:simpletype> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{10}"/> </xs:restriction> </xs:simpletype> <xs:simpletype> <xs:restriction base="xs:nmtoken"> <xs:enumeration value="tbd"/> <xs:enumeration value="na"/> </xs:restriction> </xs:simpletype> </xs:union> </xs:simpletype> D. Rösner DokV 2011/12... 47

Darstellung leerer Elemente leere Elemente werden als xs:complextype mit ggf. Attributen, aber ohne Kinderelemente dargestellt : <xs:element name="book"> <xs:complextype> <xs:attribute name="isbn" type="isbntype"/> </xs:complextype> </xs:element> D. Rösner DokV 2011/12... 48

Dokumentation von für Menschen intendierte Dokumentation in xs:documentation-elemente Informationen, die für Anwendungen intendiert, in xs:appinfo-elemente beides eingeschlossen in xs:annotation D. Rösner DokV 2011/12... 49

Dokumentation von : Verknüpfung mit einer Java-Klasse <xs:element name="book"> <xs:annotation> <xs:documentation xml:lang="en"> Top level element. </xs:documentation> <xs:documentation xml:lang="fr"> Element racine. </xs:documentation> <xs:appinfo source="http://example.com/foo/"> <bind xmlns="http://example.com/bar/"> <class name="book"/> </bind> </xs:appinfo> </xs:annotation>... D. Rösner DokV 2011/12... 50

Zusammenführen multipler xs:include... wirkt wie textuelles Einfügen (cut and paste) des inkludierten Schemas erlaubt kein Überschreiben der Definitionen des inkludierten Schemas Verwendung in der Form: <xs:include schemalocation="character.xsd"/> D. Rösner DokV 2011/12... 51

Zusammenführen multipler xs:redefine... ähnlich wie xs:include, aber erlaubt Überschreiben der Definitionen des inkludierten Schemas <xs:redefine schemalocation="character12.xsd"> <xs:simpletype name="nametype"> <xs:restriction base="xs:string"> <xs:maxlength value="40"/> </xs:restriction> </xs:simpletype> </xs:redefine> D. Rösner DokV 2011/12... 52

Konzepte des objektorientierten Design mit dem Attribut substitutiongroup kann auf den sogenannten Kopf (head) einer Ersetzungsgruppe verwiesen werden Elemente aus der Ersetzungsgruppe können überall dort verwendet werden, wo der Kopf erlaubt ist ein Kopf kann auch als abstract deklariert werden; dann sollte er wie abstrakte Klassen nicht direkt verwendet werden, sondern nur in abgeleiteter Form D. Rösner DokV 2011/12... 53

Konzepte des objektorientierten Design Elemente xs:complextype, xs:simpletype und xs:element können das Attribut final tragen mit seinen Werten lässt sich die Ableitung aus solchen Elementen kontrollieren bzw. ganz verbieten restriction... keine Ableitung durch Restriktion extension... keine Ableitung durch Extension #all... keine Ableitung D. Rösner DokV 2011/12... 54

Konzepte des objektorientierten Design analog: Facetten können vor weiterer Derivation durch fixed geschützt werden : <xs:simpletype name="nametype"> <xs:restriction base="xs:string"> <xs:maxlength value="32" fixed="true"/> </xs:restriction> </xs:simpletype> D. Rösner DokV 2011/12... 55

Unbekannte Elemente bzw. Attribute mit xs:any bzw. xs:anyattribute können in Mustern beliebige Elemente bzw. Attribute zugelassen werden : <xs:complextype name="desctype" mixed="true"> <xs:sequence> <xs:any namespace="http://www.w3.org/1999/xhtml" processcontents="skip" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> D. Rösner DokV 2011/12... 56

Die Rolle von für XML Was ist ein Schema für XML? Eine XML-Schemasprache ist eine in Form von Regeln oder Strukturmodellen ausgedrückte Formalisierung der Beschränkungen, die auf eine Klasse von XML-Dokumenten zutreffen. (vgl. Eric van der Vlist [2003]) D. Rösner DokV 2011/12... 58

Anwendungen von für XML Validierung Dokumentation Abfragen Datenbindung Editieren D. Rösner DokV 2011/12... 59

für XML XML-Schema DTDs W3C XML Schema Relax NG D. Rösner DokV 2011/12... 60

XML Datenbindung XML-Schema... XML data binding is the binding of XML documents to objects designed especially for the data in those documents. This allows applications (usually data-centric) to manipulate data that has been serialized as XML in a way that is more natural than using the DOM.... [Ronald Bourret, 2004] cf. http://www.rpbourret.com/xml/xmldatabinding.htm Unterscheidung in Werkzeuge für Entwurfsphase und Laufzeit D. Rösner DokV 2011/12... 61

Literatur: I XML-Schema Elliotte Rusty Harold and W. Scott Means. XML in a Nutshell. O Reilly, Sebastopol, CA, USA, 2001. 1st edition; ISBN 0-596-00058-8. D. Rösner DokV 2011/12... 62