XML – Schema (DTD)
Übersicht
 Über XML
– Was ist XML?
– Welche Ziele werden verfolgt?
 XML – Dokumente
– Wohlgeformtheit
 Namensräume
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
2
Übersicht
 XML – Schema
– Aufbau einer DTD
– XML - Schema
 Anwendungsbeispiel:
– XML-Schema für dieses Proseminar
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
3
Über XML
- Was ist XML?
Die XML (Extensible Markup Language) ist eine
Grammatik, die XML-Dokumente beschreibt.
Über die Regeln der XML hinaus, können weitere
formuliert werden, und zwar in einem XML-Dokument
selbst. Die XML-Grammatik wird in diesem Fall erweitert.
Da die zusätzlichen Regeln in der XML-Grammatik
vorgenommen werden, spricht man bei XML auch von
einer Metagrammatik.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
4
Über XML
- Welche Ziele werden verfolgt?
1. XML soll sich im Internet auf einfache Weise nutzen
lassen.
2. XML soll ein breites Spektrum von Anwendungen
unterstützen.
3. XML soll zu SGML kompatibel sein.
4. Es soll einfach sein, Programme zu schreiben, die
XML-Dokumente verarbeiten.
5. Die Anzahl optionaler Merkmale in XML soll
minimal sein, idealerweise Null.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
5
Über XML
- Welche Ziele werden verfolgt?
6. XML-Dokumente sollten für Menschen lesbar und
angemessen verständlich sein.
7. Der XML-Entwurf sollte zügig abgefasst werden.
8. Der Entwurf von XML soll formal und präzise sein.
9. XML-Dokumente sollten leicht zu erstellen sein.
10. Knappheit von XML-Markup ist von minimaler
Bedeutung.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
6
XML – Schema (DTD)
XML - Dokumente
XML - Dokumente
Definition: A data object is an XML document if it is wellformed, as defined in this specification. A well-formed XML
document MAY in addition be valid if it meets certain further
constraints.
[http://www.w3.org/TR/2004/REC-xml11-20040204/]
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
8
XML – Dokumente (Wohlgeformtheit)
Definition: A textual object is a well-formed XML document
if:
• Taken as a whole, it matches the production labeled
document.
• It meets all the well-formedness constraints given in this
specification.
• Each of the parsed entities which is referenced directly
or indirectly within the document is well-formed.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
9
XML - Dokumente
Produktionsregel für ein Dokument:
Enthält Informationen
über das Dokument
document
Kommentare
Verarbeitungshinweise
::= prolog element Misc*
- Char* RestrictedChar Char*;
Wurzelelement - enthält
Informationen des Dokuments
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
10
XML - Dokumente
Allgemeines:
• XML ist case-sensitive
• Namen:
Man sollte sich an die üblichen Konventionen halten.
Namen dürfen nicht mit einer Schreibweise von XML
beginnen.
Der Doppelpunkt sollte nicht verwendet werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
11
XML - Dokumente
Allgemeines:
• Folgende Zeichen dürfen ausschließlich für markup
verwendet werden: ", ', <, >, &
Anstelle von ihnen kann &quot; , &apos; , &lt; , &gt,
&amp; verwendet werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
12
XML - Dokumente
Allgemeines:
• Inhalte von CDATA-Abschnitten, Kommentaren und
processing instructions werden nicht interpretiert. D.h. die
oben genannten Zeichen können dort verwendet werden.
Der Inhalt wird, außer bei Kommentaren, unverändert an
die verarbeitende Anwendung weitergegeben.
• Deklaration eines CDATA Abschnittes:
<!CDATA[ [Inhalt] ]]>
Das Fragment ]]> darf nicht im Inhalt vorkommen
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
13
XML - Dokumente
Allgemeines:
• Deklaration eines Kommentars:
<!-- [Kommentar] -->
Die Zeichenkette -- darf nicht im Kommentar
vorkommen.
• Deklaration einer processing instruction:
<? [Bezeichner der Anwendung] [Anweisung] ?>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
14
XML - Dokumente
Produktionsregel für ein Dokument:
Enthält Informationen
über das Dokument
document
::= prolog element Misc*
- Char* RestrictedChar Char*;
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
15
XML - Dokumente
Prolog:
• Kann am Anfang eine Angabe zur XML-Version
enthalten.
• Kann Angaben über den Dokumenttyp enthalten.
• Kann Kommentare und processing instructions
enthalten. (MISC)
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
16
XML - Dokumente
Produktionsregel für ein Dokument:
Kommentare
Verarbeitungshinweise
document
::= prolog element Misc*
- Char* RestrictedChar Char*;
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
17
XML - Dokumente
• Angabe zur XML-Version:
<?xml version = "1.1" encoding = "UTF-8"
standalone="yes" ?>
Versionsnummer
Zeichensatz (optional)
Gibt einen Hinweis, ob es Verweise
auf externe Quellen gibt (optional)
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
18
XML - Dokumente
• Angabe zum Dokumententyp:
<!DOCTYPE [Name] [Verweis auf externe
Quelle] [Deklarationen] >
[Name] muss mit dem Namen des Wurzelelementes
übereinstimmen.
[Deklaration] enthält die Deklarationen einer DTD
(interne Deklaration)
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
19
XML - Dokumente
• Angabe zum Dokumententyp:
<!DOCTYPE [Name] [Verweis auf externe
Quelle] [Deklarationen] >
[Verweis auf externe Quelle] hat folgendes Format:
SYSTEM "[URI]"
oder
PUBLIC "[öffentlicher Bezeichner] [URI]"
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
20
XML - Dokumente
• Bsp.:
<!DOCTYPE wurzel PUBLIC "-//ich//dtd//de"
"http://www.meins.de/wurzel.dtd">
oder
<!DOCTYPE wurzel SYSTEM
" http:// www.meins.de/wurzel.dtd">
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
21
XML - Dokumente
Produktionsregel für ein Dokument:
document
::= prolog element Misc*
- Char* RestrictedChar Char*;
Wurzelelement - enthält
Informationen des Dokuments
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
22
XML - Dokumente
Elemente können leer sein, oder
Zeichenreferenzen (&#x132),
Entityreferenzen (&text;),
Text,
weitere Elemente enthalten.
Zudem können Attribute angegeben werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
23
XML - Dokumente
Ein leeres Element:
<[Name] [Attribute] />
Element mit Inhalt:
<[Name] [Attribute] >
[Inhalt]
</[Name]>
Der Name im Start-Tag und im End-Tag müssen identisch
sein. Sie geben den Typ des Elementes an.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
24
XML - Dokumente
Darstellung von Attributen:
[Attributname] = "[Wert]"
Attribute können nur in Start-Tags oder leeren
Elementen stehen, und dürfen dort nur einmal
erscheinen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
25
XML - Dokumente
Bsp.:
<crlf />
Bsp.:
<anfang xml:lang="de" echt = "wahr">
</anfang>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
26
XML - Dokumente
Korrekte Verschachtelung:
Das Wurzelelement ist Inhalt von keinem anderen
Element – es ist einmalig.
Für jedes Nicht-Wurzelelement existiert ein anderes
Element, dessen Inhalt es ist, Elter genannt. Es ist aber
kein Inhalt von einem weiteren Element, das ebenfalls
Inhalt des Elters ist.
Die Elemente- Hierarchie ist ein Baum
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
27
XML - Dokumente
Bsp.:
<?xml version = "1.0" ?>
<person geschlecht = "m">
<vorname>Hans</vorname>
<nachname>Meier</nachname>
</person>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
28
XML – Schema (DTD)
Namensräume
Namensräume
Elemente mit gleichen Namen könnten unterschiedliche
Bedeutung haben.
• Ununterscheidbarkeit für verarbeitende Anwendung
• Namenskonflikte
Lösung: Namensräume
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
30
Namensräume
Namensräume werden in dem Element festgelegt, in dem sie
gelten sollen.
<element xmlns:[Präfix] = "[IRI]">
</element>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
31
Namensräume
Die Namen von Elementen und Attributen, sowie die
Attributwerte werden zu qualified names (QNames) erweitert.
Dieser besteht aus dem Namensraumbezeichner und dem
lokalen Namen, die beide durch einen ":" betrennt sind.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
32
Namensräume
Bsp.:
<stadt>
<bauten:bank xmlns:bauten = "http://bauten.de/dtd">
<bauten:eigentuemer bauten:person="nein">
Geld eG
</bauten:eigentuemer>
</bauten:bank>
<moebel:bank xmlns:moebel = "http://mobilar.de/park" />
</stadt>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
33
Namensräume
Es können beliebig viele Namensräume deklariert werden.
IRIs müssen sich unterscheiden, da sonst ihre Namensräume
als identisch angesehen werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
34
Namensräume
Es kann ein Namensraum als Default-Namensraum festgelegt
werden, d.h. einen Namensraum, dem alle Elemente
zugeordnet werden, die nicht ausdrücklich einem
Namensraum zugeordnet sind.
Default-Namensraum:
<element xmlns="[IRI]">
Attribute müssen einem Namensraum immer explizit
zugeordnet werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
35
Namensräume
Bsp.:
<stadt>
<bank xmlns= "http://bauten.de/dtd">
<eigentuemer person="nein">
Geld eG
</eigentuemer>
</bank>
<moebel:bank xmlns:moebel = "http://mobilar.de/park" />
</stadt>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
36
XML – Schema (DTD)
Aufbau einer DTD
Aufbau einer DTD
Die "document type definition" legt den Dokumenttyp fest.
Sie ist eine Grammatik für eine Klasse von Dokumenten.
Diese Definition schränkt somit die Menge möglicher XML Dokumente ein, indem sie den Aufbau des Dokumentes
angibt. Entspricht das Dokument den Vorgaben der DTD, so
wird es als gültig ("valid") bezeichnet.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
38
Aufbau einer DTD
Vorteile:
• allen Dokumenten liegt eine vorgegebene Struktur zugrunde
• es liegt ein gewisser Grad an Einheitlichkeit vor
• Dokumente sind leichter zu verarbeiten
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
39
Aufbau einer DTD
Eine Dokumententyp-Definition kann intern (in dem XMLDokument) oder extern (in einer separaten Datei) erfolgen.
Folgendes lässt sich in einer DTD deklarieren:
• Elemente
• Attributlisten für Elementen
• Entities
• Notationen
Zwischen den einzelnen Deklarationen sind Kommentare und
"processing instructions" erlaubt.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
40
Aufbau einer DTD (Elemente)
Deklaration von Elementen:
<!ELEMENT [Name] [Inhalt] >
Der Name des Elementes gibt den Elementtyp an.
Er muss den allgemeinen Regeln für Namen entsprechen.
Jeder Elementtyp darf nur einmal deklariert werden.
In diesem Abschnitt wird mit einem Element eine Instanz des
Elementtyps bezeichnet
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
41
Aufbau einer DTD
Deklaration von Elementen:
<!ELEMENT [Name] [Inhalt] >
Deklaration von leeren Elementtypen:
<!ELEMENT [Name] EMPTY>
Bsp.:
<!ELEMENT crlf EMPTY>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
42
Aufbau einer DTD
Deklaration von Elementen:
<!ELEMENT [Name] [Inhalt] >
Deklaration von Elementtypen, die Text enthalten können:
<!ELEMENT [Name] (#PCDATA) >
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
43
Aufbau einer DTD
Deklaration von Elementen:
<!ELEMENT [Name] [Inhalt] >
Deklaration von Elementtypen, die jedes beliebige in der
DTD deklarierte Element in beliebiger Reihenfolge und
Anzahl enthalten können:
<!ELEMENT [Name] ANY >
Elemente dieses Elementtyps dürfen auch Text enthalten.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
44
Aufbau einer DTD
Deklaration von Elementen, die neben Text nur eine
eingegrenzte Menge an Elementtypen enthalten dürfen:
<!ELEMENT [Name] (#PCDATA | [Typ a] | .. | [Typ
x])>
Jeder Typ darf nur einmal in der Deklaration erscheinen.
Ansonsten ist die Anzahl der Typen nicht beschränkt.
Ein Element darf von jedem angegebenen Typ beliebig viele
Elemente in beliebiger Reihenfolge enthalten.
Sonderfall: Element, dass nur Text enthält.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
45
Aufbau einer DTD
• Notation einer Reihung (Sequenz):
([Typ 1], [Typ 2] , .. , [Typ n])
Die Elemente der angegeben Typen müssen in der
Reihenfolge stehen, in der sie notiert werden.
Jeder Typ muss so oft vorkommen, wie angegeben.
Typen dürfen mehrfach erscheinen.
Die Reihung darf nicht leer sein.
• [Typ x] kann ein Elementtyp aber auch wieder eine Reihung
oder eine Liste von Alternativen sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
46
Aufbau einer DTD
• Notation einer Liste von Alternativen:
([Alternative a] | [Alternative b] | .. | [Alternative x])
An Stelle der Liste darf eine der Alternative stehen.
Jede Alternative darf nur einmal erscheinen.
Die Liste darf nicht leer sein.
• Eine Alternative kann sowohl ein Element als auch eine
Reihung sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
47
Aufbau einer DTD
• Angaben zur Häufigkeit der Vorkommen:
[Typ] [Häufigkeit]
• bei keiner Angabe muss genau ein Element vorkommen.
• '?' bedeutet, dass ein Element vorkommen darf (optional 0/1)
• '+' bedeutet, dass mindestens ein Element vorkommen
muss. Nach oben ist die Anzahl nicht beschränkt. (1..n)
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
48
Aufbau einer DTD
• Angaben zur Häufigkeit der Vorkommen:
[Typ] [Häufigkeit]
• '*' bedeutet, dass beliebig viele Elemente dieses Typs
vorkommen dürfen, auch kein Element.(0..n)
[Typ] kann auch eine Reihung oder Alternativliste sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
49
Aufbau einer DTD
Deklaration von Elementen, die nur ausgewählte Elemente in
vorgegebener Reihenfolge und Anzahl beinhalten. (Kein Text!):
<!ELEMENT [Name] [Kinder]>
[Kinder] ist dabei entweder eine Reihung, eine Liste von
Alternativen, oder ein Elementtyp.
Trotz der beliebigen Schachtelung von Reihungen und
Alternativlisten kann der Inhalt des Elementes nur aus weiteren
Elementen (und Entities) bestehen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
50
Aufbau einer DTD (Entities)
Es gibt folgende Arten von Entities:
• interne und externe
• analysierte (parsed) und nicht analysierte (unparsed)
• Entities und Parameter-Entities
Deklaration von Entities:
<!ENTITY [%]? [Name] [Inhalt]>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
51
Aufbau einer DTD
Als interne (Parameter-)Entities werden diejenigen
bezeichnet, die ihre Ersetzung direkt in ihrer Definition
angeben. Die Ersetzung kann aus Text und (Parameter-)
Entities-Referenzen bestehen, das Entity darf sich aber nicht
selbst referenzieren.
Bsp.:
<!ENTITY aussage "Er rief: &Ruf;">
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
52
Aufbau einer DTD
Externe (Parameter-)Entities verweisen auf einen Inhalt, der
sich außerhalb der Datei befindet, in der sie definiert werden.
Der Verweis besteht entweder aus einer URI oder einem
öffentlichen Bezeichner (public identifier) und einer URI.
Bsp.:
<!ENTITY ruf SYSTEM "http://../ruf.xml">
<!ENTITY ruf PUBLIC "_//..//..//.."
SYSTEM "http://.../ruf.xml">
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
53
Aufbau einer DTD
Nur externe Entities können nicht analysierte (unparsed)
Entities sein.
Der Inhalt von nicht analysierten Entities wird nicht weiter
ausgewertet, sondern lediglich an die verarbeitende
Anwendung mitsamt der dazugehörigen Notation
weitergegeben.
Jedes Entity, dass nicht ein nicht analysiertes Entity ist, ist ein
analysiertes Entity.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
54
Aufbau einer DTD
In der Definition wird an die Quellenangabe das
Schlüsselwort "NDATA" und ein Name angehängt. Dieser
gibt den Namen der zugehörigen Notation an.
Bsp.:
<!ENTITY bild SYSTEM "http://.."
NDATA [Formatname]>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
55
Aufbau einer DTD
Parameter-Entities können nur innerhalb einer externen DTD
verwendet werden.
Im Gegensatz zu Entities können sie Nichtterminalsymbole
enthalten und zur Strukturierung der DTD eingesetzt werden.
Bei der Deklaration wird dem Namen ein %-Zeichen voran
gestellt.
Mit einer Parameter-Entity-Referenz kann auf das Entity
zugegriffen werden.
%[Name];
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
56
Aufbau einer DTD
Bsp.:
<!ENTITY % farben SYSTEM "../farben.dtd" >
%farben;
(Hiermit wird der gesamte Inhalt der angebenen DTD importiert.)
Bsp.:
<!ENTITY % person "name , vorname">
<!ELEMENT angestellter (%person; , gehalt)>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
57
Aufbau einer DTD
Für jedes XML-Dokument gibt ein Dokument-Entity.
Dieses hat keinen Namen.
Sein Inhalt ist das XML-Dokument selbst. Es dient als
Anfangspunkt bei der Auswertung des Dokumentes.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
58
Aufbau einer DTD (Notationen)
Notationen:
Zu jedem nicht analysierten Entity muss es eine Notation
geben, die den Namen trägt, der bei der Deklaration
angegeben wurde.
Die Notation enthält Information über das Format des EntityInhalts und wird, wenn ein nicht analysiertes Entity
referenziert wird, neben dem Inhalt dieses Entitys übergeben.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
59
Aufbau einer DTD
Deklaration von Notationen:
<!NOTATION [Name] [Quellenangabe] >
Die Quellenangabe kann eine URI und/oder ein öffentlicher
Bezeichner sein, über die man Angaben über das Format
enthält.
Bsp.:
<!NOTATION BMP PUBLIC
"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION
Microsoft Windows bitmap//EN" >
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
60
Aufbau einer DTD (Attributlisten)
Mit Hilfe von Attributlisten können Elementen um
zusätzliche Informationen erweitert werden, die nicht zum
Inhalt zählen sollen.
Jede Attributliste bezieht sich immer nur auf ein Element.
Jedoch kann es mehrere Attributlisten geben, die sich auf ein
und dasselbe Element beziehen. In diesem Fall werden alle
Attributlisten vereinigt.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
61
Aufbau einer DTD
Deklaration von Attributlisten:
<!ATTLIST [Name]
([Attributname] [Attributtyp] [Attribut-Vorgabe])*>
[Name] ist der Name des Elementes, das die Attributliste
enthalten soll.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
62
Aufbau einer DTD
Eine Attributliste besteht aus mehreren Attributen.
Jedes Attribut hat einen Namen und einen Attributtyp.
Es gibt folgende Attributtypen:
• ID
• IDREF und IDREFS
• ENTITY und ENTITIES
• CDATA
• NMTOKEN und NMTOKENS
• NOTATIONS
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
63
Aufbau einer DTD
• ID:
Durch ein Attribut dieses Typs kann ein Element im
gesamten XML-Dokument eindeutig identifiziert werden.
Für jedes Element darf es maximal nur ein Attribut von
diesem Typ geben.
Ein ID-Attribut muss mit "#REQUIRED" oder
"#IMPLIED" gekennzeichnet sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
64
Aufbau einer DTD
• IDREF:
Attribute dieses Typs verweisen auf ein anderes Element.
Der Wert eines IDREF-Attributes muss mit dem Wert des
ID-Attributs eines Elementes im XML-Dokument
übereinstimmen.
• IDREFS:
Es gilt das gleiche wie für IDREF, nur sind mehrere
Angaben von IDs möglich, die durch Leerzeichen von
einander getrennt werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
65
Aufbau einer DTD
• ENTITY:
Attributen dieses Typs kann ein Entity zugeordnet
werden, das in der DTD definiert wurde.
• ENTITIES:
Attributen dieses Typs können mehrere Entities
zugeordnet werden, die durch Leerzeichen von einander
getrennt werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
66
Aufbau einer DTD
• CDATA (character data):
Attribute dieses Typs können normalen Text aufnehmen,
der den XML-Regeln entsprechen muss.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
67
Aufbau einer DTD
• NMTOKEN:
Der Attributtyp entspricht einem String-Datentyp, der aus
Buchstaben, Ziffern,".", ":", "-", oder "_" besteht.
• NMTOKENS:
Der Attributtyp kann mehrere Zeichenketten enthalten, die
jeweils dem Typ NMTOKEN entsprechen müssen, und
die durch Leerzeichen getrennt sein müssen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
68
Aufbau einer DTD
• NOTATION:
Als Werte für diesen Attributtyp sind Namen von
Notationen erlaubt, die in der DTD deklariert sind.
Die zum Wert zugehörige Notation gibt an, wie das
Element zu interpretieren ist, das dieses Attribut
beinhaltet.
Möglichen Werte, die ein Attribut dieses Typs annehmen
kann, müssen aufgezählt werden.
([Notation a] | [Notation b] | .. | [Notation x])
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
69
Aufbau einer DTD
• vorgegebene Alternativen:
Auch für Attribute des Typs NMTOKEN kann die Menge
der zulässigen Werte vorgegeben werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
70
Aufbau einer DTD
• Vorgaben für Attribute:
Für jedes Attribut muss eine Vorgabe vorliegen.
• Mit "#REQUIRED" gekennzeichnet man Attribute, die
bei jedem Element angegeben werden müssen.
•"#IMPLIED" bedeutet, dass das Attribut wahlweise
angegeben werden kann.
• Es kann ein Default-Wert angegeben werden.
• Soll dieser immer angenommen werden, so muss ihm
ein "#FIXED" vorangestellt werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
71
Aufbau einer DTD
Bsp.:
<!ENTITY % jn "(ja | nein)" >
<!ELEMENT Rezept (Zutat+ , Zubereitung) >
<!ATTLIST Rezept
nr
koch
bild
bemerkung
bio
xml:lang
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
ID
IDREFS
ENTITY
CDATA
%jn;
NMTOKEN
#REQUIRED
#IMPLIED
#IMPLIED
#IMPLIED
#FIXED "ja"
"de">
72
XML – Schema (DTD)
XML - Schema
XML - Schema
Man kann auch XML-Dokumenttypen in XML-Schema
definieren.
Vorteile:
• Jedes XML-Schema ist selbst ein XML-Dokument, so
dass im Gegensatz zur DTD keine spezielle Syntax
verwendet wird, die separate Werkzeuge zur Verarbeitung
erfordert. Insbesondere lässt sich jedes XML-Schema
wiederum durch ein XML-Schema validieren, ohne dass
eine weitere Metaebene benötigt wird.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
74
XML - Schema
Vorteile:
• Auch komplexe Integritätsbedingungen sind
formulierbar.
• XML-Schema enthält eine große Zahl vordefinierter
Datentypen und ermöglicht die Definition von eigenen
Datentypen, wodurch eine Typprüfung möglich wird.
• Bei Datentypen werden Vererbung und Substitution
unterstützt.
• Nullwerte sind, wie bei Referenzen und in
Datenbanken üblich, darstellbar.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
75
XML - Schema
Vorteile:
• Das Modularisieren und Wiederverwenden von
XML-Schemata ist möglich.
• Benennungskonflikte können durch Verwendung
von XML-Namensräumen vermieden werden.
• Die gültige Struktur eines XML-Dokumentes lässt
sich leichter erfassen, da XML-Schemata eine
bessere Strukturierung zulassen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
76
XML - Schema
Namensraum für XML-Schema:
http://www.w3.org/2001/XMLSchema
Deklarationen und Definitionen erfolgen innerhalb des
schema-Elements.
<xsd:schema xmlns:xsd =
"http://www.w3.org/2001/XMLSchema">
[Dekl. & Def.]
</xsd:schema>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
77
XML - Schema
Namensraum für weitere wichtige Bestandteile, die im XMLDokument verwendet werden können:
http://www.w3.org/2001/XMLSchema-instance
Gewöhnlich wird dieser Namensraum xsi genannt, der für das
XML-Schema xsd.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
78
XML – Schema (DT-Angabe)
Ein Dokument, gibt das Schema, das es verwendet durch die
Angabe des Namensraums an.
Bsp.:
<?xml version = "1.1" encoding = "UTF-8" ?>
<ms:postfach xmlns:ms = "http://www.post.de/schema">
<ms:brief>
...
</ms:brief>
</ms:postfach>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
79
XML - Schema
Der Namensraum enthält aber keine Angaben über den Ort, an
dem das Schema abgelegt ist.
xsi:schemaLocation =" ([Namensraum] [URI])* "
ordnet Namensräumen die Adresse ihre XML-Schemata zu.
xsi:noNamespaceSchemaLocation =" [URI] "
ordnet dem Default-Namensraum eine URI zu, unter dem das
zugehörige XML-Schema zu finden sein sollte.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
80
XML - Schema
Bsp.:
<?xml version = "1.1" encoding = "UTF-8" ?>
<ms:postfach xmlns:ms = "http://www.post.de/schema"
xmlns:xsi = "http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation = " ms
http://www.post.de/schema/postfach.xsd">
<ms:brief>
...
</ms:brief>
</ms:postfach>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
81
XML - Schema
Jedem Schema sollte ein Namensraum zugeordnet werden.
Dazu dient das Attribut targetNamespace des schema-Elements.
Bsp.:
<xsd:schema
xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
targetNameSpace = "http://www.meinschema.de">
...
</xsd:schema>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
82
XML – Schema (Elemente)
Deklaration von Elementen:
<xsd:element name = "[Name]" type = "[Typ]" />
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
83
XML – Schema (Datentypen)
Man unterscheidet
• komplexe Typen (können Attribute und weitere Elemente
beinhalten)
• einfache Typen (einfache Datentypen)
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
84
XML - Schema
Vordefinierte einfache Datentypen:
• zeichenorientierte (string, ..)
• numerische (byte, integer, decimal, ..)
• logische (boolean)
• zeitorientierte (time, date, gYear, ..)
• XML 1.0 Typen (ID, IDREF, ENTITY, ..)
Diese Datentypen sollten mit dem Namensraum des XMLSchemas gekennzeichnet werden:
type = "xsd:integer"
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
85
XML – Schema (complexType)
Definition von komplexen Typen:
<xsd:complexType name = "[Name]">
[Deklaration von Elementen]
[Deklaration von Attributen]
</ xsd:complexType>
Attribut-Deklarationen finden am Ende einer komplexen TypDefinition statt.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
86
XML – Schema (all)
Die all-Gruppe:
Alle Elemente, die in der all-Gruppe deklariert sind, dürfen
in beliebiger Reihenfolge instanziiert werden, aber
höchstens einmal.
Außerhalb der all-Gruppe darf es keine weiteren ElementDeklarationen geben.
<xsd:all>
[Elementdeklarationen]
</xsd:all>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
87
XML – Schema (sequence)
Sequenzen:
Die Inhalte einer Sequenz müssen in der Reihenfolge
erscheinen, in der sie angegeben werden.
<xsd:sequence>
[Inhalt 1]
...
[Inhalt n]
</xsd:sequence>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
88
XML – Schema (choice)
Auswahllisten:
Von den aufgeführten Inhalten muss ein frei wählbarer
instanziiert werden:
<xsd:choice>
[Inhalt a]
...
[Inhalt x]
</xsd:choice>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
89
XML - Schema
Auswahllisten und Sequenzen können beliebig geschachtelt
werden.
Neben der Anordnung kann auch die Häufigkeit festgelegt
werden, mit der Elemente erscheinen dürfen.
minOccurs gibt an, wie oft ein Element mindestens
erscheinen muss (default 1; Angabe optional).
maxOccurs gibt an, wie oft ein Element höchstens
auftreten darf (default 1; ∞ = unbounded;Angabe optional).
default gibt den Wert an, der dem Element zugeordnet
wird, wenn es vorhanden, aber leer ist.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
90
XML - Schema
Für Elemente gibt es die Möglichkeit einen null-Wert anzuzeigen.
Diese erscheinen im XML-Dokument, können aber entgegen der
Vorgaben keinen Inhalt enthalten, wohl aber Attribute.
Schema:
<xsd:element name ="[Name]" type = "[Typ]"
nillable = "true" />
Dokument:
<ms:[Name] xsi:nil="true"></[Name]>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
91
XML – Schema (Content)
Bei komplexen Definitionen kann man den Inhalt festlegen:
<xsd:simpleContent>
[keine Elemente, aber CDATA]
</xsd:simpleContent>
<xsd:complexContent>
[nur Elemente]
</xsd:complexContent>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
92
XML – Schema (Content)
Das Attribute mixed = "true" gibt an, ob zwischen den
Elementen Text erlaubt ist.
<xsd:complexType mixed = "true"> ...
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
93
XML - Schema
Anonyme Typdefinition:
Bei der Deklaration eines Elementes wird das Attribut type
nicht angegeben. Dafür erfolgt die Definition im
Inhaltsbereich des Elementes:
<xsd:element name="">
<xsd:complexType>
[Element- und Attributdeklarationen]
</xsd:complexType>
</xsd:element>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
94
XML - Schema
Ist bei einem Element kein Typ angegeben, aber folgt auch
keine unmittelbare Typdefinition, so erhält das Attribut type
den Wert xsi:anyType und das Element kann jeden Typ
aufnehmen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
95
XML – Schema (Attribute)
Deklaration von Attributen:
<xsd:attribute name = "[Name]" type = "[einfacher Typ]" />
Attribute können nur einfache Datentypen aufnehmen.
In einem Element darf es keine zwei Attribute mit gleichen
Namen geben.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
96
XML - Schema
Weitere Angaben bei der Deklaration von Attributen:
Das Attribut use gibt an, wie oft das Attribut vorkommen
soll. Erlaubte Werte:
required:
genau einmal
optional:
ein oder keinmal
prohibited:
keinmal
Das Attribut default gibt den Vorgabewert des Attributs an,
den das Attribut erhält, wenn es nicht angegeben wird. use
muss in dem Fall den Wert optional haben.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
97
XML - Schema
Weitere Angaben bei der Deklaration von Attributen:
Das Attribut fixed gibt an welchen Wert das Attribut haben
muss. Wenn das Attribut nicht angegeben wird, erhält es
automatisch diesen Wert.
fixed und default dürfen nicht gleichzeitig vorkommen.
Bsp.:
<xsd:attribute name = "breite" type = "decimal" use =
"optional" default = "2">
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
98
XML – Schema (attributeGroup)
Attributdeklarationen können zu Gruppen zusammen gefasst
werden.
<xsd:attributeGroup name = "[Name]">
[Attribut-Deklarationen oder AttributgruppenReferenzen]
</xsd:attributeGroup>
Einbindung der Attribute erfolgt mit:
<xsd:attributeGroup ref = "[Name]" />
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
99
XML – Schema (group)
Auch Elemente können zu Gruppen zusammengefasst werden:
<xsd:group>
[Element-Deklarationen]
</xsd:group>
Bei den Element-Deklarationen können Sequenzen und
Auswahllisten verwendet werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
100
XML - Schema
Global deklarierte Elemente und Attribute können mit ref
referenziert werden. Sie erhalten dann den gleichen Namen
und Typ.
Bsp.:
<xsd:element ref="[Name]" minOccurs = "0" />
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
101
XML – Schema (globale Dekl.)
Elemente und Attribute, die direkt als Kind von schema
deklariert werden, sind globale Elmente oder Attribute.
Sie dürfen keine Referenzen enthalten, müssen also direkt
einem einfachen oder komplexen Typ zugeordnet werden.
Sie dürfen keine Angaben über die Häufigkeit ihres
Erscheinens enthalten.
Sie alle können direkt instanziiert werden, d.h. Wurzelelemente
sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
102
XML - Schema
Für jedes lokale Attribut oder Element kann vorgeschrieben
werden, ob bei ihrer Verwendung ihr Namensraum angegeben
werden muss oder kann.
form = " [( qualified | unqualified )] "
Der Vorgabewert ist unqualified.
Für die Festlegung eines Vorgabewertes für alle lokalen
Elemente oder Attribute gibt es die Attribute
elementFormDefault und attributeFormDefault des
schema-Elements. Diese Angaben können durch form
überdeckt werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
103
XML - Schema
Bsp.:
<xsd:schema
xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
xmlns:xsi = "http://www.w3.org/2001/XMLSchemainstance"
xsi:targetNameSpace = "http://www.meinschema.de"
elementFormDefault = "qualified">
<xsd:element name="auto">
<xsd:complexType>
<xsd:element name = "batterie"
type="xsd:string" form = "unqualified" />
...
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
104
XML – Schema (Neue Typen)
Eigene Datentypen aus bereits Vorhandenen erstellen durch:
• Einschränkung
• Erweiterung
• Vereinigung
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
105
XML – Schema (Einschränken)
Einfache Datentypen: Typen einschränken
<xsd:simpleType name ="[Name]">
<xsd:restriction base= "[Typ]">
[Einschränkungen]
</xsd:restriction>
</xsd:simpleTyp>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
106
XML - Schema
Einschränkungen haben folgende Form:
<xsd:[Bezeichner] value = "[Wert]" />
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
107
XML - Schema
Es gibt folgende Einschränkungen:
minInclusive: Der Wert des neuen Typs muss
größer-gleich dem angegebenen Wert sein.
maxInclusive: Der Wert des neuen Typs muss
kleiner-gleich dem angegebenen Wert sein.
minExclusive: Der Wert des neuen Typs muss
größer dem angegebenen Wert sein.
maxExclusive: Der Wert des neuen Typs muss
kleiner dem angegebenen Wert sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
108
XML - Schema
totalDigits: Der Wert darf insgesamt maximal so
viele Stellen aufweisen (nur für Dezimaltypen).
fractionDigits:Der Wert darf maximal so viele
Nachkommastellen haben (nur für Dezimaltypen).
pattern:
Der Wert des neuen Typs muss dem
angegebenen regulären Ausdruck entsprechen.
enumeration: Gibt genau einen gültigen Wert an.
Der Wert des neuen Ausdrucks muss gleich einem
aufgezählten Wert sein.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
109
XML - Schema
length:
Der Wert muss so viele Zeichen oder
Elemente aufweisen.
minLength: Der Wert muss aus mindestens so
vielen Zeichen oder Elementen bestehen.
maxLength: Der Wert darf aus maximal so vielen
Zeichen oder Elementen bestehen.
whiteSpace: Bedeutung steht noch nicht fest. Wert
ist festgelegt (fixed) auf collapse. Es gibt auch noch
preserve und replace.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
110
XML - Schema
Bsp.:
<xsd:simpleType name = "nummernschild" >
<xsd:restriction base = "xsd:string" >
<xsd:pattern value="[A-Z]{2}\-[A-Z]{2}\-[0-9]{4}"/>
</xsd:restriction>
</xsd:simpleType>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
111
XML - Schema
Bsp.:
<xsd:simpleType name = "prim10" >
<xsd:restriction base = "xsd:integer" >
<xsd:enumeration value="2"/>
<xsd:enumeration value="3"/>
<xsd:enumeration value="5"/>
<xsd:enumeration value="7"/>
</xsd:restriction>
</xsd:simpleType>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
112
XML – Schema (Erweitern)
Einfache Datentypen: Typen erweitern
Listen von Datentypen definieren:
<xsd:simpleType name = "intlist" >
<xsd:list itemType = "xsd:integer" />
</xsd:simpleType>
Dokument:
<ms:lottozahlen>3 7 27 30 38 42</ms:lottozahlen>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
113
XML – Schema (Vereinen)
Einfache Datentypen: Typen erweitern
Vereinigung von Datentypen definieren:
<xsd:simpleType name = "union" >
<xsd:union memberType = "prim10 boolean"
/>
</xsd:simpleType>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
114
XML – Schema (Einschränken)
Komplexe Datentypen: Typen einschränken
Nur die Häufigkeit, mit der deklarierte Elemente
erscheinen können, kann eingeschränkt werden.
Die Deklarationen aller Elemente müssen wiederholt
werden, die der Attribute nicht.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
115
XML - Schema
Bsp.:
<xsd:complexType name = "rezept">
<xsd:element name = "zutat" type = "zutaten"
maxOccurs = "unbounded" />
<xsd:element name = "zubereitung" type =
"anleitung" />
</xsd:complexType >
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
116
XML - Schema
<xsd:complexType name = "schnellrezept">
<xsd:complexContent>
<xsd:restriction base="rezept">
<xsd:element name = "zutat" type =
"zutaten" maxOccurs = "20" />
<xsd:element name = "zubereitung" type =
"anleitung" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType >
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
117
XML – Schema (Erweitern)
Komplexe Datentypen: Typen erweitern
Neue Deklarationen können hinzugefügt werden.
Bestehende Deklarationen und Hinzugefügte werden als
Sequenz aufgefasst.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
118
XML - Schema
Bsp.:
<xsd:element name = "internationalPrice" >
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base = "xsd:decimal" >
<xsd:attribute name = "currency"
type = "xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
119
XML - Schema
Bsp.:
<xsd:element name = "Mofa">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base = "fahrrad">
<xsd:element name = "motor"
type = "xsd:string" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
120
XML - Schema
Existieren mehrere Typen, die von einander abgeleitet sind,
muss mit dem Attribut xsi:type = "[Name]" in der Instanz des
Elements der Typ angegeben werden.
Typen können durch abstarct = "true" als abstrakt definiert
werden. Dass bedeutet, dass es von ihnen keine Instanzen
geben darf. Nur von den abgeleiteten Typen darf es Instanzen
geben, diese müssen ebenfalls den Typ angeben.
Von abstrakten Typen muss es mindestens eine Ableitung
geben.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
121
XML - Schema
Das Ableiten von Typen kann durch das Attribut final
eingeschränkt werden.
final = "restriction":
eingeschränkt werden.
Der Typ kann nicht
final = "extension":
werden.
Der Typ kann nicht erweitert
final = "#all":
Der Typ kann weder
eingeschränkt noch erweitert werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
122
XML - Schema
Das Attribut block verhindert, dass von einem Typ abgeleitete
Typen an Stelle von ihm benutzt werden können.
block = "restriction": Kein eingschränkter Typ von
ihm kann an seiner Stelle verwendet werden.
block = "extension":
Kein erweiterter Typ von ihm
kann an seiner Stelle verwendet werden.
block = "#all":
Weder ein eingschränkter Typ
noch ein erweiterter Typ von ihm kann an seiner Stelle
verwendet werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
123
XML - Schema
Vorgabewerte für das final Attribut aller Elemente eines
Schemas können durch das optionale Attribut finalDefault des
schema-Elements festgelegt werden.
Vorgabewerte für das block Attribut aller Elemente eines
Schemas können durch das optionale Attribut blockDefault
des schema-Elements festgelegt werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
124
XML - Schema
Das Attribut fixed macht Einschränkungen unveränderlich.
Bsp.:
<xsd:simpleType name = "lottozahlen" >
<xsd:restriction base = "xsd:intlist" >
<xsd:length value="6" fixed = "true" />
</xsd:restriction>
</xsd:simpleType>
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
125
XML - Schema
Inhalte anderer Schemata zum neuen Schema hinzufügen:
<include schemaLocation = "[URI]" />
Beide Schemata, das, das eingebunden wird, und das, das
ergänzt wird, müssen den gleichen Namensraum haben.
Die Elemente des eingebundenen Schemas können nicht
verändert werden.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
126
XML - Schema
Inhalte anderer Schemata ableiten:
<redefine schemaLocation = "[URI]">
[Typen ableiten]
</redefine>
Die abgeleiteten Typen werden dabei überschrieben.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
127
XML - Schema
Definitionen aus einem anderen Namensraum einbinden:
<import namespace = "[Namensraum]"
schemaLocation="[URI]" />
Das Attribut schemaLocation ist optional.
Nur global definierte komplexe Typen können importiert
werden.
Solch ein Ausdruck muss als erster im Schema auftauchen, vor
Deklarationen und Definitionen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
128
XML - Schema
Man kann auch XML-Dokumenttypen in XML-Schema
definieren.
Vorteile:
• Jedes XML-Schema ist selbst ein XML-Dokument, so
dass im Gegensatz zur DTD keine spezielle Syntax
verwendet wird, die separate Werkzeuge zur Verarbeitung
erfordert. Insbesondere lässt sich jedes XML-Schema
wiederum durch ein XML-Schema validieren, ohne dass
eine weitere Metaebene benötigt wird.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
129
XML - Schema
Vorteile:
• Auch komplexe Integritätsbedingungen sind
formulierbar.
• XML-Schema enthält eine große Zahl vordefinierter
Datentypen und ermöglicht die Definition von eigenen
Datentypen, wodurch eine Typprüfung möglich wird.
• Bei Datentypen werden Vererbung und Substitution
unterstützt.
• Nullwerte sind, wie bei Referenzen und in
Datenbanken üblich, darstellbar.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
130
XML - Schema
Vorteile:
• Das Modularisieren und Wiederverwenden von
XML-Schemata ist möglich.
• Benennungskonflikte können durch Verwendung
von XML-Namensräumen vermieden werden.
• Die gültige Struktur eines XML-Dokumentes lässt
sich leichter erfassen, da XML-Schemata eine
bessere Strukturierung zulassen.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
131
Anwendungsbeispiel
Und zum Schluss:
Ein XML-Schema für dieses Proseminar.
Proseminar Auszeichnungssprachen WS04/05
XML - Schema (DTD)
132

XML – Schema (DTD)