25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte...
-
Upload
lilo-gayman -
Category
Documents
-
view
215 -
download
3
Transcript of 25. April 2003XML, DTDs und XML-Schema - Stefan Kurz,1 Hauptseminar Web-Services und verteilte...
25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 1
HauptseminarWeb-Services und verteilte Datenbanken
ThemaXML, 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
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.
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
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.
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
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
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. < bzw. > für die Zeichen ´<´ bzw. ´>´;– CDATA-Abschnitt: <![CDATA[ ... ]]>
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"?>
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
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
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.
25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 13
Datendefinitionssprachen für XML
Dokumenttyp-Definition (DTD)
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>
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
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!
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!
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
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;)*> ...
25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 20
Datendefinitionssprachen für XML
Dokumenttyp-Definition (DTD)
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>
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>
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
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.
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> ]>
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>
25. April 2003XML, DTDs und XML-Schema - Stefan Kurz, 27
Weitere Standards
XML Linking– XLink– XPointer
XSL
XHTML
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