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

Ähnliche Dokumente
Namespaces. Namensräume...

XML Schema Kurzreferenz

Einleitung. Schema root Übersicht Dokumentation

XML-Schema Datentypen

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

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

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Document Type Definition (DTD)

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Deklaration standalone="yes" Quelle:

Mario Jeckle. XML Schema

XML DTD und Schema von Thomas Mangold

Erweiterbare Schemata

XML Schema 2016 S h_da S Seite 1

XML Schema 2012/2013 S Seite 1 h_da W

XML Schema 2012/2013 S Seite 1 h_da W

XML Schema S 2012 h_da S Seite 1

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

XML Schema 2015 S h_da S Seite 1

XML Schema: Strukturen und Datentypen

XML Schema: Strukturen und Datentypen

XSD - XML Schema Definition

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

W3C s XML Schema Die Sprache der Sprachen Mario Jeckle DaimlerChrysler Forschungszentrum Ulm

XML Schema: Strukturen und Datentypen

XML Schema: Validieren statt Programmieren

XML Schema 2016 S h_da S Seite 1

Index. Index CDATA 113, 183. Achse 430. child 425. all 191. choice 187, 191, 197, 393. ancestor 428. choose 272. Anwendung 351; Beispiel 302

XML Schema. Seite 1. h_da SS 22007

XML Schema S 2011 h_da S Seite 1

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Erik Wilde XML Schema

Vorlesung Datenbanken II SS 2006

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone


Übung zur Vorlesung Digitale Medien. Hanna Schneider Ludwig-Maximilians-Universität München Wintersemester 2014/2015

4 XML und Datenbanken XML wird von Internet Explorer ab Version 5.0 und von Netscape ab Version 6 unterstützt.

XML Schema vs. Relax NG

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

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

XML Schema 2015 S h_da S Seite 1

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

DTD: Syntax-Zusammenfassung

XML-Technologie: Grundlegende Syntax

Semistrukturierte Daten

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

DTDs und XML- Schemata

Nonstandard Datenbanken

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

Semistrukturierte Daten

Zusammenfassung M. Rigling 1/22 Version 1.0

Kapitel 5: Datenaustausch mit XML

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

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

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)

Einführung. Hallo-Welt in XSLT

Repräsentation von Struktur

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

Digitale Medien. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid. Übung zur Vorlesung

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

Definition von Datentypen mit XML- Schemata

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

Herbstsemester Januar Datenbanksysteme II

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

Kapitel 2: XML-Technologien

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

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

XML Grammatiken und XForms

XML und Datenmodellierung

Beispiel für die Verwendung von Namespaces. Namespaces. Namespaces Erläuterung (1) Namespaces Erläuterung (2)

Studienarbeit. Tobias Tiedt. Lehrstuhl Datenbank und Informationssysteme Fachbereich Informatik Universität Rostock

XML Schema-Sprachen 04

6. XML-Datenbanken: Datendefinition

4. XML-Datenbanken: Datendefinition

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

5. XML-Datenbanken: Datendefinition

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

Vorlesung XML und Datenbanken Klausur

IT-Zertifikat: Daten- und Metadatenstandards

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

5. XML Datenbanken: Datendefinition

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

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

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

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

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

<Trainingsinhalt> XML umsetzen und nutzen

Kapitel WT:III (Fortsetzung)

Tutorial: Die Extensible Markup Language (XML)

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Semantic Web Grundlagen

XML Schema Import for the Pathfinder XQuery Compiler

XML allgemein. Gliederung. Einführung und Überblick. Strukturelle Grundkonzepte. Dokument-Typ-Definitionen (DTD) XML-Schema. XML und Datenbanksysteme

bis , signed 16-Bit. // Multipurpose Internet Mail Extensions (MIME)

Seminar: mobile GIS Austausch von Geodaten

Übungsblatt 6 Ausgabe: Prof. Dr. Dr. Lars Schmidt-Thieme, André Busche SoSe 2012

XML und Datenmodellierung

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

Tutorial: Informationsmodell festlegen. Version: 1 Autoren: Daniel Neumann, Markus Winkelmann

Transkript:

3. XML Schema

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

Inhalt des Moduls: Grundlagen Einfache Modelle Inhaltsmodelle Datentypen Schlüssel und Schlüsselverweise

Grundlagen Das W3C XML Schema stellt eine W3C-Weiterführung der DTD dar. Das XML Schema sollte bei neuen Anwendungen verwendet werden, in denen auf seine Vorteile wie Datentypvalidierung/-erstellung sowie die sehr umfangreichen Möglichkeiten der Ableitung von einfachen und komplexen, d.h. aus mehreren Elementen zusammen gesetzten Datentypen, Wert gelegt wird. Insbesondere die Datentypen stellen ein wichtigen Pfeiler von XML Schema dar und sind in einem eigenen Standard spezifiziert, da sie auch in anderen XML-Technologien Verwendung finden. XML Schema ist eine XML-Datei und kann daher auch mit XML-Techniken erstellt, bearbeitet, abgefragt und in andere Formate umgewandelt werden. Folgende Ressourcen sind beim W3C verfügbar: Einstiegsseite des W3C: http://www.w3c.org/xml/schema Einführung: http://www.w3c.org/tr/xmlschema-0/ Strukturen: http://www.w3c.org/tr/xmlschema-1/ Datentypen: http://www.w3c.org/tr/xmlschema-2/

Grundlagen Einen Überblick über die Namen der Elemente, die teilweise auch bereits ihre Funktion verraten, findet sich in nachfolgender Tabelle. Sie bieten eine Vielzahl an Vorgaben und Syntaxvarianten bei der Erstellung von Datenmodellen. A-D E-N O-Z all annotation any anyattribute appinfo attribute attributegroup choice complexcontent complextype documentation element extension (simplecontent) extension (complexcontent) field group import include key keyref list notation redefine restriction (simpletype) restriction (simplecontent) restriction (complexcontent) schema selector sequence simplecontent simpletype union unique

Fragen...

Inhalt des Moduls: Grundlagen Einfache Modelle Inhaltsmodelle Datentypen Schlüssel und Schlüsselverweise

Einfache Modelle: Basis-Angaben Einfache Inhaltsmodelle bestehen zunächst nur aus einigen Angaben, die in jedem Regeldokument vorhanden sein müssen. Identität: Welche Elemente erscheinen im Dokument? Wie heißen sie, und welche Inhaltsmodelle haben sie wiederum? Beziehungen: Zu welchen anderen Elementen stehen sie durch ihre Inhaltsmodelle, d.h. durch den Aufruf anderer Elemente als Inhalt, in Beziehung? Kardinalität: Wie oft treten die einzelnen Elemente alleine oder im Verbund bzw. in Gruppierungen auf? Sind sie obligatorisch, unbegrenzt oder optional zu verwenden? Reihenfolge: In welcher Reihenfolge treten die Elemente in ihrer jeweiligen Dokumentebene auf? In welche Reihenfolgebeziehung stehen sie zu anderen Elementen?

Einfache Modelle: Beispiel <?xml version="1.0" encoding="iso-8859-1"?> <Preisliste xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="212_01.xsd"> <Tarif Nr="1"> <Name>Frühstück</Name> <Gueltigkeit> <Datum> <Von>01.01.03</Von> <Bis>30.06.03</Bis> </Datum> <Uhrzeit> <Von>6</Von> <Bis>10</Bis> </Uhrzeit> </Gueltigkeit> <Preis>1</Preis> </Tarif> </Preisliste>

Einfache Modelle: Elemente Ein Element lässt sich mit dem Element element festlegen, wobei die Attributliste auf die für den Einsteiger wesentlichen Elemente gekürzt wurde. Der Name wird im name-attribut angegeben, das einen gültigen XML-Namen ohen Namensraumpräfix erwartet. Die Häufigkeit lässt sich sofern das Element nicht genau einmal auftreten soll über die beiden Attribute minoccurs (minimales Auftreten) und maxoccurs (maximales Auftreten) festlegen, die jeweils eine nicht-negative Ganzzahl, d.h. auch den Wert 0 erwarten. Jede beliebige Kombination ist möglich. Sofern ein Element beliebig oft auftreten darf, ist der Standardwert unbounded zu verwenden. Der Datentyp wird über die vordefinierten Namen der XML Schema-Datentypen oder über einen eigenen Namen aus der Liste der selbst erstellten Datentypen (globale simpletype-elemente für einfache und complextype- Elemente für komplexe Strukturen mit Kind-Elementen und Attributen) im type-attribut angegeben. Eine Referenz auf ein so genanntes globales element-element, das direktes Kind vom Wurzelement ist, wird im ref-attribut über seinen Namen eingerichtet. Ob ein Element leer sein kann, wird über das Attribut nillable angegeben. Der Inhalt eines Elements können innerhalb vom complextype-kind andere Elemente, Attribute sein oder Schlüssel- und Schlüsselverweiselemente sowie innerhalb vom simpletype-kind genaue Datentypangaben, welche das type-attribut ersetzen. Die Reihenfolgenbeziehung zu anderen Elementen wird nicht innerhalb des Elements selbst angegeben, sondern ist abhängig von seinem direkten Elternelement.

Einfache Modelle: Elemente <element maxoccurs = (nonnegativeinteger unbounded) : 1 minoccurs = nonnegativeinteger : 1 name = NCName nillable = boolean : false ref = QName type = QName {any attributes with non-schema namespace...}> Content: (annotation?, ((simpletype complextype)?, (unique key keyref)*)) </element> <xs:element name="datum"> <xs:complextype> <xs:sequence> <xs:element name="von" type="xs:string"/> <xs:element name="bis" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element>

Einfache Modelle: Elemente Attribute befinden sich innerhalb des complextype-kindelements innerhalb des element- Elements, gehören also zum komplexen Inhalt eines Elements, stehen aber außerhalb der Reihenfolgenangabe wie z.b. dem sequence-element. Der Name wird im name-attribut angegeben, das einen gültigen XML-Namen ohen Namensraumpräfix erwartet. Der Datentyp wird über die vordefinierten Namen der XML Schema-Datentypen oder über einen eigenen Namen aus der Liste der selbst erstellten Datentypen (globale simpletype- Elemente für einfache Typen) im type-attribut angegeben. Eine Referenz auf ein so genanntes globales attribute-element, das direktes Kind vom Wurzelement ist, wird im ref-attribut über seinen Namen eingerichtet. Der Standardwert wird im default-attribut mit einer Zeichenkette angegeben. Der feste Wert wird im fixed-attribut mit einer Zeichenkette angegeben. Die Attributverwendung wird mit vorgegeben Werten im use-attribut angegeben: optional (optional, kann vorkommen oder fehlen), prohibited (verboten, darf nicht auftreten, was nur sinnvoll bei der so genannten Ableitung ist) und required (verpflichtend, muss auftreten). Der Inhalt eines attribute-elements ist sinnvollerweise nur ein simpletype-element, welches das type-attribut ersetzt und genauere Datentypangaben enthält.

Einfache Modelle: Attribute <attribute default = string fixed = string name = NCName ref = QName type = QName use = (optional prohibited required) : optional {any attributes with non-schema namespace...}> Content: (annotation?, simpletype?) </attribute> <xs:element name="tarif" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="gueltigkeit">... </xs:element> <xs:element name="preis" type="xs:string"/> </xs:sequence> <xs:attribute name="nr" type="xs:positiveinteger" use="required"/> </xs:complextype> </xs:element>

Einfache Modelle: Lokale und globale Strukturen XML Schema unterscheidet zwischen globalen und lokalen Strukturen: Einfache und komplexe Datentypen Elemente und Attribute können einzeln oder auch als Gruppe (Element group für Elemente und Element attributegroup für Attribute) global auftreten. Das bedeutet, dass sie als direkte Kinder vom schema-element erscheinen und im ref-attribut von Elementen und Attributen global oder lokal aufgerufen werden können. Dadurch hat man die Möglichkeit, Auslagerung und Wiederverwendung einzurichten und die angegeben Eigenschaften mehrfach im Dokument zu verwenden.

Einfache Modelle: Lokale und globale Strukturen <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <!-- Globale Elemente --> <xs:element name="von" type="xs:string"/> <xs:element name="bis" type="xs:string"/> <!-- Wurzelelement --> <xs:element name="preisliste"> <xs:complextype>...... </xs:complextype> </xs:element> </xs:schema> <xs:element name="datum"> <xs:complextype> <xs:sequence> <xs:element ref="von"/> <xs:element ref="bis"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="uhrzeit"> <xs:complextype> <xs:sequence> <xs:element ref="von"/> <xs:element ref="bis"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element>

Fragen...

Inhalt des Moduls: Grundlagen Einfache Modelle Inhaltsmodelle Datentypen Schlüssel und Schlüsselverweise

Inhaltsmodelle: Beispiel <?xml version="1.0" encoding="iso-8859-1"?> <Kundenliste xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="32_08.xsd"> <Kunde Typ="g"> <Name> <Firma>Fleckner + Söhne GmbH + Co. KG</Firma> <Branche>Fördergurte Gummi Kunststoffe</Branche> </Name> <Umsatz>703.43</Umsatz> </Kunde> <Kunde Typ="p"> <Name> <Nachname>Erdle</Nachname> <Vorname>Johann</Vorname> </Name> <Umsatz>229,45</Umsatz> </Kunde> </Kundenliste>

Inhaltsmodelle: Reihenfolge Mit der Schema-Komponente sequence legt man für die innerhalb des von ihr aufgespannten Containers deklarierten Elemente eine Reihenfolgenbeziehung fest. Die einzelnen Elemente müssen genau in der Reihenfolge, in der sie innerhalb von sequence erscheinen, auch im Instanzdokument auftreten. Dabei sind jeweils die Häufigkeitsbeschränkungen in minoccurs und maxoccurs zu berücksichtigen, wobei solche Häufigkeitsbeschränkungen auch für das gesamte sequence-element gelten. <sequence maxoccurs = (nonnegativeinteger unbounded) : 1 minoccurs = nonnegativeinteger : 1 {any attributes with non-schema namespace...}> Content: (annotation?, (element group choice sequence any)*) </sequence>

Inhaltsmodelle: Auswahl Der choice-container drückt aus, dass die direkten Kinder sich gegenseitig ausschließende Alternativen darstellen und daher nur eine von diesen Alternativen im XML-Dokument auftreten darf. <choice maxoccurs = (nonnegativeinteger unbounded) : 1 minoccurs = nonnegativeinteger : 1 {any attributes with non-schema namespace...}> Content: (annotation?, (element group choice sequence any)*) </choice>

Inhaltsmodelle: Freie Wahl Der all-container drückt aus, dass eine beliebige Reihenfolge der element-kinder im XML-Dokument auftreten kann. <all maxoccurs = 1 : 1 minoccurs = (0 1) : 1 {any attributes with non-schema namespace...}> Content: (annotation?, element*) </all>

Inhaltsmodelle: Ko-Abhängigkeiten <?xml version="1.0" encoding="iso-8859-1"?> <Kundenliste xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="32_08.xsd"> <Kunde Typ="g"> <Name> <Firma>Fleckner + Söhne GmbH + Co. KG</Firma> <Branche>Fördergurte Gummi Kunststoffe</Branche> </Name> <Umsatz>703.43</Umsatz> </Kunde> <Kunde Typ="p"> <Name> <Nachname>Erdle</Nachname> <Vorname>Johann</Vorname> </Name> <Umsatz>229,45</Umsatz> </Kunde> </Kundenliste> Die so-genannte Ko-Abhängigkeit zwischen Attributwert und Elementen ist weder in XML Schema noch in der DTD abzubilden.

Fragen...

Inhalt des Moduls: Grundlagen Einfache Modelle Inhaltsmodelle Datentypen Schlüssel und Schlüsselverweise

Datentypen: Typsystem Das XML Schema zeichnet sich insbesondere durch die Integration einer überaus umfangreichen Datentypstruktur aus. Mit ihr können für alle Programmiersprachen und Datenbanken Datentypangaben getroffen werden. In Kombination mit eigenen Datentypen und weiteren Einschränkungen können genau die erforderlichen Angaben getroffen werden, die für den aktuellen Einsatz notwendig sind. Die Datentypen sind in einem eigenen Standard beschrieben, da sie auch in anderen XML-Technologien vom W3C verwendet werden.

Datentypen: Typsystem Übersicht über die primitiven Datentypen Zahlen Zeichenketten Zeit Logik decimal float double hexbinary base64binary string anyuri QName NOTATION duration datetime time date gyearmonth gyear gmonthday gday gmonth boolean Übersicht der von den primitiven Datentypen abgeleiteten Datentypen Zahlen Zeichenketten integer nonpositiveinteger negativeinteger long int short byte nonnegativeinteger unsignedlong unsignedint unsignedshort unsignedbyte positiveinteger normalizedstring token language NMTOKEN NMTOKENS Name NCName ID IDREF IDREFS ENTITY ENTITIES

Datentypen: Typsystem Die Datums- und Zeittypen erfordern spezielle Formatierungen, die in Datenbanken teilweise nur mit Trigger oder eigenen CHECK- Bedingungen überprüft werden können. Sie sind daher für die DB- Entwicklung besonders interessant und nützlich. Eine Dauer (duration) wird im Format PnYnMnDTnHnMnS, angegeben: Jahr Monat Tag Stunde Minute Sekunde ny nm (*) nd (*) nh (*) nm (*) ns (*) (wahlweise auch Dezimalstellen für kleinere Unterteilungen) Datum und Uhrzeit (datetime) werden in der Form CCYY-MM- DDThh:mm:ss mit dem Trennzeichnen T zwischen Tages- und Uhrzeitangabe angegeben: Jahr Monat Tag Stunde Minute Sekunde CCYY MM DD hh mm ss (wahlweise auch Dezimalstellen für kleinere Unterteilungen)

Datentypen: Typsystem Analog zu diesen beiden Beispielen lauten die anderen Formate für den gregorianischen Kalender: Zeit (time): hh:mm:ss.sss. Datum (date): CCYY-MM-DD Kombinationen und Felder wie Jahr/Monat (gyearmonth) CCYY- MM, Tag/Monat (gmonthday) MM-DD, Jahr (gyear) CCYY, Monat (gmonth) MM und Tag (gday) DD.

Datentypen: Typsystem

Datentypen: Eigene einfache Datentypen Sofern keine bereits vordefinierten Datentypen zum Einsatz kommen können, besteht die Möglichkeit, lokal weitere Einschränkungen zu treffen oder sogar global eigene benannte Datentypen zu erstellen. Dabei kommen so genannte Fassetten zum Einsatz. Nicht jede Fassette ist für jeden Datentyp zulässig. Sie geben typischerweise Längenbeschränkungen für Zeichen oder Grenzen für Zahlen sowie Dezimalaufteilungen an. Sollte dann komplexe Prüfungen notwendig werden, kann man sogar reguläre Ausdrücke verwenden. Man unterscheidet zwischen grundlegenden und einschränkenden Fassetten, wobei die grundlegenden nicht beeinflusst werden können, sondern Datentypen allgemein charakterisieren. Die einschränkenden dagegen lassen sich über XML Schema-Elemente innerhalb vom simpletype-element verwenden.

Datentypen: Eigene einfache Datentypen Fassetten Grundlegende Fassetten gleich geordnet beschränkt Kardinalität numerisch Einschränkende Fassetten length minlength maxlength pattern enumeration whitespace maxinclusive maxexclusive mininclusive minexclusive totaldigits fractiondigits

Datentypen: Komplexe Datentypen Neben den einfachen Datentypen gibt es in XML Schema einen weiteren wesentlichen Pfeiler, der sowohl für einfache Auslagerung und Wiederverwendung nützlich ist als auch in erweiterten oftmals als objektorientierten - Ableitungstechniken genutzt wird. Dies betrifft die Möglichkeit, die complextype-kinder von element- Elementen ebenfalls zu globalisieren und ihnen einen Namen zu geben, unter dem sie dann im type-attribut genauso wie einfache Datentypen in einem element-element aufgerufen werden können. Diese Technik eröffnet Möglichkeiten, auch komplexe Strukturen mit verschachtelten Inhalten auszulagern und wieder zu verwenden als auch diese Strukturen abzuleiten, d.h. zu erweitern und zu verkleinern.

Datentypen: Komplexe Datentypen <xs:schema > <!-- Globaler komplexer Typ --> <xs:complextype name="summetyp"> <xs:sequence> <xs:element name="min" type="xs:decimal"/> </xs:sequence> </xs:complextype> <!-- Wurzelelement --> <xs:element name="umsatzuebersicht"> <xs:element name="summe" type="summetyp"/>

Datentypen: Komplexe Datentypen Der nächste Schritt besteht in der Ableitung von globalen komplexen Strukturen, in dem entweder weitere Einschränkungen durchgeführt werden (weniger Kind- Elemente oder Attribute bzw. kleinerer Datenbereich) oder Erweiterungen stattfinden (Anhängen von Kindelementen oder Attributen). Globale komplexe Typen eignen sich dazu, wieder verwendbare Komponenten in Form von benannten Bereichen als Kind-Elemente des schema-elements zu erstellen, die später innerhalb der Definitionen anderer Elemente in ihrem type-attribut aufgerufen werden. Man überträgt dadurch die im globalen komplexen Typ definierten Eigenschaften in das gerade deklarierte Element und verzichtet dabei auf eine lokale Definition der jeweiligen Kind-Elemente.

Datentypen: Komplexe Datentypen Ableitung durch Erweiterung: Bei der Ableitung durch Erweiterung ergänzt man einen gegebenen globalen komplexen Typen um weitere Elemente oder Attribute. Wichtig ist hier die Einschränkung, dass man also keine andere Reihenfolge wählen und nur weitere Elemente an die ohnehin schon bestehenden des globalen komplexen Typen anhängen kann. Das gleiche Prinzip gilt auch für Attribute. Daher ist bei der Gestaltung des XML-Dokuments Vorsicht geboten, damit eine mögliche Ableitung und dadurch z.b. eine weitere Auslagerung von Komponenten oder eine Verkürzung von Quelltext überhaupt realisierbar wird. Ableitung durch Einschränkung: Die Ableitung durch Einschränkung fällt für globale komplexe Typen deutlich aus dem Rahmen der bisher vorgestellten Syntax und Konzeptionen. Zwar lässt sich ein Basistyp definieren, aber man muss das gesamte Inhaltsmodell redefinieren. Dabei verzichtet man dann einfach auf die nicht benötigten Elemente. Grundsätzlich kommt dies aber einer komplett neuen Definition gleich, wobei lediglich ein Bezug in Form einer syntaktisch deutlich verankerten Dokumentation oder Anmerkung auf die Existenz eines globalen komplexen Typs und damit einer ausgelagerten Komponente verweist.

Datentypen: Komplexe Datentypen Ableitung durch Erweiterung <xs:complextype name="umsatztyp"> <xs:sequence> <xs:element ref="umsatz"/> <xs:element ref="anrufe"/> [ <xs:element ref="kunden"/> ] </xs:sequence> </xs:complextype> Globaler komplexer Typ Ableitung durch Einschränkung <xs:element name="gesamt"> <xs:complextype> <xs:complexcontent> <xs:extension base="umsatztyp"> <xs:sequence> <xs:element ref="kunden"/> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> </xs:element> <xs:element name="prokopf"> <xs:complextype> <xs:complexcontent> <xs:restriction base="umsatztyp"> <xs:sequence> <xs:element ref="umsatz"/> <xs:element ref="anrufe"/> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> </xs:element>

Fragen...

Inhalt des Moduls: Grundlagen Einfache Modelle Inhaltsmodelle Datentypen Schlüssel und Schlüsselverweise

Schlüssel und Schlüsselverweise Die Identitätsbeschränkungs-Komponenten dienen mit den Elementen key, selector, field, keyref sowie unique dazu, eine Verbindung zwischen einem qualifizierten Namen und einer Schlüsselangabe herzustellen bzw. eine Referenz auf einen solchen Schlüssel festzulegen. Man setzt dabei XPath-Ausdrücke für die Bestimmung von Lokalisierungspfaden zu den identitätsbeschränkten Selektoren und ihren untergeordneten Feldern. Als Syntax für den Schlüsselbezug, also die Referenz auf einen gültigen Schlüssel, verwendet man dabei den qualifizierten Namen des Schlüssels innerhalb des keyref-elements für einen oder den Namen des keyrefs-elements für mehrere Schlüssel.

Schlüssel und Schlüsselverweise In XML Schema gibt es zwei verschiedene Elemente zur Auswahl, mit denen Schlüssel und ein Element, mit dem Verweise angegeben werden können. Definition eines eindeutigen Schlüssels mit Hilfe der Schema-Komponente unique, wobei die Existenz des Feldes (Attribut oder Element) nicht kontrolliert wird. <unique name = NCName {any attributes with non-schema namespace...}> Content: (annotation?, (selector, field+)) </unique Definition eines eindeutigen Schlüssels und Kontrolle auf Existenz der als Schlüsselbestandteile angegebenen Feldes (Attribut oder Element) mit Hilfe der Schema-Komponente key. <key name = NCName {any attributes with non-schema namespace...}> Content: (annotation?, (selector, field+)) </key>

Schlüssel und Schlüsselverweise Für die Definition von Verweisen wird nur ein Element benötigt. Definition eines Schlüsselverweises mit Hilfe der Schema-Komponente keyref unter Angabe des Schlüsselnamens und des Feldes (Attribut oder Element), welches den referenzierenden Wert enthält. <keyref name = NCName refer = QName {any attributes with non-schema namespace...}> Content: (annotation?, (selector, field+)) </keyref>

Schlüssel und Schlüsselverweise 1. Jede Rechnungsnummer im Nr-Attribut ist innerhalb von Rechnungen einzigartig. 2. Jede Kundennummer im Nr-Attribut ist innerhalb von Rechnung einzigartig. 3. Jede Postennummer im Nr-Attribut ist innerhalb von Rechnung einzigartig. 4. Jede Tarifnummer im Nr-Attribut ist innerhalb von Rechnung einzigartig. 2 4 1 3

Schlüssel und Schlüsselverweise 1. Jede Rechnungsnummer im Nr-Attribut ist innerhalb von Rechnungen einzigartig. 2. Jede Rechnung ist selbst einzigartig (Spieglein-an-der-Wand-Regel). 3. Jede Posten-RefNr bezieht sich auf ihre eigene Rechnungsnummer. 1 2 3

Fragen...