View
116
Download
4
Category
Preview:
Citation preview
WorzykFH Anhalt
Telemedizin WS 03/04XML - 1
XML
Extensible Markup Language
WorzykFH Anhalt
Telemedizin WS 03/04XML - 2
XML
• Metasprache– Sprache, die Sprachen beschreibt– Sprachen beschreiben Formate zum
Datenaustausch
WorzykFH Anhalt
Telemedizin WS 03/04XML - 3
Beispiel
Hans MeyerLohmannstrasse 2306366 KöthenDr. Else MüllerBernburger Strasse 5606366 Köthen
WorzykFH Anhalt
Telemedizin WS 03/04XML - 4
Beispiel
Hans MeyerLohmannstrasse 2306366 Köthen
Dr. Else MüllerBernburger Strasse 5606366 Köthen
<Patient> <Name> <Strasse> <Ort></Patient><Arzt> <Name> <Strasse> <Ort></Arzt>
</Name></Strasse></Ort>
</Name></Strasse></Ort>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 5
Aufbau von XML-Dokumenten
• Prolog– Deklaration der Dokumenttypen– DTD (Document Type Definition)
• Elemente
WorzykFH Anhalt
Telemedizin WS 03/04XML - 6
Document Type DefinitionDTD
• 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
WorzykFH Anhalt
Telemedizin WS 03/04XML - 7
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>
http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten1.xml
WorzykFH Anhalt
Telemedizin WS 03/04XML - 8
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.
WorzykFH Anhalt
Telemedizin WS 03/04XML - 9
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
http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten3.xml
WorzykFH Anhalt
Telemedizin WS 03/04XML - 10
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)>http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Patienten4.xml
WorzykFH Anhalt
Telemedizin WS 03/04XML - 11
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
Datenbanksysteme 2 SS 2004Seite 13 - 12
WorzykFH Anhalt
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
WorzykFH Anhalt
Telemedizin WS 03/04XML - 13
Kommentare
Kommentare werden von <!– und -->eingeschlossen.
WorzykFH Anhalt
Telemedizin WS 03/04XML - 14
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
WorzykFH Anhalt
Telemedizin WS 03/04XML - 15
Gültige XML-Datei
• Die Datei ist wohlgeformt• Der Datei ist eine DTD zugeordnet• Der Inhalt der Datei entspricht den
Regeln der zugeordneten DTD
WorzykFH Anhalt
Telemedizin WS 03/04XML - 16
ParserPrüfen, ob die XML-Datei gültig ist:
<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>
http://www.inf.hs-anhalt.de/~Worzyk/Telemedizin/Beispiele/Parser.htm
WorzykFH Anhalt
Telemedizin WS 03/04XML - 17
DTD - Nachteile
• Wenige Datentypen• Beschreibung nicht in der XML -
Syntax
WorzykFH Anhalt
Telemedizin WS 03/04XML - 18
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
WorzykFH Anhalt
Telemedizin WS 03/04XML - 19
XML SchemaVorteil 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
WorzykFH Anhalt
Telemedizin WS 03/04XML - 20
Anfragen an XML - Dateien
• XPath• XQuery
WorzykFH Anhalt
Telemedizin WS 03/04XML - 21
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/
WorzykFH Anhalt
Telemedizin WS 03/04XML - 22
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>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 23
Als Baumstruktur
http://de.selfhtml.org/xml/regeln/baumstruktur.htm
WorzykFH Anhalt
Telemedizin WS 03/04XML - 24
Anfrage mit XPath
/spielfilme/film/beschreibung/name
////name [@Typ=“w“]
/spielfilme/film[regie ="Tom Tykwer" ]*
http://www.w3schools.com/xpath/xpath_examples.asp
WorzykFH Anhalt
Telemedizin WS 03/04XML - 25
XQuery
• Anfragesprache für XML Daten• benutzt Xpath Audrücke• Analogie zu SQL
WorzykFH Anhalt
Telemedizin WS 03/04XML - 26
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>
</bib>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 27
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>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 28
FLWOR
For, Let, Where, Order by, Return
for $x in doc("books.xml")/bib/bookwhere $x/price>50order by $x/titlereturn $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>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 29
XML - Dokumente in Datenbanken
XML - Dokumente• datenzentriert• dokumentzentriert• semistrukturiert
WorzykFH Anhalt
Telemedizin WS 03/04XML - 30
Arten der Speicherung
• Speicherung als Ganzes• Generische Speicherung der
Dokumentenstruktur• Abbildung auf
Datenbankstrukturen
WorzykFH Anhalt
Telemedizin WS 03/04XML - 31
Speicherung von XML-Dokumenten als Ganzes
Original in einem Dateien system oder als CLOB in der Datenbank
VolltextindexStrukturindex
WorzykFH Anhalt
Telemedizin WS 03/04XML - 32
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>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 33
Volltextindex
Begriff Verweis
hotel * * *
Warnemünde *
Rostock *
ort * *
<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>
WorzykFH Anhalt
Telemedizin WS 03/04XML - 34
Volltext- undStrukturindex
Begriff Verweis Element
Warnemünde * *
Seestrasse * *
Rostock * *
<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>
Element Ver weis
Ord nung
Vor gänger
hotel * 1
adresse * 2 *
ort * 3 *
strasse * 3 *
anreise bschreibung
* 2 *
WorzykFH Anhalt
Telemedizin WS 03/04XML - 35
Anfragen
Volltextindexhotel AND warnemünde(hotel OR pension) AND (rostock OR warnemünde)
Volletxt- und Strukturindexhotel.adresse.ort CONTAINS (“warnemünde“) ANDhotel.freizeitmoeglichkeit CONTAINS (“swimming pool“)
WorzykFH Anhalt
Telemedizin WS 03/04XML - 36
EigenschaftenVolltextindex
Schemabeschreibung nicht erforderlich
Dokumentrekonstruktion Dokument bleibt im Original erhalten
Anfragen - Information Retrieval - SQL
weitere Besonderheiten Auswertung der Struktur ist möglich
Einsatz für dokumentzentrierte Anwendungen
WorzykFH Anhalt
Telemedizin WS 03/04XML - 37
Generische Speicherung
Alle Informationen aus einem XML-Dokument werden gespeichert– einfache generische Speicherung– Document Object Model
WorzykFH Anhalt
Telemedizin WS 03/04XML - 38
BeispielDocID Element
nameID Vor
gängerOrdnung
Wert
h0001 hotel 101 1h0001 hotelname 102 101 1 Hotel Hübnerh0001 kategorie 103 101 2 4h0001 adresse 104 101 3h0001 plz 105 104 1 18119h0001 ort 106 104 2 Warnemünde...
DocID Attributname
ID Element Wert
h0001 url 101 101 http://www.hotel-huebner.de
h0001 id 102 101 h0001...
WorzykFH Anhalt
Telemedizin WS 03/04XML - 39
Document Object Model
Die Baumstruktur wird auf eine Klassenstruktur abgebildet
Speicherung in objektrelationalen oder objektorientierten Datenbanken
WorzykFH Anhalt
Telemedizin WS 03/04XML - 40
Anfragen
• XPath• QXuery• XQL
– Abfragesprache der Software AG
• SQL
WorzykFH Anhalt
Telemedizin WS 03/04XML - 41
EigenschaftenGenerische Speicherung
Schemabeschreibung nicht erforderlich
Dokumentrekonstruktion möglich, aber aufwendig
Anfragen - XQuery, XQL - QL, das die Speicherstrukturen
berücksichtigt weitere Besonderheiten Anfragen und Updates über DOM
möglich Einsatz für datenzentrierte,
semistrukturierte und dokumentzentrierte Anwendungen
WorzykFH Anhalt
Telemedizin WS 03/04XML - 42
Abbildung auf Datenbankstrukturen
DTD oder Schema müssen vorhanden seinautomatische oder anwenderdefinierte
VerfahrenAbbildung auf
relationaleobjektrelationaleobjektorientierte
Datenbanken
WorzykFH Anhalt
Telemedizin WS 03/04XML - 43
Abbildung XML - Information Datenbankiformation Element Root - Element Relation XML - Element Attribut einer Relation Sequenz von Elementen Attribute einer Relation Alternative von Elementen Attribute einer Relation Element mit Qualifizierer ? Attribut, Nullwert möglich Element mit Qualifizierer +
oder * SET oder LIST
komplex strukturiertes Element
ROW
Attribut XML - Attribut Attribut einer Relation #IMPLIED Nullwert nicht erlaubt #REQUIRED Nullwert nicht erlaubt Defaultwert Defaultwert
WorzykFH Anhalt
Telemedizin WS 03/04XML - 44
BeispielHotelname url id erstellt-am autor kate
gorie fax anreisebeschreibung
Hotel Hübner
http:// h0001 03/02/2003 Hans Müller
4 0381 Aus Richtung Rostock
id plz ort strasse nummer
h0001 18119 Warnemünde Seestrasse
12
id telefon Ordnung
h0001 0381 / 5434 - 0 1
WorzykFH Anhalt
Telemedizin WS 03/04XML - 45
Anfragen
• SQL mit– Joins– Aggregatfunktionen– Anfrageopimierung– Update
WorzykFH Anhalt
Telemedizin WS 03/04XML - 46
EigenschaftenDaenbankstrukturen
Schemabeschreibung erforderlich
Dokumentrekonstruktion
nur teilweise möglich
Anfragen - SQL und XML
weitere Besonderheiten
Erhalt der Elementordnung über zusätzliche Attribute
Einsatz für datenzentrierte Anwendungen
Recommended