Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003."—  Präsentation transkript:

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

2 Überblick Einführung XML Wohlgeformte XML-Dokumente Syntax von XML
Namensräume in XML Datendefinitionssprachen für XML Dokumenttyp-Definition (DTD) XML-Schema XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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-Sprachen dient. XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

4 XML Die Extensible Markup Language (XML) ist eine aus SGML abgeleitete einfachere Markup-Metasprache. XML wurde ursprünglich von der XML Working Group des World 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 XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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. XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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 XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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=" 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 Attributwert Start-Tag End-Tag Element XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

8 Syntax von XML (1) Elemente und Attribute Element mit Inhalt: <elementname attribute="value">content</elementname> Element ohne Inhalt (leeres Element): <elementname attributename="attributevalue"/> bzw. <elementname attributename="attributevalue"></elementname> Zeichen In 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. < bzw. > für die Zeichen ´<´ bzw. ´>´; CDATA-Abschnitt: <![CDATA[ ... ]]> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

9 Syntax von XML (2) Kommentare Ein Kommentar darf überall dort stehen, wo Zeichendaten zulässig sind, also insbesondere nicht in einem Tag eines Elements. Beispiel: <!-- comment --> Processing Instructions Eine Processing Instruction erlaubt es, Anweisungen für die Verarbeitung anzugeben. Beispiel: <?xml version="1.0" encoding="UTF-8"?> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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=" xmlns:isbn="urn:ISBN: "> <bk:title>the title of the book...</bk:title> <isbn:number> </isbn:number> </bk:book> Namespace- Bezeichner Namespace- Präfix ...mit Verwendung von Default Namespaces: <book xmlns=" xmlns:isbn="urn:ISBN: "> <title>the title of the book...</title> <isbn:number> </isbn:number> </book> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

11 XML Datenmodelle Graphen und Bäume Document Object Model (DOM)
XML Information Set XML Query Data Model XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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 Schema für ein XML-Dokument. Das XML-Dokument selbst entspricht dann einer 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. XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

13 Datendefinitionssprachen für XML
Dokumenttyp-Definition (DTD) XML-Schema XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

15 DTD: Deklaration von Elementtypen (1)
Spezifikation des Inhalts des Elements 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 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 XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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! XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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> ]> Name des Elements Deklaration einer Attributliste Name des Attributs 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! XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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 XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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;)*> ... XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

20 Datendefinitionssprachen für XML
Dokumenttyp-Definition (DTD) XML-Schema XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

21 XML-Schema Mit XML-Schema ist es möglich, die Struktur und die Daten eines XML-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=" </xsd:schema> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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 XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

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 Zeichendaten als Inhalt und Elemente mit gemischtem Inhalt definieren. XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

25 XML-Schema: Beispiel (1) Inhaltsmodell Literaturverzeichnis
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd=" <!-- 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> ]> XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

26 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> <!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, DTDs und XML-Schema Stefan Kurz, 25. April 2003

27 Weitere Standards XML Linking XLink XPointer XSL XHTML
XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003

28 Zusammenfassung Erstellung eines wohlgeformten XML-Dokuments
Erstellung eines gültigen XML-Dokuments durch Angabe einer Grammatik mittels DTD bzw. XML-Schema XML, DTDs und XML-Schema Stefan Kurz, 25. April 2003


Herunterladen ppt "Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003."

Ähnliche Präsentationen


Google-Anzeigen