210 likes | 270 Views
XML Standardisierungen und Abfragesprachen. Inhalt. Standardisierungen - Dokumenttyp-Definition (DTD) - XML Schema - XML Schema - eigene Datentypen Abfragesprachen - XPath - XQL. Dokumenttyp-Definition (DTD).
E N D
XMLStandardisierungen undAbfragesprachen Oberseminar Datenbanken - Christian Wilke 98I
Inhalt • Standardisierungen - Dokumenttyp-Definition (DTD) - XML Schema - XML Schema - eigene Datentypen • Abfragesprachen - XPath - XQL 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 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)> ]> 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> 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 > 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”...> 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> 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 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 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 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> Oberseminar Datenbanken - Christian Wilke 98I
XML Schema eigene Datentypen <attrDecl name=”tag” required=”false”> <datatypeRef name=”wochentag”/> </attrDecl> 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 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> Oberseminar Datenbanken - Christian Wilke 98I
XPath - Baumstruktur R Wurzel C Kommentar E Element A Attribut T Text 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?>). 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] 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 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...) 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. Oberseminar Datenbanken - Christian Wilke 98I