XML Extensible Markup Language Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML • Metasprache – Sprache, die Sprachen beschreibt – Sprachen beschreiben Formate zum Datenaustausch Worzyk FH Anhalt Telemedizin WS 03/04 XML - 2 Beispiel Hans Meyer Lohmannstrasse 23 06366 Köthen Dr. Else Müller Bernburger Strasse 56 06366 Köthen Worzyk FH Anhalt Telemedizin WS 03/04 XML - 3 Beispiel <Patient> <Name> <Strasse> <Ort> </Patient> <Arzt> <Name> <Strasse> <Ort> </Arzt> Worzyk FH Anhalt Hans Meyer Lohmannstrasse 23 06366 Köthen </Name> </Strasse> </Ort> Dr. Else Müller Bernburger Strasse 56 06366 Köthen </Name> </Strasse> </Ort> Telemedizin WS 03/04 XML - 4 Aufbau von XML-Dokumenten • Prolog – Deklaration der Dokumenttypen – DTD (Document Type Definition) • Elemente Worzyk FH Anhalt Telemedizin WS 03/04 XML - 5 Document Type Definition DTD • • • • • Beschreibt die Grammatik eines XML – Dokuments Erlaubte Elemente und Attribute Deren Datentyp und Wertebereich Deren Schachtelung Ein XML – Dokument, das den Regeln einer DTD entspricht heißt gültig Worzyk FH Anhalt Telemedizin WS 03/04 XML - 6 Beispiel DTD <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Personen [ <!ELEMENT Personen (Person)> <!ELEMENT Person (#PCDATA)> ]> <Personen> <Person> Hans Meyer Lohmannstrasse 23 06366 Köthen </Person> </Personen> Worzyk FH Anhalt http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten1.xml Telemedizin WS 03/04 XML - 7 Aufbau von XML-Dokumenten • DTD beschreibt die Eigenschaften der Elemente • Elemente werden durch ein Startzeichen <Elementname> eingeleitet und durch ein Endzeichen </Elementname> abgeschlossen. Elemente können Elemente enthalten. • #PCDATA Parsed character data: Das Element besteht aus einer Kette der im definierten Zeichensatz erlaubten Zeichen. Worzyk FH Anhalt Telemedizin WS 03/04 XML - 8 Folge von Elementen Untergeordnete Elemente werden in der Deklaration durch Kommata voneinander getrennt und in Klammern eingeschlossen. Beispiel: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Personen [ <!ELEMENT Personen (Patient,Arzt)> <!ELEMENT Patient (Name,Adresse)> <!ELEMENT Arzt (Name, Adresse)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Adresse (#PCDATA)> ]> http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten2.xml Worzyk FH Anhalt http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten3.xml Telemedizin WS 03/04 XML - 9 Auswahlliste • Auswahl genau eines Elementes: Die wahlweise zur Verfügung stehenden Elemente werden durch | getrennt • Beispiel: <!DOCTYPE Personen [ <!ELEMENT Personen (Patient|Arzt)> <!ELEMENT Patient (Name,Adresse,Diagnose)> <!ELEMENT Arzt (Name, Adresse,Fachgebiet)> Worzyk FH Anhalt http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten4.xml Telemedizin WS 03/04 XML - 10 Mehrmaliges Auftreten * Das Element kann keinmal oder beliebig oft erscheinen + Das Element kann mindestens einmal oder beliebig oft erscheinen ? Das Element kann keinmal oder höchstens einmal erscheinen Worzyk FH Anhalt Telemedizin WS 03/04 XML - 11 Attribute <!ATTLIST element-name attribute-name attribute-type default-value> Attributtypen: CDATA, (en1|en2|..), ID, IDREF, IDREFS, NMTOKEN, NMTOKENS, ENTITY, ENTITIES, NOTATION, xml: Defaultwerte: value #REQUIRED, #IMPLIED, #FIXED value http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten5.xml Worzyk FH Anhalt Datenbanksysteme 2 SS 2004 Seite 13 - 12 Kommentare Kommentare werden von <!– und --> eingeschlossen. Worzyk FH Anhalt Telemedizin WS 03/04 XML - 13 Wohlgeformte XML - Datei • Am Beginn steht die XML-Deklaration, die den Bezug zu XML herstellt • Es gibt mindestens ein Datenelement • Es gibt ein äußerstes Datenelement, das alle anderen Datenelemente enthält • Die erforderlichen Attribute sind angegeben • Alle Werte haben den richtigen Datentyp und Wertebereich • Die Elemente müssen korrekt verschachtelt sein Worzyk FH Anhalt Telemedizin WS 03/04 XML - 14 Gültige XML-Datei • Die Datei ist wohlgeformt • Der Datei ist eine DTD zugeordnet • Der Inhalt der Datei entspricht den Regeln der zugeordneten DTD Worzyk FH Anhalt Telemedizin WS 03/04 XML - 15 Prüfen, ob die XML-Datei gültig ist: Parser <html> <body> <script type="text/javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.validateOnParse="true" xmlDoc.load("Patienten5.xml") document.write("<br />Error Code: ") document.write(xmlDoc.parseError.errorCode) document.write("<br />Error Reason: ") document.write(xmlDoc.parseError.reason) document.write("<br />Error Line: ") document.write(xmlDoc.parseError.line) </script> </body> </html> Worzyk FH Anhalt http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Parser.htm Telemedizin WS 03/04 XML - 16 DTD - Nachteile • Wenige Datentypen • Beschreibung nicht in der XML - Syntax Worzyk FH Anhalt Telemedizin WS 03/04 XML - 17 XML - Schema Definiert: • • • • • • • • Elemente, die in einem Dokument erscheinen können Attribute, die ein Element haben kann die Kindelemente die Reihenfolge der Kindelemente die Anzahl der Kindelemente Pflichtfelder Datentypen von Elementen und Attributen Defaultwerte Worzyk FH Anhalt Telemedizin WS 03/04 XML - 18 XML Schema Vorteil gegenüber DTD • Erweiterbar um zukünftige Anwendungen • in XML geschrieben • Unterstützen Namesspaces – xmlns:xs="http://www.w3.org/2001/XMLSchema“ • unterstützen Datentypen – xs;date, xs;dateTime, xs:string Worzyk FH Anhalt Telemedizin WS 03/04 XML - 19 Anfragen an XML - Dateien • XPath • XQuery Worzyk FH Anhalt Telemedizin WS 03/04 XML - 20 XPath Die Sprache XPath dient zur Adressierung von Teilen eines XML-Dokuments. Sie wurde für die Verwendung sowohl in XSLT als auch in XPointer entworfen. XPath modelliert ein XML-Dokument als einen Baum, der aus Knoten besteht. http://www.informatik.hu-berlin.de/~obecker/obqo/w3c-trans/xpath-de-20010702/ Worzyk FH Anhalt Telemedizin WS 03/04 XML - 21 Beispiel <spielfilme> <film regie="Tom Tykwer" titel="Lola rennt"> <beschreibung> <name typ="w">Lola</name> rennt für <name typ="m">Manni</name>, der 100000 Mark liegengelassen hat und noch 20 Minuten Zeit hat, das Geld auszuliefern. </beschreibung> </film> </spielfilme> Worzyk FH Anhalt Telemedizin WS 03/04 XML - 22 Als Baumstruktur Worzyk FH Anhalt http://de.selfhtml.org/xml/regeln/baumstruktur.htm Telemedizin WS 03/04 XML - 23 Anfrage mit XPath /spielfilme/film/beschreibung/name ////name [@Typ=“w“] /spielfilme/film[regie ="Tom Tykwer" ]* http://www.w3schools.com/xpath/xpath_examples.asp Worzyk FH Anhalt Telemedizin WS 03/04 XML - 24 XQuery • Anfragesprache für XML Daten • benutzt Xpath Audrücke • Analogie zu SQL Worzyk FH Anhalt Telemedizin WS 03/04 XML - 25 Xquery Beispiel <?xml version="1.0" encoding="ISO-8859-1"?> <bib> <book year="1994"> <title>TCP/IP Illustrated</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book> <book year="1992"> <title>Advanced Programming in the Unix environment</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book> <book year="2000"> <title>Data on the Web</title> <author><last>Abiteboul</last><first>Serge</first></author> <author><last>Buneman</last><first>Peter</first></author> <author><last>Suciu</last><first>Dan</first></author> <publisher>Morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> <book year="1999"> <title>The Technology and Content for Digital TV</title> <editor> <last>Gerbarg</last><first>Darcy</first> <affiliation>CITI</affiliation> </editor> <publisher>Kluwer Academic Publishers</publisher> <price>129.95</price> </book> Worzyk FH Anhalt </bib> Telemedizin WS 03/04 XML - 26 Xquery Beispiel Anfrage;: doc("books.xml")/bib/book[price<50] ergibt: <book year="2000"> <title>Data on the Web</title> <author><last>Abiteboul</last><first>Serge</first></author> <author><last>Buneman</last><first>Peter</first></author> <author><last>Suciu</last><first>Dan</first></author> <publisher>Morgan Kaufmann Publishers</publisher> <price>39.95</price> </book> Worzyk FH Anhalt Telemedizin WS 03/04 XML - 27 FLWOR For, Let, Where, Order by, Return for $x in doc("books.xml")/bib/book where $x/price>50 order by $x/title return $x/title ergibt: <title>Advanced Programming in the Unix environment</title> <title>TCP/IP Illustrated</title> <title>The Technology and Content for Digital TV</title> Worzyk FH Anhalt Telemedizin WS 03/04 XML - 28 XML - Dokumente in Datenbanken XML - Dokumente • datenzentriert • dokumentzentriert • semistrukturiert Worzyk FH Anhalt Telemedizin WS 03/04 XML - 29 Arten der Speicherung • Speicherung als Ganzes • Generische Speicherung der Dokumentenstruktur • Abbildung auf Datenbankstrukturen Worzyk FH Anhalt Telemedizin WS 03/04 XML - 30 Speicherung von XML-Dokumenten als Ganzes Original in einem Dateien Datenbank Volltextindex Strukturindex Worzyk FH Anhalt system oder als CLOB in der Telemedizin WS 03/04 XML - 31 Beispiel <hotel url=“http://www.hotel-huebner.de“ id=“h0001“ erstellt-am=“03/02/2003“ Autor=“Hans Müller“> <hotelname>Hotel Hübner</hotelname> <kategorie>4</kategorie> <adresse> <plz>18199</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> </adresse> <telefon>0381 / 5434-0</telefon> <fax> 0381 / 5434-444</fax> <anreisebeschreibung>Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel> Worzyk FH Anhalt Telemedizin WS 03/04 XML - 32 Volltextindex Begriff Verweis hotel *** Warnemünde * Rostock * ort ** Worzyk FH Anhalt <hotel url=“http://www.hotel-huebner.de“ id=“h0001“ erstellt-am=“03/02/2003“ Autor=“Hans Müller“> <hotelname>Hotel Hübner</hotelname> <kategorie>4</kategorie> <adresse> <plz>18199</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> </adresse> <telefon>0381 / 5434-0</telefon> <fax> 0381 / 5434-444</fax> <anreisebeschreibung>Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel> Telemedizin WS 03/04 XML - 33 Volltext- und Strukturindex Begriff Verweis Element Warnemünd e * * Seestrasse * * Rostock * * Element Worzyk FH Anhalt hotel Ver w eis * Ord Vor nung gänger 1 adresse * 2 * ort * 3 * strasse * 3 * anreise * bschreibung 2 * <hotel url=“http://www.hotel-huebner.de“ id=“h0001“ erstellt-am=“03/02/2003“ Autor=“Hans Müller“> <hotelname>Hotel Hübner</hotelname> <kategorie>4</kategorie> <adresse> <plz>18199</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> </adresse> <telefon>0381 / 5434-0</telefon> <fax> 0381 / 5434-444</fax> <anreisebeschreibung>Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel> Telemedizin WS 03/04 XML - 34 Anfragen Volltextindex hotel AND warnemünde (hotel OR pension) AND (rostock OR warnemünde) Volletxt- und Strukturindex hotel.adresse.ort CONTAINS (“warnemünde“) AND hotel.freizeitmoeglichkeit CONTAINS (“swimming pool“) Worzyk FH Anhalt Telemedizin WS 03/04 XML - 35 Eigenschaften Volltextindex Schemabeschreibung nicht erforderlich Dokumentrekonstruktion Dokument bleibt im Original erhalten - Information Retrieval - SQL Ausw ertung der Struktur ist möglich für dokumentzentrierte Anw endungen Anfragen w eitere Besonderheiten Einsatz Worzyk FH Anhalt Telemedizin WS 03/04 XML - 36 Generische Speicherung Alle Informationen aus einem XML-Dokument werden gespeichert – einfache generische Speicherung – Document Object Model Worzyk FH Anhalt Telemedizin WS 03/04 XML - 37 Beispiel DocID Element name h0001 hotel h0001 hotelname h0001 kategorie h0001 adresse h0001 plz h0001 ort ... Worzyk FH Anhalt ID 101 102 103 104 105 106 Vor gänger 101 101 101 104 104 DocID Attribut name h0001 url ID h0001 id ... 102 101 Ord nung 1 1 2 3 1 2 Wert Hotel Hübner 4 18119 Warnemünde Element Wert 101 101 http://www.hotelhuebner.de h0001 Telemedizin WS 03/04 XML - 38 Document Object Model Die Baumstruktur wird auf eine Klassenstruktur abgebildet Speicherung in objektrelationalen oder objektorientierten Datenbanken Worzyk FH Anhalt Telemedizin WS 03/04 XML - 39 Anfragen • XPath • QXuery • XQL – Abfragesprache der Software AG • SQL Worzyk FH Anhalt Telemedizin WS 03/04 XML - 40 Eigenschaften Generische Speicherung Schemabeschreibung nicht erforderlich Dokumentrekonstruktion möglich, aber aufw endig Anfragen - XQuery, XQL - QL, das die Speicherstrukturen berücksichtigt Anfragen und Updates über DOM möglich für datenzentrierte, semistrukturierte und dokumentzentrierte Anw endungen w eitere Besonderheiten Einsatz Worzyk FH Anhalt Telemedizin WS 03/04 XML - 41 Abbildung auf Datenbankstrukturen DTD oder Schema müssen vorhanden sein automatische oder anwenderdefinierte Verfahren Abbildung auf relationale objektrelationale objektorientierte Datenbanken Worzyk FH Anhalt Telemedizin WS 03/04 XML - 42 Abbildung XM L - Information Element Root - Element XM L - Element Sequenz von Elementen Alternative von Elementen Element mit Qualifizierer ? Element mit Qualifizierer + oder * komplex strukturiertes Element Attribut XM L - Attribut #IM PLIED #REQUIRED Defaultw ert Worzyk FH Anhalt Datenbankiformation Relation Attribut einer Relation Attribute einer Relation Attribute einer Relation Attribut, Nullw ert möglich SET oder LIST ROW Attribut einer Relation Nullw ert nicht erlaubt Nullw ert nicht erlaubt Defaultw ert Telemedizin WS 03/04 XML - 43 Beispiel Hotelname url Hotel Hübner id erstellt-am autor http:// h0001 03/02/2003 Hans M üller kate fax anreisebeschreibung gorie 4 0381 Aus Richtung Rostock id plz ort strasse nummer h0001 18119 Warnemünde Seestrass e 12 id telefon h0001 0381 / 5434 - 0 Worzyk FH Anhalt Ordnung 1 Telemedizin WS 03/04 XML - 44 Anfragen • SQL mit – Joins – Aggregatfunktionen – Anfrageopimierung – Update Worzyk FH Anhalt Telemedizin WS 03/04 XML - 45 Eigenschaften Daenbankstrukturen Schemabeschreibung erforderlich Dokumentrekonstrukti nur teilw eise möglich on Anfragen - SQL und XM L w eitere Besonderheiten Einsatz Worzyk FH Anhalt Erhalt der Elementordnung über zusätzliche Attribute für datenzentrierte Anw endungen Telemedizin WS 03/04 XML - 46