XML – Schema (DTD). Proseminar Auszeichnungssprachen WS04/05 XML - Schema (DTD) 2 Übersicht Über...

Post on 05-Apr-2015

159 views 0 download

Transcript of XML – Schema (DTD). Proseminar Auszeichnungssprachen WS04/05 XML - Schema (DTD) 2 Übersicht Über...

XML – Schema (DTD)

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

2

Übersicht

Über XML– Was ist XML?– Welche Ziele werden verfolgt?

XML – Dokumente– Wohlgeformtheit

Namensräume

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

3

Übersicht

XML – Schema– Aufbau einer DTD– XML - Schema

Anwendungsbeispiel:– XML-Schema für dieses Proseminar

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

4

Ü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/05XML - Schema (DTD)

5

Ü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/05XML - Schema (DTD)

6

Ü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.

XML – Schema (DTD)

XML - Dokumente

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

8

XML - Dokumente

Definition: A data object is an XML document if it is well-formed, 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/05XML - Schema (DTD)

9

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/05XML - Schema (DTD)

10

Produktionsregel für ein Dokument:

document ::= prolog element Misc*

- Char* RestrictedChar Char*;

XML - Dokumente

Enthält Informationen über das Dokument

Wurzelelement - enthält Informationen des Dokuments

Kommentare Verarbeitungshinweise

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

11

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/05XML - Schema (DTD)

12

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/05XML - Schema (DTD)

13

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/05XML - Schema (DTD)

14

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/05XML - Schema (DTD)

15

Produktionsregel für ein Dokument:

document ::= prolog element Misc*

- Char* RestrictedChar Char*;

XML - Dokumente

Enthält Informationen über das Dokument

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

16

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/05XML - Schema (DTD)

17

Produktionsregel für ein Dokument:

document ::= prolog element Misc*

- Char* RestrictedChar Char*;

XML - Dokumente

Kommentare Verarbeitungshinweise

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

18

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/05XML - Schema (DTD)

19

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/05XML - Schema (DTD)

20

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/05XML - Schema (DTD)

21

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/05XML - Schema (DTD)

22

Produktionsregel für ein Dokument:

document ::= prolog element Misc*

- Char* RestrictedChar Char*;

XML - Dokumente

Wurzelelement - enthält Informationen des Dokuments

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

23

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/05XML - Schema (DTD)

24

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/05XML - Schema (DTD)

25

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/05XML - Schema (DTD)

26

XML - Dokumente

Bsp.:

<crlf />

Bsp.:

<anfang xml:lang="de" echt = "wahr">

</anfang>

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

27

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/05XML - Schema (DTD)

28

XML - Dokumente

Bsp.:

<?xml version = "1.0" ?><person geschlecht = "m">

<vorname>Hans</vorname><nachname>Meier</nachname>

</person>

XML – Schema (DTD)

Namensräume

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

30

Namensräume

Elemente mit gleichen Namen könnten unterschiedliche Bedeutung haben.

• Ununterscheidbarkeit für verarbeitende Anwendung

• Namenskonflikte

Lösung: Namensräume

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

31

Namensräume

Namensräume werden in dem Element festgelegt, in dem sie gelten sollen.

<element xmlns:[Präfix] = "[IRI]">

</element>

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

32

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/05XML - Schema (DTD)

33

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/05XML - Schema (DTD)

34

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/05XML - Schema (DTD)

35

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/05XML - Schema (DTD)

36

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>

XML – Schema (DTD)

Aufbau einer DTD

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

38

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/05XML - Schema (DTD)

39

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/05XML - Schema (DTD)

40

Aufbau einer DTD

Folgendes lässt sich in einer DTD deklarieren:• Elemente• Attributlisten für Elementen• Entities• Notationen

Eine Dokumententyp-Definition kann intern (in dem XML-Dokument) oder extern (in einer separaten Datei) erfolgen.

Zwischen den einzelnen Deklarationen sind Kommentare und "processing instructions" erlaubt.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

41

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/05XML - Schema (DTD)

42

Aufbau einer DTD

Deklaration von Elementen:

<!ELEMENT [Name] [Inhalt] >

Deklaration von leeren Elementtypen:

<!ELEMENT [Name] EMPTY>

Bsp.:

<!ELEMENT crlf EMPTY>

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

43

Aufbau einer DTD

Deklaration von Elementen:

<!ELEMENT [Name] [Inhalt] >

Deklaration von Elementtypen, die Text enthalten können:

<!ELEMENT [Name] (#PCDATA) >

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

44

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/05XML - Schema (DTD)

45

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/05XML - Schema (DTD)

46

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/05XML - Schema (DTD)

47

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/05XML - Schema (DTD)

48

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/05XML - Schema (DTD)

49

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/05XML - Schema (DTD)

50

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/05XML - Schema (DTD)

51

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/05XML - Schema (DTD)

52

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/05XML - Schema (DTD)

53

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/05XML - Schema (DTD)

54

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/05XML - Schema (DTD)

55

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/05XML - Schema (DTD)

56

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/05XML - Schema (DTD)

57

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/05XML - Schema (DTD)

58

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/05XML - Schema (DTD)

59

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 Entity-Inhalts und wird, wenn ein nicht analysiertes Entity referenziert wird, neben dem Inhalt dieses Entitys übergeben.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

60

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/05XML - Schema (DTD)

61

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/05XML - Schema (DTD)

62

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/05XML - Schema (DTD)

63

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/05XML - Schema (DTD)

64

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/05XML - Schema (DTD)

65

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/05XML - Schema (DTD)

66

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/05XML - Schema (DTD)

67

Aufbau einer DTD• CDATA (character data):

Attribute dieses Typs können normalen Text aufnehmen, der den XML-Regeln entsprechen muss.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

68

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/05XML - Schema (DTD)

69

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/05XML - Schema (DTD)

70

Aufbau einer DTD• vorgegebene Alternativen:

Auch für Attribute des Typs NMTOKEN kann die Menge der zulässigen Werte vorgegeben werden.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

71

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/05XML - Schema (DTD)

72

Aufbau einer DTD

Bsp.:

<!ENTITY % jn "(ja | nein)" >

<!ELEMENT Rezept (Zutat+ , Zubereitung) >

<!ATTLIST Rezeptnr ID #REQUIREDkoch IDREFS #IMPLIEDbild ENTITY #IMPLIEDbemerkung CDATA #IMPLIEDbio %jn; #FIXED "ja"xml:lang NMTOKEN "de">

XML – Schema (DTD)

XML - Schema

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

74

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/05XML - Schema (DTD)

75

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/05XML - Schema (DTD)

76

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/05XML - Schema (DTD)

77

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/05XML - Schema (DTD)

78

XML - Schema

Namensraum für weitere wichtige Bestandteile, die im XML-Dokument 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/05XML - Schema (DTD)

79

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/05XML - Schema (DTD)

80

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/05XML - Schema (DTD)

81

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/XMLSchema-instance"

xsi:schemaLocation = " ms http://www.post.de/schema/postfach.xsd"><ms:brief>

...</ms:brief>

</ms:postfach>

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

82

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/05XML - Schema (DTD)

83

XML – Schema (Elemente)

Deklaration von Elementen:

<xsd:element name = "[Name]" type = "[Typ]" />

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

84

XML – Schema (Datentypen)

Man unterscheidet

• komplexe Typen (können Attribute und weitere Elemente beinhalten)

• einfache Typen (einfache Datentypen)

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

85

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 XML-Schemas gekennzeichnet werden:

type = "xsd:integer"

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

86

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 Typ-Definition statt.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

87

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 Element-Deklarationen geben.

<xsd:all>

[Elementdeklarationen]

</xsd:all>

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

88

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/05XML - Schema (DTD)

89

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/05XML - Schema (DTD)

90

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/05XML - Schema (DTD)

91

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/05XML - Schema (DTD)

92

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/05XML - Schema (DTD)

93

XML – Schema (Content)

Das Attribute mixed = "true" gibt an, ob zwischen den Elementen Text erlaubt ist.

<xsd:complexType mixed = "true"> ...

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

94

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/05XML - Schema (DTD)

95

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/05XML - Schema (DTD)

96

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/05XML - Schema (DTD)

97

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/05XML - Schema (DTD)

98

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/05XML - Schema (DTD)

99

XML – Schema (attributeGroup)

Attributdeklarationen können zu Gruppen zusammen gefasst werden.

<xsd:attributeGroup name = "[Name]">

[Attribut-Deklarationen oder Attributgruppen-Referenzen]

</xsd:attributeGroup>

Einbindung der Attribute erfolgt mit:

<xsd:attributeGroup ref = "[Name]" />

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

100

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/05XML - Schema (DTD)

101

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/05XML - Schema (DTD)

102

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/05XML - Schema (DTD)

103

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/05XML - Schema (DTD)

104

XML - Schema

Bsp.:

<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 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/05XML - Schema (DTD)

105

XML – Schema (Neue Typen)

Eigene Datentypen aus bereits Vorhandenen erstellen durch:

• Einschränkung

• Erweiterung

• Vereinigung

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

106

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/05XML - Schema (DTD)

107

XML - Schema

Einschränkungen haben folgende Form:

<xsd:[Bezeichner] value = "[Wert]" />

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

108

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/05XML - Schema (DTD)

109

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/05XML - Schema (DTD)

110

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/05XML - Schema (DTD)

111

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/05XML - Schema (DTD)

112

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/05XML - Schema (DTD)

113

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/05XML - Schema (DTD)

114

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/05XML - Schema (DTD)

115

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/05XML - Schema (DTD)

116

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/05XML - Schema (DTD)

117

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/05XML - Schema (DTD)

118

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/05XML - Schema (DTD)

119

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/05XML - Schema (DTD)

120

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/05XML - Schema (DTD)

121

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/05XML - Schema (DTD)

122

XML - Schema

Das Ableiten von Typen kann durch das Attribut final eingeschränkt werden.

final = "restriction": Der Typ kann nicht eingeschränkt werden.

final = "extension": Der Typ kann nicht erweitert werden.

final = "#all": Der Typ kann weder eingeschränkt noch erweitert werden.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

123

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/05XML - Schema (DTD)

124

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/05XML - Schema (DTD)

125

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/05XML - Schema (DTD)

126

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/05XML - Schema (DTD)

127

XML - Schema

Inhalte anderer Schemata ableiten:

<redefine schemaLocation = "[URI]">

[Typen ableiten]

</redefine>

Die abgeleiteten Typen werden dabei überschrieben.

Proseminar Auszeichnungssprachen WS04/05XML - Schema (DTD)

128

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/05XML - Schema (DTD)

129

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/05XML - Schema (DTD)

130

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/05XML - Schema (DTD)

131

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/05XML - Schema (DTD)

132

Anwendungsbeispiel

Und zum Schluss:

Ein XML-Schema für dieses Proseminar.