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



Ähnliche Dokumente
2. Einführung in Datenbanken und XML

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

IT-Zertifikat: Daten- und Metadatenstandards

XML Schema vs. Relax NG

Datenaustauschformate. Datenaustauschformate - FLV

XML Schema 2014 S h_da S Seite 1

... MathML XHTML RDF

XML Schema 2016 S h_da S Seite 1

DTD: Syntax-Zusammenfassung

5 XML und Analyse von XML-Dokumenten

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

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

XML Grundlagen Teil I

Präsentation zum Thema XML Datenaustausch und Integration

Multimedia Technologie II

Übungsaufgaben zu XML:

XSL Templates. Mit Templates arbeiten. XSL Templates

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Programmiersprachen und Übersetzer

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

XML DTD und Schema von Thomas Mangold

Grundbegriffe der Informatik

HTML5. Wie funktioniert HTML5? Tags: Attribute:

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

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

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Android will doch nur spielen XML

Kostenstellen verwalten. Tipps & Tricks

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Barrierefreie Webseiten erstellen mit TYPO3

XML Schema 2016 S h_da S Seite 1

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Informationen zur IBAN-Pflicht ab 2014

Reimo Fachhändlerbereich Import Datei

Grammatiken. Einführung

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Die Excel Schnittstelle - Pro Pack

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung

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

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

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

OP-LOG

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

GITS Steckbriefe Tutorial

Überprüfung der digital signierten E-Rechnung

Formale Sprachen und Grammatiken

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Professionelle Seminare im Bereich MS-Office

32.4 Anpassen von Menüs und Symbolleisten 795i

XML. extensible Markup Language

Dokumenten- und Content Management

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Auswahlabfragen mit ACCESS

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Strukturierung von Inhalten

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Zusatzmodul Lagerverwaltung

Containerformat Spezifikation

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

teischl.com Software Design & Services e.u. office@teischl.com

Qualifikationsbereich: Application Engineering Zeit:

Informationen zu den regionalen Startseiten

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

SWE5 Übungen zu Software-Engineering

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

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Klaus Schild, XML Clearinghouse Namensräume

Erstellen eigener HTML Seiten auf ewon

Bauteilattribute als Sachdaten anzeigen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Document Type Definitions (DTDs)

Programmieren Tutorium

Manual, Version 4.2c: Publikation von Medienmitteilungen auf bs.ch.

Schumacher, Chris Druckdatum :11:00

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Der große VideoClip- Wettbewerb von Media Markt.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Zwischenablage (Bilder, Texte,...)

3. Das Relationale Datenmodell

Allgemeines zu Datenbanken

Guide DynDNS und Portforwarding

SANDBOXIE konfigurieren

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Task: Nmap Skripte ausführen

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Transkript:

2. Datenmodellierung mit XML und XML-Schema Was ist XML? 2. Datenmodellierung mit XML und XML-Schema 2. Datenmodellierung mit XML und XML-Schema Was ist XML? Semistrukturierte Daten Lernziele: Eigenschaften von XML benennen können, den Aufbau von XML-Dokumenten kennen, die wichtigsten Konzepte von XML-Schema kennen, in der Lage sein, mittels XML-Schema eigene Dokumentsprachen zu definieren und Mit semistrukturiert bezeichnet man Daten, deren Strukturen unregelmäßig oder unbekannt sind. Solche Daten sind im Internet häufig anzutreffen. Dies steht im Widerspruch zu relationalen Datenbanksystemen. Hier liegen auf jeder Ebene des Modells Schemata vor. Techniken für die Adressierung und Abfrage von XML-Dokumenten kennen. 42 44 2. Datenmodellierung mit XML und XML-Schema Was ist XML? XML 2. Datenmodellierung mit XML und XML-Schema Was ist XML? Eigenschaften semistrukturierter Daten XML steht für extensible Markup Language durch das W3C entwickeltes Dokumentenformat einfach, flexibel, von SGML abgeleitet SGML := Standard Generalized Markup Language statische Irregularität: Datenobjekte haben die gleiche Semantik, sind aber unterschiedlich strukturiert. dynamische Irregularität: Die Struktur der Daten kann sich häufig ändern. fehlende Schemainformation: Für die Daten liegt keine allgemeine Strukturbeschreibung vor. Stattdessen ist die Strukturinformation in den Daten selbst enthalten. pfadorienterter Datenzugriff: Datenobjekte stellen Bäume oder Graphen dar. Für den Zugriff auf Komponenten solcher Objekte ist eine Navigation im Baum/Graph notwendig. 43 45

2. Datenmodellierung mit XML und XML-Schema Was ist XML? XML für semistrukturierte Daten 2. Datenmodellierung mit XML und XML-Schema Was ist XML? 6. XML-Dokumente sollen lesbar und leicht verständlich sein. 7. XML sollte rasch definiert werden. XML ist ein Datenmodell für semistrukturierte Daten. Es ist zeichenorientiert und zielt in erster Linie ab auf Lesbarkeit und Modellierung und die Austauschbarkeit von semistrukturierten Daten zwischen Anwendungen. 8. Das Design soll formal und prägnant sein. 9. XML-Dokumente sollen einfach zu erstellen sein. 10. Eine gewissen Knappheit in der Markierungsweise von XML steht nicht im Vordergrund. 46 48 2. Datenmodellierung mit XML und XML-Schema Was ist XML? Entwurfsziele von XML Auszeichnungssprache 1. XML soll einfach und unkompliziert im Internet verwendbar sein. 2. XML soll eine große Zahl von Applikationen unterstützen. 3. XML soll mit SGML kompatibel sein. 4. Die Entwicklung von Programmen, die XML-Dokumente verarbeiten, soll einfach sein. 5. Die Anzahl optionaler Eigenschaften soll in XML so gering wie möglich gehalten werden (am besten gleich null). Bei einer Auszeichnungssprache werden die Inhalte eines Datenstroms durch Auszeichnungen (Tags) strukturiert. Ausschließlich die Auszeichnungen dienen zur Strukturierung des Inhalts. Die Auszeichnungen sind so gehalten, daß sie selbst als reiner Text innerhalb des Inhalts eines Dokuments zu identifizieren sind. Durch solche Auszeichnungen werden Teile des Inhalts benannt. Diese Inhalte heißen Elemente. Die Länge der Auszeichnungen ist variabel und kann mit Informationen über den ausgezeichneten Inhalt angereichert werden. 47 49

Beispiel 2.1. Auszeichnungen in einem XML-Dokument: <Adresse> <Ort>Bonn</Ort> <PLZ>53119</PLZ> <Strasse>Paulusplatz</Strasse> <Nummer>10</Nummer> </Adresse> Beispiel 2.2. Ein XML-Dokument zur Repräsentation einer Bestellung: <?xml version="1.0"?> <!DOCTYPE Order SYSTEM "http://some-provider.de/order.dtd"> <Order> <OrderHeader> <OrderID>4711</OrderID> <OrderDate>2000-11-11</OrderDate> <Customer> <CustName>Peter Becker</CustName> <CustEmailAdress> peter.becker@fh-bonn-rhein-sieg.de </CustEmailAdress> </Customer> </OrderHeader> <Items> <Item quantity="1" deliverydate="2001-01-02"> <ProdName>Web-Visitenkarte</ProdName> 50 52 Dokument und Dokumenttyp Ein XML-Dokument ist eine Instanz eines XML-Dokumenttyps, der wiederum durch die Dokumentenrepräsentationssprache XML beschrieben wird. SGML XML Dokumenten repräsentations sprache <UnitPrice>1.00</UnitPrice> </Item> </Items> </Order> OrderHeader Order Items HTML XHTML MeinTyp Dokumenttyp OrderID OrderDate Customer Item HTML Dokument XHTML Dokument MeinTyp Dokument Dokumentinstanz CustName CustEmailAdress ProdName UnitPrice 51 53

Ziele eines expliziten Schemas: Explizitmachen der Struktur für Anwendungen Generische Erkennung und Vermeidung von Fehlern in den XML- Dokumenten Beispiel 2.3. Eine DTD für das Dokument von Beispiel 2.2: <!DOCTYPE Order [ <!ELEMENT Order (OrderHeader, Items) > <!ELEMENT OrderHeader (OrderID, OrderDate, Customer) > <!ELEMENT Customer (Custname, CustEmailAdress?) > <!ELEMENT Items (Item+) > <!ELEMENT Item (ProdName, UnitPrice) > <!ATTLIST Item quantity CDATA #REQUIRED deliverydate CDATA #IMPLIED > <!ELEMENT ProdName (#PCDATA) >... ]> 54 56 Dokumenttypdeklaration Elemente Ein XML-Dokument kann eine Dokumenttypdeklaration (document type declaration) enthalten. In solch einer Dokumenttypdeklaration werden die zur Verfügung stehenden Auszeichnungen direkt angegeben oder es wird auf eine Auszeichnungsdeklaration verwiesen. In der Auszeichnungsdeklaration wird eine Grammatik angegeben, der das aktuelle Dokument folgen soll. Diese Grammatik wird als Dokumenttypdefinition (document type definition, DTD) bezeichnet. Über die Deklaration eines Elements wird sein Name und sein Inhaltsmodell beschrieben. Soll das Element keine weiteren Unterelemente haben, so ist das Inhaltsmodell EMPTY (leer) oder PCDATA (nur Zeichen enthaltend). <!ELEMENT text (#PCDATA)> <!ELEMENT flag EMPTY> <text>bla bla bla</text> <flag/> 55 57

Ansonsten wird eine Strukturierung von Unterelementen angegeben. Hierfür stehen die folgenden Strukturierungsmöglichkeiten zur Verfügung: Sequenz: Unterelemente werden durch Komma getrennt angegeben. Auswahl: Unterelemente werden durch getrennt angegeben. Wiederholung: Ein + hinter einem Unterelement gibt an, daß dieses beliebig oft auftreten kann, jedoch mindestens einmal auftreten muß. Wiederholung: Ein * hinter einem Unterelement gibt an, daß dies beliebig oft eventuell auch gar nicht auftreten kann. Option: Ein? hinter einem Unterelement gibt an, daß dieses einmal oder gar nicht auftreten kann. Mit Mixed Content Type bezeichnet man den Fall, daß ein Element sowohl PCDATA als auch Unterelemente enthalten kann. <!ELEMENT anreisebeschreibung (#PCDATA auto bahn flugzeug)*> <anreisebeschreibung> So kommen Sie zur FH-Bonn-Rhein-Sieg: <bahn>mit der Linie 66 bis St. Augustin Markt</bahn> <auto>am HUMA links/rechts in die Grantham-Allee</auto> <flugzeug>ab Flughafen Koeln/Bonn mit dem Taxi</flugzeug> </anreisebeschreibung> Verwendung von ANY in der Elementdeklaration erlaubt Mixed Content mit beliebigen deklarierten Elementen in beliebiger Struktur. 58 60 PCDATA steht für Parsed Character Data. Dies sind Zeichenfolgen, die spitze Klammern, Apostroph, Anführungszeichen und & nicht enthalten. Diese Zeichen sind Bestandteil der Auszeichnung. Sie müssen über sogenannte Entity-Referenzen aufgelöst werden. Innerhalb solcher Zeichenfolgen werden Entity-Referenzen ersetzt. CDATA steht für Character Data. Hier ist alles erlaubt, es findet keine Auflösung der Zeichen statt. Attribute Den Elementen eines XML-Dokuments können Attribute zugeordnet sein, in denen weitere Eigenschaften der Elemente angegeben werden. Attributdeklarationen umfassen: 1. einen Namen für das Attribut, 2. einen Datentyp für den Attributwert CDATA, ID, IDREF/IDREFS, ENTITY/ENTITIES, NMTOKEN/NMTOKENS 59 61

3. Angaben zur Verwendung: #REQUIRED das Attribu muss angegeben werden #IMPLIED das Attribut ist optional #FIXED Verwendung eines Defaultwertes 4. Angabe zu einem Defaultwert bei der Verwendung von #FIXED. Einige Entity-Referenzen kennt der Parser implizit. Dies sind die Entity-Referenzen für die Darstellung der in PCDATA nicht erlaubten Zeichen. In einer DTD können interne und externe Entity-Referenzen deklariert werden. Beispiel 2.4. <!ENTITY vorlesungstitel "Datenbanken: Konzepte, Methoden und Modelle"> In einem XML-Dokument kann nun eine Referenz wie folgt verwendet werden: <titel>&vorlesungstitel;</titel> 62 64 Entities Beispiel 2.5. Durch die Deklaration von <!ENTITY ueberdendozent SYSTEM "http://www.inf.fh-bonn-rhein-sieg.de/becker.xml"> Entity-Referenzen sind Platzhalter für Ersetzungen. Eine Entity-Referenz kann Zeichendaten beschreiben oder eine komplette XML-Instanz. Ein Entity ist irgendeine Einheit von wohlgeformten XML, auf die eine Entity-Referenz entweder direkt oder über eine URL verweist. Entity-Referenzen werden in der DTD deklariert. In PCDATA haben sie die Form: &Name; wird eine Referenz auf ein externes XML-Dokument erzeugt. Verwendet man nun &ueberdendozent;, so wird an dieser Stelle das komplette XML-Dokument eingesetzt. Durch externe Entity-Referenzen werden XML-Dokumente für andere XML-Dokumente wiederverwendbar. Bei der Einfügung findet wiederum eine Ersetzung von Entity- Referenzen statt. Ein XML-Dokument muß also nicht physikalisch aus einer einzelnen Datei bestehen. 63 65

Processing Instructions 2. Datenmodellierung mit XML und XML-Schema Eigenschaften von XML-Dokumenten Eigenschaften von XML-Dokumenten Ergänzung des Dokuments um Verarbeitungsanweisungen Syntax: <? PI-Name PI-Anweisung?> PI-Name darf die Zeichenkette xml nicht enthalten. Solche Processing Instructions sind reserviert. Processsing Instructions werden an den entsprechenden XML- Prozessor weitergeleitet. Ein XML-Dokument ist wohlgeformt, wenn es: Die syntaktischen Regeln von XML erfüllt, das Dokument genau ein Wurzelelement enthält, alle Elemente ordnungsgemäß verschachtelt sind, Attributnamen nicht mehr als einmal für ein Element auftreten, Attributewerte in Anführungszeichen oder Hochkommata eingeschlossen sind, 66 68 Kommentare 2. Datenmodellierung mit XML und XML-Schema Eigenschaften von XML-Dokumenten Attributwerte keine öffnende spitze Klammer enthalten und alle referenzierten Entities geeignet deklariert sind. Syntax:<!-- beliebiger text --> Kommentare können sowohl in der DTD als auch im Dokument auftreten. Für wohlgeformte Dokumente kann der Strukturbaum erstellt werden, ohne daß Kenntnisse über den Dokumenttyp erforderlich sind. Zweck: Erhöhung der Lesbarkeit eines Dokuments oder einer DTD Kommentare sollten nicht dazu verwendet werden, Informationen, die zum Dokument gehören, darzustellen. Auch Verarbeitungsanweisungen sollten nicht in Kommentaren enthalten sein. 67 69

2. Datenmodellierung mit XML und XML-Schema Eigenschaften von XML-Dokumenten Gültigkeit 2. Datenmodellierung mit XML und XML-Schema XML-Schema Nachteile von DTDs: DTDs benutzen innerhalb von XML eigene syntaktische Konstrukte. Ein wohlgeformtes XML-Dokument heißt gültig, wenn es: die durch die DTD definierten Beschränkungen erfüllt. DTDs kennen im Wesentlichen nur den Datentyp String (#PCDATA). DTDs stellen keine Namensräume zur Verfügung. Die Eigenschaften Wohlgeformtheit und Gültigkeit werden durch XML- Prozessoren überprüft. 70 72 2. Datenmodellierung mit XML und XML-Schema XML-Schema XML-Schema 2. Datenmodellierung mit XML und XML-Schema XML-Schema XML-Schema Vorteile eines expliziten Schemas: Bekanntmachen der Struktur vereinfachte Verarbeitung in Applikationen dedizierte Speicherung automatische Konsistenzprüfungen Die XML Schema Recommendation des W3C besteht aus: Teil 0: Primer, Erläuterung zu den Teilen 1 und 2 Teil 1: Strukturen Teil 2: Datentypen Erkennung der Semantik von Elementen DTDs und XML-Schema sind die bekanntesten Methoden zur Erstellung von Schemata in XML. 71 73

2. Datenmodellierung mit XML und XML-Schema XML-Schema Eigenschaften von XML-Schema vielfältige, vordefinierte Datentypen Definition eigener Datentypen umfangreiche Darstellungsmöglichkeiten Erweiterbarkeit Definition von Integritätsbedingungen XML-Syntax Verwendung von Namensräumen 74 76 Datentypen Einfache und komplexe Datentypen Ein Datentyp gemäß XML-Schema besteht aus: Wertebereich (value space): Menge verschiedener Werte Repräsentationsraum (lexical space): Menge von lexikalischen Repräsentationen der Werte Aspekte (facets): Eigenschaften für den Wertebereich oder den Repräsentationsraum XML-Schema stellt eine Vielzahl von Standard-Datentypen bereit. Ein einfacher Typ (simple type) ist ein Datentyp, der weder Attribute noch weitere Elemente beinhaltet. <ort>sankt Augustin</ort> Ein komplexer Typ (complex type) besteht aus einer Menge von Attributdeklarationen und/oder einem Inhaltsmodell. <vorlesung semester="ws05/06"> <dozent>peter Becker</dozent> <title>semantic Web</title> </vorlesung> 75 77

Definition einfacher Typen Benutzerdefinierte Typen basieren auf bereits definierten anderen Datentypen (Basistyp). Über Aspekte kann der benutzerdefinierte Typ gegenüber seinem Basistyp eingeschränkt werden in bezug auf grundlegende Eigenschaften Wertebereich Repräsentationen Behandlung von Zwischenraum Aspekte für den Wertebereich: Unter- bzw. Obergrenzen für einen geordneten Wertebereich: minexclusive, maxexclusive, mininclusive, maxinclusive Längenbeschränkungen für Strings und Listen: length, minlength, maxlength Genauigkeitsbeschränkungen für Datentypen abgeleitet von decimal: totaldigits, fractiondigits Aufzählung der erlaubten Werte: enumeration 78 80 Aspekte Aspekte für die Repräsentation: Aspekte für grundlegende Eigenschaften: Ordnung auf einem Datentyp (total, partiell, nicht geordnet) Beschränktheit des Wertebereichs Kardinalität (endlich, abzählbar) Datentyp ist numerisch Muster in Form eines regulären Ausdrucks für die Repräsentation: pattern Evtl. implizite Einschränkung des Wertebereichs. Behandlung von Zwischenraum: whitespace Mögliche Werte für whitespace: preserve: Zwischenraum bleibt im Wert erhalten replace: Tabulator-, Zeilenende und Wagenrücklaufzeichen werden durch Leerzeichen ersetzt. collapse: Führende und abschließende Leerzeichen werden unterdrückt, Folgen von Leerzeichen auf ein einziges reduziert. Selbstdefinierte Aspekte sind in XML-Schema nicht möglich. 79 81

Beispiel 2.6. Typ für Ortsnamen mit einer maximalen Länge von 30: <xs:simpletype name="ort"> <xs:restriction base="xs:string"> <xs:length value="30"/> </xs:restriction> </xs:simpletype> Definition eines Typs Kategorie mit erlaubten Werten zwischen 1 und 5: <xs:simpletype name="kategorie"> <xs:restriction base="xs:integer"> <xs:mininclusive value="1"/> <xs:maxinclusive value="5"/> </xs:restriction> </xs:simpletype> Listenbildung und Vereinigung Für einfache Typen stehen zwei weitere Typkonstruktoren zur Verfügung: Listenbildung: Aus einem einfachen Typ kann ein Listentyp mit dem einfachen Typ als Basistyp gebildet werden. Vereinigung: Wertebereiche und Repräsentationsräume von einfachen Typen können vereinigt werden. 82 84 Definition eines Typs Hausnummer: <xs:simpletype name="hausnummer"> <xs:restriction base="xs:string"> <xs:pattern value="[1-9][0-9]*[a-z]?"/> </xs:restriction> </xs:simpletype> Beispiel 2.7. Definition einer Telefonnummer: <xs:simpletype name="telefonnummer"> <xs:restriction base="string"> <xs:pattern value="0[0-9]+/[0-9]+"/> </xs:restriction> </xs:simpletype> Definition einer Liste von Telefonnummern und Definition eines Typs für Kontakte: <xs:simpletype name="telefonnummern"> <xs:list itemtype="telefonnummer"/> </xs:simpletype> <xs:simpletype name="kontakt"> <xs:union membertypes="telefonnummer email"/> </xs:simpletype> 83 85

Definition komplexer Typen Inhaltsmodelle Die Definition eines komplexen Typs ist erforderlich, wenn: Elemente Attribute haben können, Kindelemente vorhanden sein können oder Elemente einen leeren Inhalt haben. Für complexcontent stehen die folgenden Inhaltsmodelle zur Verfügung: sequence: Die nachfolgend definierten Elemente treten in genau dieser Reihenfolge auf. choice: Von den nachfolgend definierten Elementen tritt genau eins auf. all: Die nachfolgend definierten Elemente treten höchstens einmal in beliebiger Reihenfolge auf. 86 88 Einfacher bzw. komplexer Inhalt: simplecontent: Elemente dieses Typs haben keine Kindelemente. complexcontent: Es können Kindelemente auftreten. Einschränkende bzw. erweiternde Typdefinition: restriction: Ein bereits bestehender Typ wird durch die Angabe von Eigenschaften eingeschränkt. extension: Ein bereits bestehender Typ wird um zusätzliche Attribute oder Elemente ergänzt. Für diese Eigenschaften stehen jeweils XML-Schema-Elemente zur Verfügung. Beispiel 2.8. Definition eines komplexen Typs für Adressen: <xs:complextype name="adresse"> <xs:complexcontent> <xs:restriction base="xs:anytype"> <xs:sequence> <xs:element name="ort" type="ort"/> <xs:element name="plz" type="xs:integer"/> <xs:element name="strasse" type="xs:string"/> <xs:element name="nr" type="hausnummer"/> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype> Die XML-Schema-Elemente für complexcontent und restriction sind hierbei optional. 87 89

<xs:complextype name="adresse"> <xs:sequence> <xs:element name="ort" type="ort"/> <xs:element name="plz" type="xs:integer"/> <xs:element name="strasse" type="xs:string"/> <xs:element name="nr" type="hausnummer"/> </xs:sequence> </xs:complextype> Die Vorkommenshäufigkeit für Elemente kann durch folgende Attribute von element beeinflußt werden: minoccurs: minimale Vorkommenshäufigkeit Erweiterung eines Typs um ein zusätzliches Element: <xs:complextype name="hoteladresse"> <xs:complexcontent> <xs:extension base="adresse"> <xs:sequence> <xs:element name="telefon" type="telefonnummer" minoccurs="1" maxoccurs="3"/> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> maxoccurs: maximale Vorkommenshäufigkeit Fehlen die Attribute, ist der Wert implizit jeweils 1. 90 92 Beispiel 2.9. Erweiterung eines Typs um ein zusätzliches Attribut: <xs:complextype name="kontaktinfo"> <xs:simplecontent> <xs:extension base="kontakt"> <xs:attribute name="name" type="xs:string"/> </xs:extension> </xs:simplecontent> </xs:complextype> 2. Datenmodellierung mit XML und XML-Schema Deklarationen Deklarationen Definitionen: Schemabausteine, die wiederverwendet werden können Deklarationen: Liefern die für die Validierung notwendigen Informationen Es können deklariert werden: Elemente: Damit werden die Tags für das Markup festgelegt. Attribute Notationen 91 93

2. Datenmodellierung mit XML und XML-Schema Deklarationen Elementdeklaration Entweder wird für eine Elementdeklaration auf eine schon bestehende Elementdeklaration oder Typdefinition mittels ref verwiesen oder zu der Elementdeklaration wird ein Tagname (name) und ein Typ angegeben. Die Angabe des Typs kann lokal erfolgen (wie bei Typdefinitionen) oder durch den Verweis auf einen Typ (type). 2. Datenmodellierung mit XML und XML-Schema Deklarationen Definition eines Elements mit komplexem Inhaltsmodell und lokaler Typdefinition: <xs:element name="telefon"> <xs:complextype> <xs:sequence> <xs:element name="vorwahl type="xs:string"/> <xs:element name="rufnummer type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> 94 96 2. Datenmodellierung mit XML und XML-Schema Deklarationen Definition eines Elements auf Basis eines Standard- Beispiel 2.10. typs: <xs:element name="vorlesungstitel" type="xs:string"/> Definition eines optionalen Elements auf Basis eines benutzerdefinierten einfachen Typs: <xs:element name="kategorie" minoccurs="0" type="kategorie"/> Definition eines Elementes durch Verweis auf einen Typ: <xs:element ref="adresse"/> 95