Einführung - Fachbereich Informatik und Sprachen

Werbung
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
Herunterladen