25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte...

28
25. April 2003 XML, DTDs und XML-Schema - Stefan Kurz, 1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema

Transcript of 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte...

Page 1: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 1

HauptseminarWeb-Services und verteilte Datenbanken

ThemaXML, DTDs und XML-Schema

Page 2: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 2

Überblick

Einführung

XML– Wohlgeformte XML-Dokumente– Syntax von XML– Namensräume in XML

Datendefinitionssprachen für XML– Dokumenttyp-Definition (DTD)– XML-Schema

Page 3: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 3

Generic Markup

Bei Generic Markup geht es um die Kennzeichnung der Struktur eines Dokuments.

Vorteile des Generic Markup Konzepts:– Die Struktur des Dokuments geht bei der Speicherung nicht verloren.– Die Zuordnung einer bestimmten Darstellung zu einer bestimmten Art von

Textstelle ist anwendungsspezifisch eindeutig möglich.( Unabhängigkeit vom Ausgabemedium)

– Ein Dokument enthält Informationen über den Text, sogenannte Metadaten. Eine Markup-Sprache definiert eine Menge von Regeln, die zur

Markierung von Text eingesetzt werden. Die Standard Generalized Markup Language (SGML) ist eine

Markup-Metasprache, die zur Definition konkreter Markup-Sprachendient.

Page 4: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 4

XML

Die Extensible Markup Language (XML) ist eine aus SGML abgeleitete einfachere Markup-Metasprache.

XML wurde ursprünglich von der XML Working Group desWorld Wide Web Consortium (W3C) entwickelt.

Das für XML aktuelle Dokument des W3C ist die XML 1.0 (Second Edition) Recommendation vom 6. Oktober 2000.

Einsatzmöglichkeiten für XML:– Definition von Beschreibungssprachen für Dokumente– Definition von Datenaustauschformaten– Inhaltliche Markierung von Dokumenten

Designziele von XML:– Unterstützung von Electronic Publishing im Großen– Unterstützung eines globalen Datenaustausches, u.a. im

Electronic Business

Page 5: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 5

XML vs. HTML

Die Hypertext Markup Language (HTML) ist eine standardisierte Beschreibungssprache für WWW-Dokumente. Zudem stellt HTML eine Anwendung von SGML dar.

Da XML dazu verwendet werden kann, Beschreibungssprachen für WWW-Dokumente abzuleiten, wird XML oftmals als „Nachfolgesprache“ von HTML bezeichnet.XML unterscheidet sich von HTML aber in wesentlichen Punkten:– Markierungen können in XML beliebig definiert werden.– Dadurch definierte Strukturen können beliebig tief geschachtelt werden.– Ein XML-Dokument kann eine Beschreibung seiner Grammatik enthalten.– In einem XML-Dokument werden keine Formatierungsanweisungen für das

graphische Layout angegeben.

Page 6: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 6

Wohlgeformte XML-Dokumente (1)

XML ist eine einfache Notation, Baumstrukturen zu beschreiben:– Innerer Knoten: Element– Blattknoten: Attribut oder Text

Ein XML-Dokument, das korrekt geschachtelte Elemente enthält (sodass es auch wirklich einen Baum beschreibt), wird als wohlgeformt bezeichnet.

Beschreibung der Struktur eines (wohlgeformten) XML-Dokuments durch ein sogenanntes Inhaltsmodell (Content Model)

Beispiel: Inhaltsmodell Literaturverzeichnis

Page 7: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 7

Wohlgeformte XML-Dokumente (2)

XML-Dokument als Instanz eines Inhaltsmodells Beispiel: Instanz zum Inhaltsmodell Literaturverzeichnis

<?xml version="1.0" encoding="UTF-8"?> <bibliography> <book isbn="1-55860-622-X"> <author>Serge Abiteboul</author> <author>Peter Buneman</author> <author>Dan Suciu</author> <title>Data on the Web</title> <publisher>Morgan Kaufmann</publisher> <year>2000</year> </book> <book> ... </book> ... </bibliography>

Attribut

Element

Attributwert

End-TagStart-Tag

Page 8: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 8

Syntax von XML (1)

Elemente und AttributeElement mit Inhalt: <elementname attribute="value">content</elementname>Element ohne Inhalt (leeres Element): <elementname attributename="attributevalue"/> bzw. <elementname attributename="attributevalue"></elementname>

ZeichenIn XML muss man grundsätzlich zwischen Zeichendaten (character data) und Markup (Markup-Delimiter ´<´ bzw. ´>´) unterscheiden.Verwendung von Markup als Zeichendaten:– Zeichenreferenz: &nr;– Entity-Referenz: &name; z.B. &lt; bzw. &gt; für die Zeichen ´<´ bzw. ´>´;– CDATA-Abschnitt: <![CDATA[ ... ]]>

Page 9: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 9

Syntax von XML (2)

KommentareEin Kommentar darf überall dort stehen, wo Zeichendaten zulässig sind, also insbesondere nicht in einem Tag eines Elements.Beispiel: <!-- comment -->

Processing InstructionsEine Processing Instruction erlaubt es, Anweisungen für die Verarbeitung anzugeben.Beispiel: <?xml version="1.0" encoding="UTF-8"?>

Page 10: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 10

Namespaces in XML

Namensräume (Namespaces) bieten eine einfache Möglichkeit,Element- und Attributnamen eindeutig zu benennen.

Deklaration eines Namensraums: xmlns:nsprefix="nsname" Beispiel:

<bk:book xmlns:bk="http://my.server.de/bibliography" xmlns:isbn="urn:ISBN:0-395-36341-6"> <bk:title>the title of the book...</bk:title> <isbn:number>0123456789</isbn:number> </bk:book> Namespace-

Bezeichner ...mit Verwendung von Default Namespaces:

<book xmlns="http://my.server.de/bibliography" xmlns:isbn="urn:ISBN:0-395-36341-6"> <title>the title of the book...</title> <isbn:number>0123456789</isbn:number> </book>

Namespace-Präfix

Page 11: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 11

XML Datenmodelle

Graphen und Bäume

Document Object Model (DOM)

XML Information Set

XML Query Data Model

Page 12: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 12

Datendefinitionssprachen für XML

Durch eine Data Definition Language (DDL) wird die Grammatik für ein XML-Dokument festgelegt. Man spricht auch von einem Schemafür ein XML-Dokument. Das XML-Dokument selbst entspricht danneiner Instanz dieses Schemas.

Mit einer DDL kann u.a. festgelegt werden:– Elementtypen und deren Inhalt– Attribute und Attributwerte

Genügt ein XML-Dokument der durch ein Schema vorgegebenen Struktur, so wird es als gültig bezeichnet.

Page 13: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 13

Datendefinitionssprachen für XML

Dokumenttyp-Definition (DTD)

XML-Schema

Page 14: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 14

Dokumenttyp-Definition (DTD)

Eine Dokumenttyp-Definition (DTD) besteht aus:– Deklaration von Elementtypen– Deklaration von Attributlisten

Die DTD ist Bestandteil der sogenannten Dokumenttyp-Deklaration und kann innerhalb (interne DTD) oder außerhalb (externe DTD)eines XML-Dokuments vorliegen.

Beispiel: Angabe einer externen DTD <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bibliography SYSTEM "bibliography.dtd"> <bibliography> ... </bibliography>

Page 15: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 15

DTD: Deklaration von Elementtypen (1)

Beispiel: DTD zum Inhaltsmodell Literaturverzeichnis <!DOCTYPE bibliography [ <!ELEMENT bibliography (book)*> <!ELEMENT book (author+, title, publisher, year)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ATTLIST book isbn CDATA #REQUIRED> ]> Deklaration von

Elementtypen

Name desElements

Spezifikation desInhalts des Elements

Spezifikation des Inhalts eines Elements:– Operatoren:

´,´ (Sequenz-Operator), ´|´ (Oder-Operator),´?´ (optional), ´+´ (mindestens einmal) und ´*´ (beliebig oft)

– Inhaltsmodelle:• Elemente mit anderen Elementen (d.h. Kindknoten) als Inhalt

Page 16: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 16

DTD: Deklaration von Elementtypen (2)

• Elemente mit nur Zeichendaten als Inhalt <!ELEMENT author (#PCDATA)>

• Elemente mit leerem Inhalt <!ELEMENT br EMPTY>

• Elemente mit gemischtem Inhalt Deklaration: <!ELEMENT p (#PCDATA | i)*> <!ELEMENT i (#PCDATA)> Verwendung: <p>Absatz mit teilweise <i>kursivem Schriftstil</i>.</p>zudem noch möglich: gemischter Inhalt mit jedem beliebigen Element,das in der DTD deklariert ist <!ELEMENT container ANY>

– Bemerkung: Die durch die DTD vorgegeben Reihenfolge der Elemente ist geordnet und muss daher eingehalten werden!

Page 17: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 17

DTD: Deklaration von Attributlisten

Beispiel: DTD zum Inhaltsmodell Literaturverzeichnis <!DOCTYPE bibliography [ <!ELEMENT bibliography (book)*> <!ELEMENT book (author+, title, publisher, year)> ... <!ATTLIST book isbn CDATA #REQUIRED> ]>

Deklaration einerAttributliste

Name desElements

Name desAttributs

Erweiterung des Beispiels: <!ATTLIST book isbn CDATA #REQUIRED price CDATA #IMPLIED listed CDATA #FIXED "yes" available (yes, no) "yes">

Bemerkung: Im Gegensatz zur Reihenfolge der Elemente ist die Reihenfolge der Attribute ungeordnet!

Page 18: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 18

DTD: ID und IDREF bzw. IDREFS (Beispiel)

Schema: <!DOCTYPE family [ <!ELEMENT family (person)*> <!ELEMENT person (name)> <!ATTLIST person id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED> <!ELEMENT name (#PCDATA)> ]>

Instanz: <family> <person id="jack" children="john jane"> <name>Jack Smith</name> </person> <person id="john" mother="mary" father="jack"> <name>John Smith</name> </person> ... </family>

Referenz

Page 19: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 19

DTD: Parameter Entity References

Eine Parameter Entity Reference stellt eine Abkürzung für eine beliebige Zeichenkette innerhalb einer DTD dar.

Beispiel: ... <!ENTITY % block "paragraph | listing | figure"> <!ELEMENT book (chapter)*> <!ELEMENT chapter (heading, (%block;)*> ...

Page 20: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 20

Datendefinitionssprachen für XML

Dokumenttyp-Definition (DTD)

XML-Schema

Page 21: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 21

XML-Schema

Mit XML-Schema ist es möglich, die Struktur und die Daten einesXML-Dokuments zu beschreiben.

In DTD wird lediglich die Beschreibung der Struktur unterstützt. In XML-Schema hingegen sind vordefinierte Datentypen verfügbar

und es können auch eigene Datentypen definiert werden. Die Definition eines XML-Schema wird in XML-Syntax angegeben. Beispiel:

<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> ... </xsd:schema>

Page 22: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 22

XML-Schema: Datentypen (1)

Einfache Typen (simple types) <xsd:simpleType name="name"> <xsd:restriction base="type"/> </xsd:simpleType>

– Basistypen: xsd:string, xsd:decimal, xsd:date,...– Einschränkungen einfacher Typen: xsd:minLength, xsd:maxLength,

xsd:pattern, xsd:enumeration,...– Ableitungen einfacher Typen: xsd:union, xsd:list,...

Beispiel: <xsd:simpleType name="passwordType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="5"/> </xsd:restriction> </xsd:simpleType>

Page 23: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 23

XML-Schema: Datentypen (2)

Komplexe Typen (complex types) <xsd:complexType name="..."> <xsd:sequence> <xsd:element name="..." type="..."/> ... </xsd:sequence> <xsd:attribute name="..." type="..."/> ... </xsd:complexType>

– Kompositionen: xsd:sequence, xsd:all, xsd:choice– Gruppierungen: xsd:group bzw. xsd:attributeGroup

Page 24: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 24

XML-Schema: Elemente und Attribute

Elementtypen ohne Kindelemente und Attribute werden wie folgt definiert: <xsd:element name="name" type="type"/> <xsd:attribute name="name" type="type"/>

Elementtypen mit Kindelementen werden mit Hilfe komplexer Typen definiert: <xsd:element name="name"> <xsd:complexType> ... </xsd:complexType> </xsd:element>

Angabe von Häufigkeiten: minOccurs, maxOccurs Bemerkung: Wie bei DTDs kann man in XML-Schema Elemente ohne

Inhalt (leere Elemente), Elemente mit ausschließlich Zeichendatenals Inhalt und Elemente mit gemischtem Inhalt definieren.

Page 25: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 25

XML-Schema: Beispiel (1) Inhaltsmodell Literaturverzeichnis

<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!-- definition of simple type elements --><xsd:element name="author" type="xsd:string"/><xsd:element name="title" type="xsd:string"/><xsd:element name="publisher" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><!-- definition of attributes --><xsd:attribute name="isbn" type="xsd:string" use="required"/>

<!DOCTYPE bibliography [ <!ELEMENT bibliography (book)*> <!ELEMENT book (author+, title, publisher, year)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ATTLIST book isbn CDATA #REQUIRED> ]>

Page 26: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 26

<!DOCTYPE bibliography [ <!ELEMENT bibliography (book)*> <!ELEMENT book (author+, title, publisher, year)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ATTLIST book isbn CDATA #REQUIRED> ]>

XML-Schema: Beispiel (2)

<!-- definition of a complex type element --><xsd:element name="bibliography"> <xsd:complexType> <xsd:sequence> <xsd:element name="book" type="bookType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType></xsd:element><xsd:complexType name="bookType"> <xsd:sequence> <xsd:element ref="author" minOccurs="1" maxOccurs="unbounded"/> <xsd:element ref="title"/> <xsd:element ref="publisher"/> <xsd:element ref="year/"> </xsd:sequence> <xsd:attribute ref="isbn"/></xsd:complexType>

</xsd:schema>

Page 27: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 27

Weitere Standards

XML Linking– XLink– XPointer

XSL

XHTML

Page 28: 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema.

25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 28

Zusammenfassung

Erstellung eines wohlgeformten XML-Dokuments

Erstellung eines gültigen XML-Dokumentsdurch Angabe einer Grammatik mittels DTD bzw. XML-Schema