Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

21
Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen

Transcript of Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Page 1: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XMLStandardisierungen und

Abfragesprachen

Page 2: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

Inhalt

• Standardisierungen- Dokumenttyp-Definition (DTD)- XML Schema- XML Schema - eigene Datentypen

• Abfragesprachen- XPath- XQL

Page 3: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

Dokumenttyp-Definition (DTD)

• definiert Elemente, Attribute und Entities- Reihenfolge- Anzahl- Werte- Datentypen

• XML Dokument ist gültig wenn es zu seiner DTD konform ist

• Dokumente müssen keine DTD besitzen

Page 4: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

DTD - Beispiel

<!DOCTYPE label[ <!ELEMENT label (name, street, city, state,

country, code)> <!ELEMENT name (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT country (#PCDATA)> <!ELEMENT code? (#PCDATA)>]>

Page 5: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

DTD - Einsatz

<!DOCTYPE label SYSTEM label.dtd">...<label> <name>Max Mustermann</name> <street>Musterstraße 17</street> <city>Musterstadt</city> <country>Musterland</country> <code>0815</code></label>

Page 6: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

DTD - Beispiel (2)

<!ELEMENT car (#PCDATA)><!ATTLIST car type (coupe|limousine|cabrio|kombi) "coupe" name CDATA #REQUIRED color CDATA #IMPLIED>

Page 7: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema

• weitere Möglichkeit, Elemente und Attribute bzw. Voraussetzungen für deren Auftreten zu definieren

• liegt als wohlgeformtes XML-Dokument vor• Attribute werden als Kindknoten der Elemente

dargestellt• Einbindung in XML-Dokument:

<gedicht xmlns=” gedicht.xsd”...>

Page 8: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema - Beispiel <schema name=”gedicht.xsd”> <elementType name=”gedicht”> <sequence minOccur=”1”> <elemntTypeRef name=”titel”/> <elemntTypeRef name=”vers” minOccur=”1”

maxOccur=”*”/> </sequence> <attrDecl name=”autor” required=”false”> <dataTypeRef name=”string”/> </attrDecl></elementType>...</schema>

Page 9: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema (2)

• Elementtypen mit lokalem Gültigkeitsbereich• Elemente erweitern• Import von Teilen eines Schemas bzw. ganzen

Schemen• Export von Teilen eines Schemas bzw. ganzen

Schemen• benutzerdefinierte Datentypen

Page 10: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema - Datentypen

• XML Schema– erkennt welche Attribute welche Datentypen

verlangen– überprüft, ob Daten Einschränkungen des

Datentyps entsprechen (30. Februar...)– ermöglicht Definition neuer Datentypen

Page 11: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema eigene Datentypen

• vorhandene Datentypen:ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, CDATA string, boolean, number, dateTime, binary, uri, integer, decimal, real, date, time, timePeriod

• benutzerdefinierte Datentypen bauen darauf auf

Page 12: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema eigene Datentypen

<datatyp name=”wochentag”> <basetyp name=”string”/> <enumeration> <literal>Montag</literal> <literal>Dienstag</literal> ... <literal>Samstag</literal> <literal>Sonntag</literal> </enumeration></datatyp>

Page 13: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Schema eigene Datentypen

<attrDecl name=”tag” required=”false”> <datatypeRef name=”wochentag”/></attrDecl>

Page 14: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Path Language - XPath

• dient zum Auffinden von Informationen in XML-Dokumenten

• XSL und XPointer bauen auf XPath auf<xsl:apply-templates select=”id(‚smith‘)/info[@type=‘public‘]”>

• XML-Dokument wird als Baum interpretiertTeile des Dokuments (Elemente, Attribute...) entsprechen Knoten des Baums, Wurzel ist das Dokument selbst

Page 15: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XPath - Beispiel

<?xml version=”1.0”?><!--Vorbemerkung--><Wurzel> <!--Parent-Element--> <Parent Name=”Elternknoten”> <Child Name=”Kindknoten”>Kind 1</Child> <Child Name=”Kindknoten”>Kind 2</Child> </Parent></Wurzel>

Page 16: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XPath - Baumstruktur

R WurzelC KommentarE ElementA AttributT Text

Page 17: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XPath - Knotentypen• sieben Typen von Knoten:

- Wurzelkonten (nicht das Wurzelelement)- Elementknoten- Textknoten (Inhalt der Elemente)- Attributknoten (gelten nicht als Kinder des Elementknotens)- Namensraumknoten- Kommentarknoten- Verarbeitungsanweisungsknoten (z.B. <?cursor blinking?>).

Page 18: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XPath Auffinden einzelner Elemente

• erfolgt durch sogenannten Adresspfad• einfachster Adresspfad / wählt Wurzelknoten aus• relativ dazu werden untergeordnete Knoten

ausgewählt, z.B. /Wurzel/Parent • mittels Prädikaten können Elemente mit bestimmten

Attributwerten ermittelt werden/Wurzel/Parent/Child[@Name=”Kindknoten”][2]

Page 19: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XPath - Achsen• Achsen sind Kriterien zum Auffinden von Informationen

- child-Achse (Kind)ermittelt direkt untergeordnete Elemente

- descendent-Achse (Nachfahre)ermittelt untergeordnete Elemente

- parent-Achse(Eltern)ermittelt direkt übergeordnete Elemente

- ancestor-Achse (Vorfahre)ermittelt übergeordnete Elemente

- self-Achse (Eigen-Achse)ermittelt Elemente in Bezug auf aktuellen Knoten

- attribute-Achse (Attribut)ermittelt Attribute von Elementen

Page 20: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XML Query Language - XQL

• entwickelt, bevor sich XPath durchsetzen konnte• Datenmodell und Syntax sind ähnlich• auch XQL filtert Teilmengen von Informationen aus

XML-Dokumenten• XQL interpretiert Dokument ebenfalls als Baum (mit

Dokumentelement als Wurzelknoten)• verschiedene Filter:

Kind, Nachfahre, Attribut, Inhalt (Gleichheit, Ungleichheit...)

Page 21: Oberseminar Datenbanken - Christian Wilke 98I XML Standardisierungen und Abfragesprachen.

Oberseminar Datenbanken - Christian Wilke 98I

XQL (2)

• Unteranfragen - Anfragen auf Ergebnisse von Unteranfragenbuch/kapitel[bild]liefert alle Kapitel aus dem Buch, die ein Bild enthalten

• Methoden erleichtern aussagekräftige Anfragenbuch/kapitel[index() = 0]buch/kapitel/absatz/zeile[text()=”abc”]liefern das erste Kapitel des Buches bzw. die Zeile(n) mit dem Inhalt abc.