XML-Datenmodellierung / XML-Schemasprachen

Transcription

XML-Datenmodellierung / XML-Schemasprachen
XML-Datenmodellierung / XML-Schemasprachen
XML-Abfragesprachen
XML-Schemasprachen
XPath
DTD
XQuery
XML-Transformationssprache
XML-Schema
XSLT
...
XML
Relationale
DBMS
38
XML in DBMS
Dedizierte
XML-DBMS
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
2. XML-Datenmodellierung / XML-Schemasprachen
-
39
Warum XML-Schemasprachen?
Document Type Definition (DTD)
XML-Schema
alternative Ansätze (Relax NG und Schematron)
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Warum XML-Schemasprachen?
<vorlesung titel="XML ..."
<teilnehmer matrikel="4711">
<name>Mustermann</name>
Fakultät
<student matrikel="4712">
Fakultät 1 <vorname>Max</vorname>
<name>Normalverbraucher</name>
<semester>5</semester>
<vorname>Otto</vorname>
<studienfach>8</studienfach>
<semester>6</semester>
</teilnehmer>
<studienfach>10</studienfach>
</vorlesung>
<lehrveranstaltungen>
<vorlesung titel="XML ..."/>
</lehrveranstaltungen>
<vorlesung titel="XML ..."
</student>
<teilnehmer>
<matNr>4713</matNr>
<name>Erika Mustermann</name>
<semester>7</semester>
<studienfach>Inf</studienfach>
</teilnehmer>
</vorlesung>
unterschiedliche Struktur
bei gleichartigem Informationsgehalt
Fakultät 3
40
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
2
XML-Datenmodellierung / XML-Schemasprachen
Probleme
-
kein einheitliches Schema
systematischer Zugriff kaum möglich
Informationen vorhanden, aber unbrauchbar
verständlicher Datenaustausch (fakultätsübergreifend) nicht realisierbar
Warum dann überhaupt XML?
Weil es auch XMLSchemasprachen gibt
41
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Woher kennen wir „Schemas“ schon?
E/R-Diagramm
(konzeptionelles Schema)
Vorname
Matrikel
Name
Student
Studienfach
42
Titel
*
*
Vorlesung
Semester
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Übertragen auf die „XML-Welt“ (am Bsp. XML-Schema)
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="vorlesung">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="teilnehmer">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="vorname" type="xs:string" />
<xs:element name="semester" type="xs:int" />
<xs:element name="studienfach" type="xs:int" />
</xs:sequence>
<xs:attribute name="matrikel"
type="xs:int"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="titel" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
43
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
möglicher Einsatz von XML-Schemasprachen
<vorlesung titel="XML ..."
<teilnehmer matrikel="4711">
<name>Mustermann</name>
<vorname>Max</vorname>
Fak
<semester>5</semester>
<studienfach>8</studienfach>
</teilnehmer>
</vorlesung>
Validierung
Ergebnis
.1
Fak. 2
<vorlesung titel="XML ..."
<teilnehmer>
<matNr>4713</matNr>
<name>Erika Mustermann</name>
Fak
<semester>7</semester>
<studienfach>Inf</studienfach>
</teilnehmer>
</vorlesung>
.3
44
DTD, XML-Schema, …
<student matrikel="4712">
<name>Normalverbraucher</name>
<vorname>Otto</vorname>
<semester>6</semester>
<studienfach>10</studienfach>
<lehrveranstaltungen>
<vorlesung titel="XML ..."/>
</lehrveranstaltungen>
</student>
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Document Type Definition (DTD)
- „alter“ Standard aus SGML-Spezifikation (80er Jahre), der in vereinfachter
Form durch XML-Spezifikation aufgegriffen wurde
- definiert eine Klasse strukturell ähnlicher XML-Dokumente
- im Detail definierbar
• Elementreihenfolge
• Verschachtelung von Elementen
• Inhalt von Attributen
45
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Document Type Definition (DTD)
- DTDs müssen stets am Anfang von XML-Dokumenten definiert werden
Wurzelelement im XML-Dokument
Beginn
<!DOCTYPE vorlesung[
<!ELEMENT vorlesung (teilnehmer+)>
<!ATTLIST vorlesung titel CDATA #REQUIRED>
<!ELEMENT teilnehmer (name, vorname, semester,
studienfach)>
<!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED>
Attributliste
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
Elementtyp
Ende
46
name (#PCDATA)>
vorname (#PCDATA)>
semester (#PCDATA)>
studienfach (#PCDATA)>
]>
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Elementtyp
- definiert Name (dokumentweit eindeutig) und Inhaltsmodell eines Element
Name
Inhaltsmodell
<!ELEMENT teilnehmer (name,
vorname,
semester,
studienfach)>
- Inhaltsmodell wird von runden Klammern umschlossen und besteht aus
• EMPTY – leeres Element
• #PCDATA – nicht näher definierte Daten
• ANY – beliebiger Inhalt (nicht näher definierter Text oder beliebiges in
der DTD definiertes Element)
• weiteren Elementtypen mit Angabe deren Kardinalität (Häufigkeit)
47
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Elementtyp
- Definition weiterer Elementtypen im Inhaltsmodell per
• Sequenz (",") – alle Elemente in angegebener Reihenfolge oder
• Auswahl ("|") – ein Element aus Aufreihung
- Kardinalitäten (eines Elementtyps)
• "*" – beliebig häufiges Vorkommen, einschließlich keinmal
• "+" – mehrfaches Vorkommen, mindestens einmal
• "?" – optionales Vorkommen, maximal einmal
• keine Angabe – genau einmaliges Vorkommen
- aus unserem Beispiel
• eine Vorlesung hat beliebig viele, mindestens jedoch einen Teilnehmer
<!ELEMENT vorlesung (teilnehmer+)>
48
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Attributliste
- definiert für einen bestimmten Elementtyp eine Liste von Attributen mit
jeweils Name (eindeutig innerhalb Element), Typ und Verhalten
Elementtyp Name Typ
Verhalten
<!ATTLIST vorlesung titel CDATA #REQUIRED>
Attributtyp
- Attributliste kann mehrere Attributtypen für ein Element definieren
(einzelne Typdefinition nur durch Leerzeichen oder Umbruch getrennt)
- pro Element können ebenfalls mehrere Attributlisten definiert werden
49
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Attributliste
- Typen
• CDATA – beliebige Zeichendaten
Bsp.: beschreibung="Wir lernen die DTD kennen!"
• NMTOKEN (Namens-Token) – eine einzelne zusammenhängende
Zeichenkette
Bsp.: rolle="Student"
• NMTOKENS – eine Liste mehrerer NMTOKEN
Bsp.: spez="DTD XML-Schema Relax_NG Schematron"
50
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Attributliste
- Typen
• ID – eindeutiger Bezeichner dessen Wert innerhalb des ganzen
Dokuments eindeutig sein muss
Bsp.: stud_ID="inf4711"
• Aufzählungsliste – Liste von NMTOKEN, aus denen das Attribut
genau ein Wert annehmen kann
Bsp. für Definition: (Mo | Di | Mi | Do | Fr | Sa | So)
• ...
51
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Attributliste
- Verhalten
• "Standardwert" – Standardwert zuweisen
Bsp.: <!ATTLIST inf_student geschlecht(m | w) "m">
• #IMPLIED – optionales Attribut
Bsp.: <!ATTLIST teilnehmer
zweiter_vorname CDATA #IMPLIED>
• #REQUIRED – zwingend erforderliches Attribut
Bsp.: <!ATTLIST teilnehmer
matrikel NMTOKEN #REQUIRED>
• #FIXED – unveränderbar vorbelegtes Attribut
Bsp.: <!ATTLIST vorlesung
lehrstuhl CDATA #FIXED "DBIS">
52
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Auslagerung einer DTD
- Referenzieren externer DTD-Datei statt Definition der DTD im XMLDokument möglich
vorlesung.dtd
<?xml version="1.0"
encoding="ISO-8859-1"?>
<!DOCTYPE vorlesung[
<!ELEMENT vorlesung
(teilnehmer+)>
...
]>
<vorlesung titel="XML ...">
...
53
<!DOCTYPE vorlesung[
<!ELEMENT vorlesung
(teilnehmer+)>
...
<?xml version="1.0"
encoding="ISO-8859-1"?>
<!DOCTYPE vorlesung SYSTEM
".../vorlesung.dtd" []>
<vorlesung titel="XML ...">
...
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Modularisierung einer DTD
- Zerlegung einer DTD in logische und übersichtliche Einheiten (Module)
- Einbinden der Module mittels Parameter Entities
teilnehmer.mod
Deklaration
<?xml version="1.0"
encoding="ISO-8859-1"?>
<!DOCTYPE vorlesung[
...
<!ENTITY % teilnehmer
SYSTEM "teilnehmer.mod">
...
%teilnehmer
]>
<vorlesung titel="XML ...">
...
<!ELEMENT teilnehmer (name,
vorname,
semester,
studienfach)>
<!ATTLIST teilnehmer matrikel
NMTOKEN #REQUIRED>
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
name (#PCDATA)>
vorname (#PCDATA)>
semester (#PCDATA)>
studienfach (#PCDATA)>
Import
54
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Was kann eine DTD noch?
-
55
Referenzen beschreiben (mittels ID und IDREF bzw. IDREFS)
weitere Formen von Entities (zum Zweck der Wiederverwendbarkeit)
Notationen (zur Formatangabe für externe „XML-fremde“ Daten)
rekursive Beziehungen abbilden
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Nachteile von DTDs
- funktionale Beschränktheit
• kaum Datentypen (keine Zahlen, Datum, etc.)
• keine Unterstützung für Namespaces
• dokumentweite Eindeutigkeit von Elementen und IDs
• keine Sonderzeichen für Aufzählungstyp zulässig
- Syntax
• DTDs sind selbst keine XML-Dokumente
• zusätzliche Editoren zur Bearbeitung nötig
- ...
56
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
DTD
57
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
XML-Schema
- Nachteile der DTD förderten seit 1999 Standardisierungsbestrebungen zu
einer „XML-spezifischeren“ Schemasprache
- Entwurfsziele
• Fähigkeiten von DTD einschließen
• umfangreiches Typsystem bereitstellen
• Unterstützung von Namespaces
• lokale Definition von Elementen
• Verwendung von XML-Syntax
- 2001 Verabschiedung der W3C Recommendation „XML-Schema“
(sehr komplex* und daher 3-teilig)
* Wir werden uns aufgrund der erwähnten Komplexität auf die Grundlagen der XML-Schema-Spezifikation beschränken.
58
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
XML-Schema-Dokument
- XML-Schemas werden durch XML-Schema-Dokumente beschrieben*
XML-SchemaDokument
Vorlesung.xsd
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="vorlesung">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="teilnehmer">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="vorname" type="xs:string" />
<xs:element name="semester" type="xs:int" />
<xs:element name="studienfach" type="xs:int" />
</xs:sequence>
<xs:attribute name="matrikel"
type="xs:int"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="titel" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
* Vereinfachung: Wir werden die Begriffe XML-Schema und XML-Schema-Dokument teilweise synonym füreinander verwenden.
59
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Charakteristik von XML-Schema-Dokumenten
- XML-Schema-Dokumente ⊂ XML-Dokumente
- Besonderheiten von XML-Schemas
• umschließendes schema-Element (nach XML-Deklaration)
• Namespace "http://www.w3.org/2001/XMLSchema"
• Namespace-Präfix häufig xs oder xsd
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="vorlesung">
...
60
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Deklaration von Elementen
- per Element <xs:element> und damit verbundenen Attributen
• name – Elementname
• type – zugeordneter Typ
• minOccurs – min. Vorkommen eines Elements
• maxOccurs – max. Vorkommen ("unbounded" für beliebig oft)
• ...
<xs:element name="vorlesung" type="xs:string" />
61
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Deklaration von Elementen
- alternative Form der Typdefinition: „anonyme Typdefinition“
• Typdefinition ohne Name direkt innerhalb des Elements
• keine Möglichkeit zur Wiederverwendung
<xs:element name="vorlesung" >
[anonyme Typdefinition]
</xs:element>
62
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Deklaration von Attributen
- per Element <xs:attribute> und damit verbundenen Attributen
• name – Attributname
• use – Verwendung ("required", "optional", "prohibited")
• default – Standardwert (nur erlaubt bei use="optional")
• fixed – fixer Wert vorausgesetzt (nicht in Verbindung mit default )
• ...
<xs:attribute name="matrikel"
type="xs:int"
use="required" />
- anonyme Typdefinition (siehe Elemente) auch bei Attributen möglich
63
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Vordefinierte Typen
Legende
64
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Vordefinierte Typen
- insgesamt 44 vordefinierte (einfache) Typen für unter anderem
• Zeichenketten (bspw. "xs:string", "xs:language")
• Zahlen (bspw. "xs:int", "xs:float")
• Zeit- und Datumsangaben (bspw. "xs:date", "xs:datetime")
- vordefinierte Typen unterscheiden sich in
• Urtypen
• primitive Typen
• (von Primitivtypen) abgeleitete Typen
- DTD-Datentypen aus Kompatibilitätsgründen weitgehend übernommen
65
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Erzeugung eigener Typen
- zusätzlich zu vordefinierten Datentypen lassen sich eigene Typen erzeugen
Typen
ohne (Kind-) Elemente
und Attribute
einfache
Typen
komplexe
Typen
einfacher Inhalt
ohne (Kind-) Elemente
66
umfassen (Kind-)
Elemente oder Attribute
komplexer Inhalt
mit (Kind-) Elementen
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – einfache Typen
- Verwendung für Attributwerte oder Textinhalt von Elementen
- Komponenten
• Wertebereich (value space)
• Repräsentationsraum (lexical space) – Repräsentationen für Werte
• Aspekte (facets) – Eigenschaften von Typen über die eingeschränkt
werden kann
- oft gibt es zu einem Wert mehrere Repräsentationen (Bsp.: 100 = 1.0E2)
67
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – einfache Typen
- einschränkende Aspekte (facets)
• Unter-/Obergrenzen für geordneten Wertebereich
minInclusive, minExclusive,
maxInclusive, maxEclusive
• Längenbeschränkungen
- für Zeichenketten
length, minLength, maxLength
- für Listen
length, minLength, maxLength
- für Dezimalzahlen
totalDigits – maximale Gesamtanzahl der Dezimalstellen,
fractionDigits – Anzahl der Nachkommastellen
68
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – einfache Typen
- einschränkende Aspekte (facets)
• Aufzählung der erlaubten Werte (enumeration)
• Reguläre Ausdrücke (pattern) zur Einschränkung des
Repräsentationsraums (und damit indirekt auch des Wertebereichs)
• Behandlung von Whitespace (Leerzeichen, Tabulator,
Zeilenende/Wagenrücklauf)
preserve – Whitespace wird beibehalten
replace – Tabulator und Zeilenende/Wagenrücklauf werden durch
Leerzeichen ersetzt
collapse – wie replace, zusätzlich werden jedoch führende und
folgende Leerzeichen abgeschnitten sowie Folgen von
Leerzeichen auf ein je einmaliges Vorkommen beschränkt
69
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – komplexe Typen
- Verwendung für Elemente
- Unterscheidung
• einfacher Inhalt – Inhalt ohne (Kind-) Elemente
• komplexer Inhalt – Inhalt umfasst (Kind-) Elemente
- per Reihung (sequence) – (Kind-) Elemente müssen in angegebener
Reihenfolge vorkommen
- per Auswahl (choice) – nur eines der angeführten (Kind-) Elemente
darf vorkommen
- per Konjunktion (all) – alle aufgeführten (Kind-) Elemente dürfen
maximal einmal in beliebiger Reihenfolge
vorkommen
70
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – komplexe Typen
- besonderer komplexer Inhalt
• anyType
- wird einem Element der Typ anyType zugeordnet, so ist für dieses
Element beliebiger (komplexer) Inhalt erlaubt
<xs:element name="irgendetwas" type="xs:anyType" />
• gemischter Inhalt (mixed content)
- komlexer Inhalt mit Text wird durch das Attribut mixed="true"
im Element complexType gekennzeichnet
<xs:element name="Element_mit_gemischtem_Inhalt">
<xs:complexType mixed="true">
...
</xs:complexType>
</xs:element>
71
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Die Typen im Detail – komplexe Typen
- besonderer komplexer Inhalt
• leerer Inhalt
- komplexer Inhalt ist „standardmäßig“ Inhalt ohne Text
- Inhaltsmodell (leer) kann bei Definition daher vernachlässigt werden
<xs:element name="Element_ohne_Inhalt">
<xs:complexType>
<xs:attribute name="nur_ein_Attribut"
type="xsd:string" />
</xs:complexType>
</xs:element>
72
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Ableitungsmechanismen
- Vererbungsmechanismen
• Einschränkung (restriction)
- Ableitung eines Typs von einem Basistyp unter Verwendung von
beliebig vielen beschränkenden Aspekten
- Ergebnis ist einfacher oder komplexer Typ
<xs:simpleType name="Telefonnummer">
<xs:restriction base="xs:string">
<xs:pattern value="0[0-9]+/[0-9]+"/>
<xs:maxLength value="25"/>
</xs:restriction>
</xs:simpleType>
73
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Ableitungsmechanismen
- Vererbungsmechanismen
• Erweiterung (extension)
- Erweiterung eines bestehenden Typs um neue Attribute oder Elemente
- Ergebnis ist stets ein komplexer Typ
<xs:complexType name="Telefonnummer_erweitert">
<xs:simpleContent>
<xs:extension base="Telefonnummer">
<xs:attribute name="Funktion"
type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:simpleType>
74
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Ableitungsmechanismen
- Aggregationsmechanismen
• Listenbildung (list)
- Ableitung eines einfachen Typs zu einer Liste einfacher Typen
- Liste selbst ist ebenfalls einfacher Typ
<xs:simpleType name="Telefonnummern">
<xs:list itemType="Telefonnummer"/>
</xs:simpleType>
75
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Ableitungsmechanismen
- Aggregationsmechanismen
• Vereinigung (union)
- Vereinigung der Wertebereiche und Repräsentationsräume von
einfachen Typen
- Ergebnis ist stets ein einfacher Typ
<xs:simpleType name="Kontakt">
<xs:union memberTypes="Telefonnummer eMail"/>
</xs:simpleType>
76
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Was kann XML-Schema noch?
- Gruppen von Elementen und/oder Attributen (zum Zweck der
Wiederverwendbarkeit)
- offene Schemata (Einschränkungen nur in Abhängigkeit zu Namespaces)
- gezielte Eindeutigkeiten und Referenzen beschreiben
- Unterstützung für Namespaces
- Ersetzungsgruppen definieren
- Import von XML-Schema-Dokumenten
- ...
77
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
XML-Schema
78
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
alternative Ansätze
- Regular Language Description for XML New Generation (RELAX NG)
• aus den Schemasprachen RELAX und TREX hervorgegangen
• grammatikorientierter Ansatz (geschlossener Schemaformalismus)
- nur die Konstrukte sind erlaubt, die sich anhand der Produktionsregeln der Grammatik von RELAX NG ableiten lassen
- analog zum XML-Schema-Konzept
• Entwurfsziele
- kompakte, einfache und verständliche Schemasprache
- Beschränkung auf strukturelle Beschreibung
- Verwendung von XML-Syntax
- Unterstützung von Namespaces
79
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
alternative Ansätze
- Schematron
• regelbasierten Ansatz (offener Schemaformalismus)
- alle Konstrukte sind erlaubt, die nicht explizit verboten wurden
- Ausschließen von Unzulässigkeiten per Regeln
• Besonderheiten
- durch Regeln (in XML-Syntax) lassen sich umfangreiche
Zusammenhänge beschreiben (bspw. inhaltliche Abhängigkeiten)
- Gesamtheit aller strukturellen Zusammenhänge wiederum lässt sich
nur sehr aufwändig mit Regeln fixieren
- Schematron daher weniger als eigenständige Schemasprache,
sondern vielmehr als Ergänzung zu grammtikorientierten Sprachen
zu verstehen
80
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
XML-Datenmodellierung / XML-Schemasprachen
Zusammenfassung
- es existieren verschiedene Schemasprachen in unterschiedlicher
Mächtigkeit zur Beschreibung von XML-Dokumenten
- DTDs sind historische „Überbleibsel“ der SGML-Spezifikation, die den
XML-Spezifika nur wenig gerecht werden
- XML-Schema ist zum heutigen Zeitpunkt die de facto XMLSchemasprache mit enormer Mächtigkeit
- der funktionale Umfang von XML-Schema wird durch eine hohe
Komplexität erkauft
- alternative Ansätze (bspw. RELAX NG) versuchen beispielsweise dieser
Komplexität wiederum entgegenzuwirken oder bieten erweiterte
Möglichkeiten zur Prüfung inhaltlicher Abhängigkeiten (Schematron)
81
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen