Transcript
Page 1: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 1

XML

Extensible Markup Language

Page 2: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 2

XML

• Metasprache– Sprache, die Sprachen beschreibt– Sprachen beschreiben Formate zum

Datenaustausch

Page 3: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 3

Beispiel

Hans MeyerLohmannstrasse 2306366 KöthenDr. Else MüllerBernburger Strasse 5606366 Köthen

Page 4: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 5: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 5

Aufbau von XML-Dokumenten

• Prolog– Deklaration der Dokumenttypen– DTD (Document Type Definition)

• Elemente

Page 6: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 7: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 8: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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.

Page 9: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 10: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 11: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 12: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 13: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 13

Kommentare

Kommentare werden von <!– und -->eingeschlossen.

Page 14: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 15: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 16: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 17: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 17

DTD - Nachteile

• Wenige Datentypen• Beschreibung nicht in der XML -

Syntax

Page 18: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 19: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 20: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 20

Anfragen an XML - Dateien

• XPath• XQuery

Page 21: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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/

Page 22: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 23: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 23

Als Baumstruktur

http://de.selfhtml.org/xml/regeln/baumstruktur.htm

Page 24: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 25: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 25

XQuery

• Anfragesprache für XML Daten• benutzt Xpath Audrücke• Analogie zu SQL

Page 26: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 27: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 28: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 29: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 29

XML - Dokumente in Datenbanken

XML - Dokumente• datenzentriert• dokumentzentriert• semistrukturiert

Page 30: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 30

Arten der Speicherung

• Speicherung als Ganzes• Generische Speicherung der

Dokumentenstruktur• Abbildung auf

Datenbankstrukturen

Page 31: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 32: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 33: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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>

Page 34: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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 *

Page 35: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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“)

Page 36: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 37: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 37

Generische Speicherung

Alle Informationen aus einem XML-Dokument werden gespeichert– einfache generische Speicherung– Document Object Model

Page 38: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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...

Page 39: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 39

Document Object Model

Die Baumstruktur wird auf eine Klassenstruktur abgebildet

Speicherung in objektrelationalen oder objektorientierten Datenbanken

Page 40: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 40

Anfragen

• XPath• QXuery• XQL

– Abfragesprache der Software AG

• SQL

Page 41: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 42: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 42

Abbildung auf Datenbankstrukturen

DTD oder Schema müssen vorhanden seinautomatische oder anwenderdefinierte

VerfahrenAbbildung auf

relationaleobjektrelationaleobjektorientierte

Datenbanken

Page 43: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 44: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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

Page 45: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

WorzykFH Anhalt

Telemedizin WS 03/04XML - 45

Anfragen

• SQL mit– Joins– Aggregatfunktionen– Anfrageopimierung– Update

Page 46: Worzyk FH Anhalt Telemedizin WS 03/04 XML - 1 XML Extensible Markup Language

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