210 likes | 270 Views
Learn about XML standardizations, DTD definitions, XML Schema, XPath, XQL, and custom data types in this comprehensive seminar by Christian Wilke. Understand how to create valid XML documents conforming to DTDs. Explore examples and practical applications.
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