Informationsmanagement mit XML Inhalt

Werbung
Informationsmanagement mit XML
Voraussetzungen
Î
Web-Technologien, HTML, CSS, Java, C++
Lehrform
Î
Î
Î
Vorlesung
Übungen zu den Grundlagen
Workshop
Š zur Anleitung und Betreuung der Praktischen Hausarbeit
Š Hilfestellung zum wissenschaftlichen Arbeiten
Leistungsnachweis im WS0607
Î
Praktische Arbeit und Referat, benotet
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
1
Inhalt
Einführung in XML
Grundlegende Technologien
Î
- Syntax, Namenräume, DTD, XML-Schema
Transformation von XML Dokumenten
Î
XSL, XPath
Übungen am Rechner
Workshop zur Praktischen Arbeit und Referaten
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
2
1
Zeitplanung
Fr. 6.10
13.10.
20.10
27.10.
3.11.
10.11
17.11.
24.11.
1.12.
8.12
15.12.
22.12.
12.1.
19.1.
26.1.
10/8/2006
Einführung
Vorlesung Grundlagen xml
Vorlesung xslt, xpath
Themen für Referate / Praktische Arbeit vergeben
Übung zu Grundlagen XML
Übung zu Grundlagen XML
Workshop
Workshop
Kurzvorstellung „Stand der Hausarbeit“
Workshop
Workshop
Referate
Referate
Referate
Referate
Rückblick, Ausblick, Evaluation
Prof. Dr. S. Keller / Multimedia-Technik
3
Themen für Praktische Arbeiten und
Referate
Analyse und Vergleich der Programmiermodelle
und -Programmierschnittstellen ( DOM. SAX, …. )
Layoutbeschreibung XSL-FO; Cocoon
XML-Datenbanken
Multimedia und XML
XML-Anwendungen
Î
Î
Î
Recherche, Übersicht, Bewertung, Demos
Forschungsprojekte
Industrieprojekte
Semantic Web
Î
10/8/2006
RDF, RDF-Schema, OWL
Prof. Dr. S. Keller / Multimedia-Technik
4
2
Literatur
Rainer Eckstein, Silke Eckstein: XML und Datenmodellierung. dpunkt.verlag, 2004
Meike Klettke, Holger Meyer: XML und Datenbanken. dpunkt.verlag, 2003
Erik T. Ray: Einführung in XML, O'Reilly
Brett McLaughlin: XML und Java, O'Reilly
Steve Holzner: Inside XML , XML, DTDs, XML Schema, CSS, XSL, XSLT, Xlink,
XPointer, XHTML, New Riders
ILIAS-Lernmodul: Learning XML Æ www.ilias.fh-weingarten.de
Diplomarbeit / Lernmodul : Learning XML Æ 141.69.53.96/steur_lms (nur an FH)
Originalunterlagen zu xml-Technologien unterÆ www.w3.org
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
5
Woher kommt XML ?
SGML
SGML
ist Untermenge
Standard Generalized Markup Language)
Metasprache, mit deren Hilfe man verschiedene
Auszeichnungssprachen (engl. markup languages) für
Dokumente definieren kann.
ISO-Standard: ISO 8879: 1986 Information
Processing — Text and Office Systems — Standard
Generalized Markup Language (SGML).
ist eine Anwendung
XML
XML
Extensible Markup Language
1998 Version 1
W3C ( World Wide Web
Consortium )
10/8/2006
Hypertext Markup Language
1993
HTML
HTML
Prof. Dr. S. Keller / Multimedia-Technik
6
3
Konzepte von SGML
Validierung
Dokument
Dokumenttyp
enthält
wird dargestellt
Logische Struktur
+
Inhalt
Austausch
• Plattformunabhängiger
Austausch von Dokumenten
Layout
Version 1
•Trennung von
Struktur/Inhalt vom Layout
Autor
Benutzergruppe
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
7
Konzept
XML
Metasprache
Syntax
wellformed
XMLvalid
Dokument
Struktur
10/8/2006
DokumenttypBeschreibung
Inhalt ( Text )
Layout
Prof. Dr. S. Keller / Multimedia-Technik
8
4
XML Eigenschaften
Markup Language
Auszeichnungsprache
Textdokument mit Auszeichnungselementen
Metasprache
Legt eine Sprachsyntax für eine
Dokumentenbeschreibungssprache fest
Extensible
Auszeichnungen sind erweiterbar
Vom Anwender werden die Sprachelemente frei
definiert. Lesbar von Menschen und Maschine
Plattformunabhängig
Open Standard des W3C
Integritätsprüfung
( Validierung )
Jedes XML-Dokument kann auf seine
Korrektheit überprüft werden ( Parser )
Internationalität
Erstellbar mit einem Texteditor.
Als Zeichensatz wird Unicode ( 16-Bit ) verwendet, der
länderspezifische Sonderzeichen enthält
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
9
Anwendungsgebiete
Dokumente
Plattformunabhängiger Datenaustausch
Datenaustausch zwischen Web-Server
und Client
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
10
5
XML- Familie
10/8/2006
Übersicht
Prof. Dr. S. Keller / Multimedia-Technik
11
XML
Idee
Markierung von logischen
Elementen mit Information als Inhalt
durch Einfügen von markup‘s
XML definiert das Aussehen der Markierungen
Mit XML kann die Struktur getrennt vom Inhalt und dem
Layout beschrieben werden
Vom Anwender können den Markierungen
bedeutungstragende und damit selbsterklärende
Bezeichnungen gegeben werden
Die Logischen Elemente des Dokumentes können
hierarchisch verschachtelt und damit baumartig
strukturiert werden.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
12
6
Konzepte von XML
Instanzen
XMLDokument
Dokumenttyp
XML-Schema
DTD
Layout
Inhalt
Logische Struktur
XSL, CSS
Markierungen
Æ Baumstruktur
10/8/2006
Inhalt des Dokumentes
Æ Text
Darstellung auf einem
Medium wie Papier
oder Bildschirm
Prof. Dr. S. Keller / Multimedia-Technik
13
Logische Struktur eines Dokumentes
Dokumenttyp - Geschäftsbrief
Adresse
Datum
Abschnitt 2
Anrede
Unterschrift
Abschnitt 1
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
14
7
XML
Logische Struktur
Baumstruktur
Brief
Seite 1
Logo
Adresse
Bild
Text
10/8/2006
Datum
Anrede
Seite 2
Abschnitt 1
Abschnitt 2
Unterschrift
Inhalt
Prof. Dr. S. Keller / Multimedia-Technik
XML
15
Beispiel - Dokument
XML-Dokument
Prolog
CSS
XSL
extern
Layout
( Dokumenteigenschaften)
Dokumentypdefinition
(intern/extern)
Daten
( Inhalt )
10/8/2006
extern
DTD
XML-Schema
Logische
Struktur
Referenz
( entity )
XMLDokument
Prof. Dr. S. Keller / Multimedia-Technik
16
8
XML
Korrekte XML-Syntax
Wohlgeformte
Dokumente
( well formed )
Gültige
Dokumente
( valid )
Das Dokument besteht aus einem Prolog
und mindestens einem Element
Es existiert genau ein Root-Element
Alle weiteren Elemente sind Kinder des
Root-Elementes und überlappen sich
nicht
Die Definition von Elementen und
Attributen entsprechen der XMLSpezifikation
Entspricht den Regeln der DTD
oder XML-Schema
Das Dokument ist wohlgeformt
Es existiert eine DTD oder ein XML-Schema
Das Dokument entspricht den Regeln der DTD oder
des XML-Schemas
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
17
Wohlgeformtes Dokument
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Prolog
<FH StudAnz="1" ProfAnz="1">
<NAME>FH-Weingarten</NAME>
Root
<STUDENTEN>
Element
<STUD>
mit Attributen
<NAME>Weber</NAME>
<VORNAME>Frank</VORNAME>
<ADR>Weingarten</ADR>
<TEL>0751 / 456376</TEL>
Child-Element
von STUD
<E-MAIL>[email protected]</E-MAIL>
</STUD>
</STUDENTEN>
<PROFESSOREN>
Inhalt
<PROF>
<NAME>Keller</NAME>
<VORNAME>Dr. Silvia</VORNAME>
<BUERO>T108</BUERO>
<TEL>0751 / 501 9734</TEL>
</PROF>
</PROFESSOREN>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
18
</FH>
9
XML
Wohlgeformte Dokumente
Sollten einen Prolog besitzen
XML-Deklaration
Î
<?xml
Attribute ?>
Š Attribute:
Æ
Æ
Æ
Version:
Version des xml-Standards
Encoding: Unicode-Codierung UTF-8 / UTF-16 / UCS-2
Standalone: Yes Æ Das Dokument ist in einer Datei
gespeichert
No Æ Zum Dokument gehören mehrere
Dateien
Muss genau ein Root-Element besitzen
Î
Î
muss das erste Element in einem Dokument sein
kann weitere (Unter-) Elemente enthalten
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
19
Elemente
Elemente
Î
Î
Ein Element beginnt mit einem Start-Tag
und endet mit einem Ende-Tag
<Elementname>
</Elementname>
Elementnamen sind frei definierbar
Š Sie können Buchstaben, Ziffern und die Sonderzeichen ”-” “ .” “ _”
enthalten
Š Müssen immer mit einem Buchstaben oder _ beginnen
Š dürfen nicht mit xml (or XML or Xml ..) beginnen
Š dürfen keine Leerzeichen und keinen „:“ enthalten
Î
Elementnamen sind case senstive
Š <STUD> und <stud> sind unterschiedliche Elementnamen
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
20
10
XML
Elemente
Ein Element kann
Š Textdaten ( simple Content ) enthalten
<NAME> FH-Weingarten </NAME>
Š weitere Kind-Elemente enthalten ( Æ Baumstrukur )
<PROF>
<NAME>Keller</NAME>
<VORNAME>Dr. Silvia</VORNAME>
<BUERO>T108</BUERO>
<TEL>0751 / 501 9734</TEL>
</PROF>
Š Eine Kombination aus Textinhalt und weiteren Kindelementen enthalten
<Prof> Prof. dr. S. Keller <email> [email protected]
</email> Betriebssysteme </Prof>
Š oder aber ohne Inhalt, d.h. leeres Element sein.
<STUDENTEN />
Elemente müssen korrekt ineinander verschachtelt werden. Sie dürfen sich nicht
überlappen
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
21
Element-Attribute
Ein Element kann zusätzlich noch Attribute besitzen.
Š Attribute sind Name-Werte-Paare und besitzen keine weitere
Unterstruktur
Form:
Attributname= “ Attributwert “
Š Stehen nur im Start-Tag eines Elementes oder in einem
Leeren Tag
Š Attributwerte müssen immer in Anführungszeichen „“ oder ‚‘
stehen und müssen immer angegeben werden.
<FH StudAnz="1" ProfAnz="1">
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
22
11
XML
Kommentare
Syntax ist analog HTML
<!-- This is a comment -->
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
23
Document Type Definition DTD
DTD beschreibt die logische Struktur eines
Dokumenttyps
Wird in SGML definiert
Wird normalerweise extern definiert
Î
Î
Î
Es können mehrere Instanzen ( XML-Dokumente ) eines
Dokumenttyps implementiert werden
Mit Schlüsselwort SYSTEM wird eine private DTD eingebunden
Mit Schlüsselwort PUBLIC wird eine globale DTD eingebunden
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
24
12
XML
Document Type Definition DTD
DTD zu einem Dokument wird nach dem Prolog als Referenz auf
eine externe Datei ( privat ) oder URL ( global ) angegeben
Î
<!DOCTYPE Rootelementname SYSTEM „URL der DTD/dateiname.dtd“>
Î
Beispiel:
<?xml version="1.0" encoding="UTF-8" standalone=" no"?>
<!DOCTYPE FH SYSTEM "personen.dtd " >
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
25
DTD Element-Definitionen
Elemente werden in DTD-Anweisungen beginnend mit
<!Element ....
definiert
Î
<!Element Name Beschreibung >
Š Name: Name des Elementes
Š Beschreibung:
Gibt an, wie ein Element aufgebaut ist.
Æ Möglich ist dabei die Angabe einer in Klammern definierte
Liste mit Unterelementen oder,
Æ falls das Element keine weiteren Unterelemente enthält,
den Datentyp #PCDATA ( string )
Æ
Die Reihenfolge, in der die Elemente definiert werden ist beliebig
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
26
13
XML
Î
DTD Element-Definitionen
( Liste mit Child-Elementen)
Š Die Liste mit Child-Elementen gibt die Reihenfolge an, in der die
Unterelemente im definierten Element vorkommen müssen.
Š Die Child-Elemente werden durch Komma getrennt angegeben
und können mit Optionen genauer spezifiziert werden
Æ Optionen:
+ Das Element muss mindestens einmal oder mehrmals
vorkommen
* Das Element kann keinmal oder mehrmals vorkommen
? Das Element darf keinmal oder genau einmal
vorkommen
Æ Mit Klammern können Gruppen gebildet und diese logisch
verknüpft werden
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
27
DTD Attribut-Definition
Attribute werden in DTD-Anweisungen definiert
Î
<!ATTLIST Elementname Attributname Datentyp Default-Wert >
Š Elementname: Name des Elementes, zu dem das Attribut
gehört
Š Datentyp: Gibt den Wertebereich des Attributs an.
Æ Ein Vorgabewert kann in Anführungszeichen angegeben
werden. Dieser Wert wird im Dokument übernommen, falls
kein anderer Wert angegeben ist.
Æ Wird eine Wertangabe explizit verlangt, muss dies durch
#REQUIRED definiert werden.
Æ #IMPLIED Die Angabe eines Wertes ist nicht zwingend
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
28
14
XML
DTD Entity-Definition
Entities sind Referenzen auf weitere Bestandteile eines
Dokumentes.
Î Damit kann man ein Dokument aus mehreren Dateien
zusammensetzen
Entities kann man auch verwenden um vordefinierte
Daten in ein Dokument einzufügen ( analog einem
Makro )
Interne Referenzen /externe Referenzen
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
29
DTD Entity-Definition
Interne Referenzen
Î <!ENTITY Entityame "Ersetzungstext " >
Š Name: Name der Entity-Refernz
Š Ersetzungstext:
Æ
Gibt den Text an, der bei Auftreten der Referenz im Dokument
mit &Entityname; die Entity ersetzt.
Beispiel:
In DTD: <!ENTITY FHW “ Fachhochschule Ravensburg-Weingarten“>
Im Dokument:
<NAME>&FHW;</NAME>
wird ersetzt durch
<NAME>Fachhochschule Ravensburg-Weingarten</NAME>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
30
15
XML
DTD Entity-Definition
Externe Referenzen
Î
<!ENTITY Entityname SYSTEM "URL/dateiname.xml " >
Š Bei Auftreten der Referenz im Dokument &Entityname wird
die Referenz durch den Inhalt der Datei ersetzt
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
31
DTD Beispiel „personen.dtd“
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT FH (NAME, STUDENTEN, PROFESSOREN, Signatur)>
<!ATTLIST FH StudAnz CDATA #REQUIRED ProfAnz CDATA #REQUIRED >
<!ELEMENT STUDENTEN (STUD*)>
<!ELEMENT PROFESSOREN (PROF+)>
<!ELEMENT STUD (NAME, VORNAME, ADR, TEL, E-MAIL)>
<!ATTLIST STUD MatNr CDATA #IMPLIED >
<!ELEMENT PROF (NAME, VORNAME, BUERO, TEL)>
<!ATTLIST PROF PersNr CDATA #IMPLIED >
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT VORNAME (#PCDATA)>
<!ELEMENT ADR (#PCDATA)>
<!ELEMENT TEL (#PCDATA)>
<!ELEMENT E-MAIL (#PCDATA)>
<!ELEMENT BUERO (#PCDATA)>
<!ENTITY FHW "Fachhochschule Weingarten">
<!ENTITY SIG SYSTEM "signatur.xml">
<!ELEMENT Signatur (Autor, Datum)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
32
16
XML
DTD Beispiel „ signatur.xml“
<?xml version="1.0" encoding="UTF-8"?>
<Signatur>
<Autor>Silvia Keller</Autor>
<Datum>25. 3. 2001 </Datum>
</Signatur>
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
33
Gültige XML-Instanz
<?xml version="1.0" standalone="no"?>
<!DOCTYPE FH SYSTEM "personen.dtd">
<FH StudAnz= " 0" ProfAnz="1">
Wird ersetzt durch Text
<NAME>&FHW;</NAME>
Fachhochschule
<STUDENTEN> </STUDENTEN>
Ravensburg-Weingarten
<PROFESSOREN>
<PROF>
<NAME>Keller</NAME>
<VORNAME>Dr. Silvia</VORNAME>
<BUERO>T108</BUERO>
<TEL>0751 / 501 9734 </TEL>
</PROF>
</PROFESSOREN>
Wird ersetzt durch Inhalt der Datei signatur.xml
&SIG;
</FH>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
34
17
XML- Namensraum
Elemente und Attribute können bei unterschiedlichen
Anwendungen den gleichen Namen besitzen.
Beispiel:
Š Anwendung FH definiert das Element Dozent
Š Anwendung MM-Akademie definiert das Element
Dozent
Š Anwendung BFA verarbeitet xml-Dokumente von FH
und MM-Akademie.
Î
10/8/2006
Es entsteht ein Namenskonflikt
Prof. Dr. S. Keller / Multimedia-Technik
35
XML- Namensraum
Idee
ÎZu jeder Anwendung wird ein eindeutiger Namensraum
definiert.
ÎFür verschiedene Namensräume wird in der Anwendung BFA
verschiedene Kennzeichner ( prefix ) definiert.
Î
Î
Über den zusammengesetzten Bezeichner prefix:Elementname
ist eine eindeutige Unterscheidung möglich.
Beispiel: FH:Dozent, Dornier:Dozent
Ein Namensraum wird in XML durch eine URL definiert.
URL‘s sind eindeutig.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
36
18
XML- Namensraum
Namensräume deklarieren
Î
Schlüsselwort: xmlns
Š xmlns:FH="www.fh-weingarten.de/FHSchema"
PREFIX
Name des Namesraums
Default Namensraum ist ein Namensraum ohne prefix
Î
Schlüsselwort: xmlns
Š xmlns="www.fh-weingarten.de/FHSchema"
Name des Namesraums
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
37
XML- Namensraum
In XML sind mehrere Namensräume vordefiniert
Î
Î
Namensraum xsi
Š URL="www.w3.org/2001/XMLSchema-Instance"
Dieser Namensraum definiert folgende Attribute:
Š xsi:SchemaLocation="URL-Namensraum URL / Ort des Schemas„
Der 1. Wert gibt den Namensraum für das Schema, der 2. Wert den Ort
des Schemas an.
Æ
Beispiel: xsi:SchemaLocation="http://www.fh-weingarten.de/FH
http://www.fh-weingarten.de/FH.xsd"
Š xsi:NoNameSpaceSchemaLocation="URL/ Ort des Schemas„
Mit dem Attribut noNamespaceSchemaLocation wird nur der Ort des
Schemas definiert, ein Namensraum für das Schema wird nicht
angegeben.
Æ
10/8/2006
Beispiel: xsi: NoNameSpaceSchemaLocation="fh.xsd„
Prof. Dr. S. Keller / Multimedia-Technik
38
19
XML- Schema
Vorteil gegenüber DTD
Î XML-Syntax
Î Definition von Datentypen für Elemente möglich
XML-Schema
Typdefinitionen
EinfacheTypen Komplexe Typen
10/8/2006
Strukturdefinitionen
Elemente
Attribute
Prof. Dr. S. Keller / Multimedia-Technik
39
XML-Schema
Schema wird analog einer XML-Datei in XML-Syntax, also als TextDatei angelegt. Die Datei erhält die Endung *****.xsd
Es muss der vordefinierte Namensraum für ein XML-Schema
http://www.w3.org/2001/XMLSchema eingebunden werden.
Î
In diesem Namensraum sind alle Schema-Elemente und –Attribute, die
man verwenden darf definiert.
Das Element <schema> muss genau einmal als Wurzelelement
vorkommen.
Als Unterelemente von Schema können die Elemente <element>,
<attribute>, <simpleType> und <complexType> vorkommen
Î
Mit diesen Elementen wird die Baumstruktur des XML-Dokumentes
definiert.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
40
20
XML-Schema
Attribute dürfen nur simple Typen zugeordnet werden
Elemente können Attribute enthalten und Unterelemente
besitzen, also eine Struktur besitzen und somit den Typ
complexType besitzen.
Über Beschränkungsangaben wie minOccur und maxOccur kann
die Anzahl der Elementvorkommen im XML-Dokument
eingeschränkt werden
Î
10/8/2006
Beispiel:
<element name="STUD" minOccurs="1„ maxOccurs="5000">
Prof. Dr. S. Keller / Multimedia-Technik
41
Einfache Typen ( simple Type )
http://www.w3.org/TR/xmlschema-2/#built-in-datatypes
Î
Î
Î
Î
Î
Î
10/8/2006
string, boolean
decimal,Float, double
duration
dateTime, time , date , gYearMonth , gYear, gMonthDay,
gDay, gMonth
hexBinary
anyURI
Prof. Dr. S. Keller / Multimedia-Technik
42
21
Komplexe Typen ( complex type )
Das Element ist strukturiert und enthält weitere Unterelemente
Möglichkeiten zur Angabe der Unterelemente
Š sequenze
Æ
Gibt eine vorgeschriebene Reihenfolge von Unterlelementen
an.
Alle Unterelemente müssen im xml-Dokument in der
angegeben Reihenfolge vorkommen
Š all
Æ
Alle Unterelemente müssen vorkommen. Die Reihenfolge
spielt aber keine Rolle
Š choise
Æ
10/8/2006
Es müssen nicht alle Unterelemente vorkommen. Auch die
Reihenfolge spielt keine Rolle
Prof. Dr. S. Keller / Multimedia-Technik
43
XML-Schema
Default
Namespace
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/1999/XMLSchema"
targetNamespace="http://www.innovations.de/FH"
xmlns:fh="http://www.innovations.de/FH">
Ziel
Namespace
Prefix
<annotation>
<documentation>
Schemadefinition für das XML-Dokument "FH-Adressen.xml"
</documentation>
</annotation>
Im default Namespace sind die
Elemente und Attribute der
Schemadefinition festgelegt z.B.
schema, tragetNamespace,
annotation ....
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
44
22
XML-Schema
<element name="FH" type="fh:FHType"/>
<element name="NAME“ type="string“>
<complexType name="FHType">
<sequence>
<element ref="NAME"/>
<element name="STUDENTEN" type="fh:StudentenType"/>
<element name="PROFESSOREN„ type="fh:ProfessorenType"/>
</sequence>
<attribute name="StudAnz" type="int"/>
<attribute name="ProfAnz" type="int"/>
</complexType>
10/8/2006
XML-Schema
Prof. Dr. S. Keller / Multimedia-Technik
45
Komplexe Typen
<complexType name="StudentenType">
<element name="STUD" minOccurs="1" maxOccurs="5000">
<complexType>
<sequence>
<element ref="NAME" />
<element name="VORNAME" type="string"/>
<element name="ADR" type=“string"/>
<element name="TEL" type="string"/>
<element name="E-MAIL" type="string„ minOccurs="0"/>
</sequence>
<attribute name="MatNr" use="optional"/>
</complexType>
</element>
</complexType>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
46
23
XML-Schema
Komplexe Typen
In der Definition eines komplexen Typs wurden Unterelemente
deklariert.
Î
Î
Diese Element-Deklarationen haben einen Namen mit einer
bestehenden Typdefinition assoziiert.
Manchmal ist es jedoch vorzuziehen, ein bestehendes Element zu
verwenden, anstatt ein neues zu deklarieren, zum Beispiel:
<element ref=„NAME" />
Î
Î
Diese Deklaration referenziert ein bestehendes Element NAME,
welches an anderer Stelle im Schema deklariert wurde.
Der Wert des ref-Attributs muss ein globales Element
referenzieren, also eines, das unterhalb von schema deklariert
wurde und nicht als Teil der Definition eines komplexen Typs ist
10/8/2006
XML-Schema
Prof. Dr. S. Keller / Multimedia-Technik
47
Einbindung in Dokument
Änderung des Prologs im XML-Dokument
<?xml version="1.0" encoding="UTF-8"?>
<FH StudAnz="2" ProfAnz="1"
xmlns="http://www.fh-ravensburg-weingarten.de/FH"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xsi:schemaLocation="http://www.fh-ravensburg-weingarten.de/FH personen.xsd">
xmlns="http://www.fh-ravensburg-weingarten.de/FH"
Es wird ein Namensraum ohne Prefix deklariert
xmlns:xsi=" http://www.w3.org/1999/XMLSchema-instance "
xsi:schemaLocation="http://www.fh-ravensburg-weingarten.de/FH personen.xsd">
Deklariert den von XML vorgegebenen Namensraum xsi. In diesem Namensraum ist das
Attribut schemaLocation definiert mit dem man den Ort der Schema-Datei angeben
kann. Erster Wert ist der Namensraum des Schemas (URL) zweiter Wert ist der Ort der
Schema Datei
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
48
24
XML
Layoutdefinition
Analog HTML mit Cascading Style Sheets CSS
Î Einfache Syntax, aber keine XML-Syntax
Î eingeschränkte Funktionalität
In XML Syntax mit XSL ( Extensible Stylesheet Language )
Î XML-Syntax
Î Zwei Sprachkomponenten
Š XSLT
Transformation von Objekten in andere Datenformate
Š XSL-FO Formatierung von Objekten
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
49
Layoutdefinition
Cascading Style Sheets ( CSS )werden für die Formatierung
von HTML- Seiten eingesetzt
Š Standard Level 1 1996
Š Standard Level 2 19..
Vorteile / Einsatzbereiche
Î Layout wird getrennt vom Inhalt definiert
Î Gemeinsames Layout für mehrere HTML-Seiten
Î Mehr Gestaltungsmöglichkeiten, als HTML bietet
Nachteil: Ältere Browser unterstützen kein CSS
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
50
25
Transformation von XMLDokumenten
XSLT
Datenaustausch
XML-Anwendung
XMLDokument
Anwendung
XSL-Prozessor
Anderes
Daten-/
Dokumentformat
XSL-Stylesheet
Dokument
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
51
XSLT
XML-Syntax
Transformationssprache zur Transformation von
XML-Dokumenten in andere Formate
Die Transformation übernimmt ein XSLT-Prozessor
Eine XSL-Datei ( Stylesheet ) enthält
Steueranweisungen für den XSLT-Prozessor
Î
10/8/2006
xsl-Anweisungen im XSLT-Dokument
Prof. Dr. S. Keller / Multimedia-Technik
52
26
XSLT
XSLT-Prozessor
Einlesen des XML-Dokumentes und Aufbau eines Eingabebaumes
Î
Dieser Eingabebaum repräsentiert das XML-Dokument
Suche nach Mustern im Eingabebaum.
Î
Î
die zu suchenden Muster werden im Stylesheet ( XSLT-Datei ) definiert
Der Baum / Teilbäume wird rekursiv durchlaufen.
Findet der XSL-Prozessor Übereinstimmungen, so gibt der Prozessor
die im Stylesheet definierte Vorgabe aus und erzeugt einen
Ausgabebaum
Î
Î
Der Ausgabebaum kann eine vollkommen andere Struktur besitzen
Das Ausgabedokument muss nicht zwingend xml-Syntax besitzen
Das resultierende Dokument kann bestehen aus
Î
Î
Î
eigenen Auszeichnungen
Daten aus dem ursprünglichen XML-Baum, die in die Vorlage kopiert
werden
sonstigen Daten
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
53
XSLT
Die Reihenfolge der Daten muss nicht der ursprünglichen
Reihenfolge entsprechen.
Î
Das Ausgabe-Dokument besitzt also nicht zwingend die
gleiche Struktur
Für das Aufsuchen von Teilbäumen im XML-Dokument
verwendet XSLT einen weiteren Standard.
Î
Dieser Standard heißt XPath und ermöglicht die Selektion
von Knoten und Teilbereichen im XML-Objektbaum.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
54
27
XSLT
Zur Transformation stehen in XSL Anweisungen und
Operatoren für die Auswahl von Knoten und die Umwandlung
des Baums zur Verfügung.
Die Regeln für die Transformation werden in XSL-Stylesheets in
XML-Syntax formuliert
Eine Regel wird in „xsl:template“-Elementen beschrieben.
Î
Mit dem Präfix „xsl:“ wird der Namensraum für die XSLStylesheets beschrieben.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
55
XSLT
XML-Dokument
XML-Browser
XSL-Stylesheet
mit integriertem
XSLT-Prozessor
Für die Transformation nach HTML übernimmt ein XML-fähiger
Browser die Aufgabe des XSL-Prozessors
Î
Im Internet Explorer 5.5 von Microsoft können XML-Dokumente mit
Hilfe eines XSL-Stylesheets direkt angezeigt werden.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
56
28
XSLT
Beispiel: Stylesheet
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<!-- hier beginnt eine Regel -->
<!-- ein template ( regel ) ist nicht schachtelbar -->
<xsl:template match="/">
Regel für
<html>
rootElement
<head>
<title>Personenverzeichnis FH-Weingarten</title>
</head>
<body>
<xsl:apply-templates select="FH"/>
</body>
Besuche alle
</html>
Child-Knoten
</xsl:template>
mit Name
<!-- hier endet eine Regel -->
"FH".
10/8/2006
Dieser Text wird
in das Ausgabedokument
übernommen
Prof. Dr. S. Keller / Multimedia-Technik
XSLT
57
Regeln
Regeln im Stylesheet
Î Syntax:
<xsl:template match="Knotennamen=Pfad in XPath">
<!-- hier steht was in der Regel zu tun ist -->
</xsl:template>
Î
Î
10/8/2006
Regeln dürfen nicht geschachtelt werden
Die Reihenfolge der Regeln spielt keine Rolle
Prof. Dr. S. Keller / Multimedia-Technik
58
29
xslt
apply-template
Mit der xsl-Anweisung
<xsl:apply-templates >
</xsl:template>
wird der Baum rekursiv abgearbeitet, indem alle Kindknoten des
aktuellen Knoten besucht werden.
Î
10/8/2006
xslt
Die Anweisung wendet dann alle Regeln im Stylesheet an,
die für die gefundenen Child-Knoten gültig sind.
Prof. Dr. S. Keller / Multimedia-Technik
59
apply-template
Mit dem select-Attribut
<xsl:apply-templates select="Knoten">
</xsl:template>
werden nur die child-Knoten besucht, die in select angegeben
sind.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
60
30
xslt
value-of
Mit der <xsl:value-of > Anweisung werden Werte von Elementen
oder Attributen in den Ausgabebaum (= Ausgabedokument)
übernommen.
Î
das Element oder Attribut, dessen Wert berechnet werden
soll, wird mit dem select-Attribut angegeben
<xsl:value-of select="NAME">
<xsl:value-of select="@StudAnz"
Der Wert eines Elementes ist normalerweise eine Zeichenkette.
Der Wert eines Attributes wird mit @Attributname ausgewählt.
10/8/2006
xslt
Prof. Dr. S. Keller / Multimedia-Technik
61
value-of
Werte von Knoten sind z.B.
Î
Î
Î
Î
Element
Text
Attribute
Comment
10/8/2006
Eine Zeichenkette. Diese
Zeichenkette enthält
hintereinander alle Zeichen, die
zum Element selbst gehören und
allen Zeichenketten seiner
Kindknoten
Der Text des Knoten
Der Attributwert
Der Kommentartext
Prof. Dr. S. Keller / Multimedia-Technik
62
31
xslt
for-each
Anweisungen sollen mehrmals ausgeführt werden ( Æ Schleife )
<xsl:for-each select=„Pfadangabe“>
Mit select wird die Bedingung der Schleife angegeben
<xsl:for-each select=„thema“>
<xsl:value-of select=„@name/>
<br>
</xsl:for-each>
Es wird für jedes <thema>-tag im Dokument der Name ausgegeben
und ein Zeilenumbruch nach dem Name erzeugt
10/8/2006
Xslt
Prof. Dr. S. Keller / Multimedia-Technik
63
Bedingungen
Mit dem Tag
<xsl:if test=„..“>
werden die folgenden Anweisungen nur durchgeführt wenn der
test einen Wahrheitswert true ergibt
Î
Einen else-Zweig gibt es nicht
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
64
32
Xslt
Bedingungen
Mit dem Konstrukt
<xsl:choose >
<xsl:when test=„…“> </xsl:when>
<xsl:otherwise> </xsl:otherwise>
</xsl:choose>
kann ein if-else realisiert werden.
Î
Î
Falls der test in when den Wert true ergibt werden die
Anweisungen unter when ausgeführt und die Anweisungen
unter otherwise übersprungen.
Bei false werden die Anweisungen in otherwise ausgeführt
die unter when nicht.
10/8/2006
XSLT
Prof. Dr. S. Keller / Multimedia-Technik
und
65
Beispiel: Stylesheet
43
<xsl:template match="FH">
<h1 align="center"> <xsl:value-of select="NAME"/> </h1>
<hr/>
<table>
<thead>
<tr>
<th align="left">Personen</th>
<th align="center">Professoren</th>
<th align="center">Studenten</th>
</tr>
</thead>
<tbody>
<tr>
<th align="left">Anzahl</th>
<td align="center"><xsl:value-of select="@ProfAnz"/></td>
<td align="center"><xsl:value-of select="@StudAnz"/></td>
</tr>
</tbody>
</table>
<hr/>
<xsl:apply-templates select="PROFESSOREN"/>
<xsl:apply-templates Prof.
select="STUDENTEN"/>
10/8/2006
Dr. S. Keller / Multimedia-Technik
</xsl:template>
66
33
XSLT
Beispiel: Stylesheet
<xsl:template match="PROFESSOREN"> <h4 align="left">Professoren:</h4>
<xsl:for-each select="PROF">
<table> <thead> <tr>
<th align="left">Name</th> <th align="left">Büro</th> <th align="left">Telefon</th>
</tr> </thead>
<tbody>
<tr>
<td align="left"> <xsl:value-of select="VORNAME"/> <xsl:value-of select="NAME"/> </td>
<td align="left"><xsl:value-of select="BUERO"/></td>
<td align="left"><xsl:value-of select="TEL"/></td>
</tr> </tbody> </table>
</xsl:for-each>
<hr/>
</xsl:template> <xsl:template match="STUDENTEN"> <h4 align="left">Studenten</h4>
<table> <colgroup> <col width="150"/> <col width="200"/> </colgroup>
<thead> <tr> <th align="left">Name</th> <th align="left">e-Mail</th> </tr> </thead>
<tbody>
<xsl:for-each select="STUD">
<tr>
<td align="left">
<xsl:value-of select="VORNAME"/> <xsl:value-of select="NAME"/>
</td>
<td align="left"><xsl:value-of select="EMAIL"/></td>
</tr>
</xsl:for-each>
</tbody> </table> <hr/>
</xsl:template> </xsl:stylesheet>
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
67
XPath
XPath ist eine Syntax, um Teile von XML-Dokumenten
beschreiben zu können
Î beschreibt eine Navigation in einem XML-Dokument
Adressierungsschema, das in mehreren XML-Spezifikationenen
Verwendung findet
Î XSL, XPointer, XML-Query-Language
Wird in XSL benötigt, um Elemente und Attribute zu
beschreiben, die Steueranweisungen enthalten, auf die der
XSLT-Prozessor reagieren soll
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
68
34
XML
XPath
Definiert Ausdrücke, mit denen man Elemente, Attribute oder
ganze Teilbäume adressieren kann
Das XML- Dokument wird in XPath als Baum repräsentiert. Die
Knoten des Baumes haben unterschiedlichen Typ.
Pfadausdrücke sind ähnlich von Pfadangaben in Dateisystemen
z.B. /FH/STUDENTEN/STUD[2]
Î zweiter Student in der Liste der Studenten
10/8/2006
XML
Prof. Dr. S. Keller / Multimedia-Technik
69
XPath - Knotentypen
Wurzelknoten ( root node )
Î
Ausgangspunkt des Dokumentenbaumes. Er ist nicht identisch dem
Wurzel-Element-Knoten ( z.B. FH-Element ) im XML-Dokument.
Der Wurzelknoten besitzt keinen Namen.
Element-Knoten ( element node )
Î
Repräsentiert ein XML-Element im XML-Dokument. Name ist der
Tag-Name.. Der Wert des Knoten entspricht der Verkettung aller
Text-Werte aller Textknoten, die Nachkommen des Elementes sind.
Text-Knoten ( text node )
Î
Wird für Text im XML-Dokument erzeugt, der nicht zu einem
Markup gehört. Textknoten haben keinen Namen. Wert ist die
Zeichenkette.
Attribut-Knoten ( attribute node )
Î
10/8/2006
für jedes Attribut im XML-Dokument wird ein Attributknoten erzeugt.
Name ist der Attributname. Wert ist der Attributwert.
Prof. Dr. S. Keller / Multimedia-Technik
70
35
XML
Xpath - Knotentypen
Namensraum-Knoten ( namespace node )
Î
wird für jedes Namensraum-Präfix erzeugt. Name ist der Präfix.
Wert ist die URL. Elementknoten, zu dem der Präfix gehört ist der
Vaterknoten.
Verarbeitungsanweisungen ( processing instruction node )
Î
Name ist der Bezeichner nach dem <?. Wert ist der folgende Text.
Kommentare ( comment node )
Î
10/8/2006
XML
Besitzt keinen Namen. Wert ist der Kommentartext
Prof. Dr. S. Keller / Multimedia-Technik
71
XPath - Standortpfade
Der aktuelle Knoten im Eingabebaum wird current node
bezeichnet
Davon ausgehend können alle anderen Knoten im Baum
beschrieben werden, durch eine absolute Pfadangabe oder relativ
zum aktuellen Knoten durch Angabe von:
Î
Î
Î
Î
Î
Î
10/8/2006
self
parent node
child node
anchestor ( Vorfahren )
descandant ( Nachfahren )
siblings ( Geschwister )
Prof. Dr. S. Keller / Multimedia-Technik
72
36
XML
XPath
Syntax einer Pfadangabe
Š ein Pfad besteht aus mehreren "location steps", die durch /
getrennt sind.
Î
ein location step besteht aus zwei Teilen
Š axis-identifier :: node-test
Æ
node-Test ist entweder der Name eines Knoten oder aber
die Prüfung eines Knotentyps.
Æ
Die Knotentyp-Prüfung wird durch die Funktionen
text(), comment(), processing-instruction() oder node() für
einen beliebigen Knoten erreicht.
„
10/8/2006
XML
z.B. child::node() bezeichnet alle Kindknoten das aktuellen
Knotens.
Prof. Dr. S. Keller / Multimedia-Technik
73
XPath
Prädikate
Î Schränken die Knotenselektion ein
Î erscheinen in [ ]
Î werden direkt an die node-tests angefügt
z.B. /child::FH/child::STUDENTEN/child::STUD[ position()=1]
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
74
37
XML
XPath
Eine abgekürzte Schreibweise ist möglich
Î
Î
Î
Î
Î
10/8/2006
XML
bei Verwendung von Child:: kann man auf den axis-identifier
verzichten
Š
z.B. /FH/STUDENTEN/STUD[1]
attribute:: wird abgekürzt durch @
self::node() wird abgekürzt durch .
parent::node() durch
..
[position()=3] durch
[3]
Prof. Dr. S. Keller / Multimedia-Technik
75
XPath - Beispiele
//thema[unterthema]
Î Das Prädikat wählt alle <thema>-Tags aus, die als
Unterelement ein tag mit Namen <unterthema> besitzen
Š // bedeutet Regel soll global auf das gesamte Dokument
angewendet werden.
/thema/unterthema
Î Ausdruck wählt ein Element <unterthema> aus, welches ein
Elternelement <thema> besitzt
thema/[unterthema][2]
Î Wählt vom <thema> tag des aktuellen knoten das zweite
Element aus, das das Kindelement <unterthema> besitzt.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
76
38
XML
Xpath – axis-identifier
self
child
descandant
parent
ancestor
following sibling, preceeding sibling
preceeding, following
descandant-or-self
ancestor-or-self
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
77
Beispielanwendung: xml-Tutorial
Projektarbeit von zwei Studenten
Î 1. Teil: Tutorialentwurf
Š Entwurf eines Tutorials zum Thema "xml ++"
Š Das Tutorial soll als xml-Dokument erstellt werden
Š Aufgaebe dazu: Inhalte festlegen
Š Struktur definieren Layout, d.h. grafische Erscheining
festlegen
Î
2. Teil: Implementierung
Š xml-Schema zum Tutorial erstellen
Š tutorial als xml-Dokument erstellen
Š tutorial in html transformieren d.h. xslt-Datei erstellen und
html-Dateien erzeugen.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
78
39
Beispielanwendung: xml-Tutorial
Tutorial
tutorial.xml
Schema
zum Tutorial
tutorial.xsd
xsl-Prozessor
Parser
( Validierung )
index.html
start.html
webBrowser
navigation.html
Style Sheet
tutorial.xsl
tutorial.css
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
79
Beispielanwendung: xml-Tutorial
Das Ergebnis:
Î
Î
10/8/2006
http://erde.fbe.fhweingarten.de/keller/Downloads/mmtech/x
ml-tutorial/index.html
Die xml-Dateien und die Dokumentation
kann man sich runterladen
Prof. Dr. S. Keller / Multimedia-Technik
80
40
XML - Bearbeitungsprozesse
XMLRegeln
TextEditor
Autor
XMLDokument
Parser
( Validierung )
sichtbares
Dokument
Formatierer
Papier
Bildschirm
ASCII-Textdatei,
angereichert mit
TAGS
CSS
XSL
DTD
Dokumenttyp
Layoutbeschreibung
Benutzergruppenspezifische
Vereinbarungen
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
81
XML - Bearbeitungsprozesse
XMLRegeln
XMLAnwendung
XMLDokument
Parser
( Validierung )
XMLAnwendung
DTD
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
82
41
XML - Bearbeitungsprozesse
XSLT
XMLRegeln
XMLAnwendung
XMLDokum.
Parser
( Validierung )
Input
Daten
Anwendung
DTD
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
83
Tools
Browser
Î
Microsoft Internet Explorer ab 5.5
Š Er ermöglich, XML-Dokumente, die sowohl mit CSS als auch mit XSL
formatiert sind, darzustellen.
Š ab Version 6 wird auch eine Gültigkeitsprüfung anhand einer DTD oder eines
XML Schemas wird durchgeführt.
Î
Netscape Browser ab Version 6.0
Editoren
Î XML-Spy von der Firma Altova.
Æ
Æ
10/8/2006
Die grafische Oberfläche dieses Editors ist sehr intuitiv bedienbar und
ermöglicht damit die einfache Erstellung von XML-Dokumenten.
Er unterstützt bereits neue Standardisierungen, speziell im Bereich von
XSL und XML Schema. Als Editierungshilfe führt dieser Editor eine
Befehlsergänzung durch. Das bedeutet, daß bei der Eingabe eines Tags
der Editor eine Liste passender Ergänzungen als Auswahl zur Verfügung
stellt. In dieser Liste sind auch Elemente enthalten, die anhand einer DTD
oder eines XML Schemas definiert wurden.
Prof. Dr. S. Keller / Multimedia-Technik
84
42
XML
Parser
Parser werden auch als XML-Prozessoren bezeichnet.
Î
Î
Î
Î
Ein XML-Parser stellt eine physikalische Verbindung zwischen den XML-Dateien
und der übrigen Software her.
Softwarekomponente, die im Hintergrund einer Applikation arbeitet und ist somit für
den Anwender nicht sichtbar ist
wird durch eine Schnittstelle einer Programmiersprache implementiert.
weitverbreitesten Parser für XML-Dokumente
Š Piccolo
Æ
Open-Sorurce ( nur Sax )
Piccolo.sourceforge.net
Š Apache/SUN
Æ
JAXP, Crimson
Xml.apache.org/crimson/index.html
Š Apache
Æ
Xerces
Xml.apache.org/xerxes2-j/index.html
Š Oracle
Æ
V2
Otn.oracle.com/tech/xml/xdk_java/content.html
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
85
XSLT-Prozessoren
XSLT-Prozessoren werden für die Transformation eines
xml-Dokuments mit xsl-Stylesheets benötigt
Î
Î
wird durch eine Schnittstelle einer Programmiersprache
implementiert
Verfügbare Prozessoren
Š SUN Java 2SE 1.4
Æ
Xalan
xml.apache.org/xalan-j/index.html
Š Saxon
Æ
saxon.sourceforge.net
Š Oracle
Æ
10/8/2006
V2
Otn.oracle.com/tech/xml/xdk_java/content.html
Prof. Dr. S. Keller / Multimedia-Technik
86
43
XML
Programmierschnittstelle (API)
SAX (Simple API for XML)
Î
Aktuelle Version 2.0
DOM (Document Object Model)
Î
Î
Aktuelle Version DOM Level 3
www.w3.org/DOM/
JDOM
Î
Î
Aktuelle Version 1.0
www.jdom.org
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
XML
87
Programmierschnittstelle (API)
DOM (Document Object Model)
Š
Š
Š
Š
Š
Š
Š
vom W3C entwickelter Standard
Xml-Datei wird als Baumstruktur bearbeitet
Plattform- und Programmiersprachen unabhängig.
Baum muss vollständig im Speicher liegen ( Ressourcenintensiv )
Parsen geht sehr langsam
Das xml Dokument kann verändert werden.
Es kann auch ein xml-Dokument erzeugt werden
SAX (Simple API for XML)
Ereignisorientierte Schnittstelle
Xml-Dokument kann nur sequentiell abgearbeitet werden
Parsen geht sehr schnell
Dokument liegt nicht vollständig im Speicher und ist daher
Ressourcensparend.
Š Es kann kein xml-Dokument verändert oder erzeugt werden.
Š
Š
Š
Š
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
88
44
Java und xml
JDOM
Î
Î
Vereinfachtes Java-API für das Einlesen,
Validieren, Bearbeiten und Erzeugung von xmlDokumenten
Project Status
Š JDOM 1.0
Š http://www.jdom.org/
Î
Vergleich DOM mit JDOM
Š http://www.fh-
wedel.de/~si/seminare/ss01/Ausarbeitung/4.domjdom/do
m0.htm
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
89
Java und xml
Java stellt Klassen für SAX und DOM
zu Verfügung
Î
10/8/2006
JAXP (Java API for XML Parsing 1.1.1)
Prof. Dr. S. Keller / Multimedia-Technik
90
45
Java
SAX-Parser
package: javax.xml.parsers
Klassen:
Î
SAXParserFactory
Š Diese Klasse stellt den SAXParser über Fabrikobjekte zu
Verfügung.
Š Ein Factory-Objekt wird über die Klassenmethode newInstance()
erzeugt.
Š Das Factory-Objekt stellt dann die Methode newSaxParser() zu
Verfügung.
Î
SAXParser
Š eigentlicher Parser, der nur über die Factory erzeugt werden kann.
Š Dieser stellt die Methode parse() zu Verfügung, mit dem das
parsen der xml-Datei gestartet wird.
10/8/2006
Java
Prof. Dr. S. Keller / Multimedia-Technik
91
SAX-Parser
Der SAX-Parser geht das xml-Dokument zeilenweise
durch und erzeugt dabei verschiedene Ereignisse,
die an einen Ereignis-Handler geschickt werden.
Ereignisse sind z.B. wenn der Parser den Anfang des
Dokumentes erkennt, das Starttag eines xmlElementes , das Ende-Tag eines Elementes, …
Zum parsen eines xml-Dokumentes wird daher ein
Ereignis-Handler benötigt, der auf die Ereignisse
reagiert. Dieser „DefaultHandler“ muss beim Aufruf
der Methode parse() übergeben werden.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
92
46
Java
SAX-Parser
package:
javax.xml.sax.helpers
Klassen:
Î
DefaultHandler
Š Diese Klasse stellt Methoden für die Ereignisbehandlung
des Sax-Parser zu Verfügung.
Æ
Æ
Æ
Æ
Æ
10/8/2006
startDocument()
startElement()
tags
endDocument()
endElement()
error()
Parser erkennt den Dokumentanfang
Parser erkennt den Anfang eines StarParser erkennt das Dokumentende
Fehler beim parsen erkannt
Prof. Dr. S. Keller / Multimedia-Technik
93
DOM-Modell
DOM ist eine objektorientierte Programmierschnittstelle für
wohlgeformte XML-Dokumente.
Î
Î
DOM definiert die logische Struktur dieser Dokumente
die Möglichkeiten des Zugriffs und der Manipulation dieser
Dokumente.
DOM ist eine Spezifikation des W3C, die plattform- und
sprachneutrale Schnittstellen umfasst.
Î
10/8/2006
Zusätzlich werden Sprachbindungen zur Verfügung gestellt. Im
Falle von Java umfasst diese Sprachbindung einige JavaSchnittstellen, die im Paket org.w3c.dom zusammengefasst sind.
Prof. Dr. S. Keller / Multimedia-Technik
94
47
DOM-Modell
Für die Verarbeitung von XML in eigenen Programmen, reichen
diese Schnittstellen nicht aus.
Î
Vielmehr benötigt man eine konkrete DOM-Implementierung durch
einen Parser
Ein solcher Parser umfasst eine Reihe von Klassen, welche die
Schnittstellen implementieren. Aus der hierarchischen Struktur der
Elemente des XML-Dokuments baut der Parser einen Baum auf.
Î
Î
Î
Dieser Baum ist das eigentliche Dokumentenobjekt und wird im
Speicher der virtuellen Maschine verwaltet.
Die Knoten dieses Baums sind Objekte der erwähnten Klassen.
Möchte man die Informationen des Originaldokuments bearbeiten,
arbeitet man nicht direkt auf der XML-Datei, sondern mit dem
Dokumentenobjekt im Speicher.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
95
DOM-Modell
Da alle DOM-Parser dieselben Schnittstellen implementieren,
macht man sich als Programmierer nicht von einem bestimmten
Parser abhängig und kann diesen im Zweifel mit minimalen
Codeänderungen austauschen
Î
Î
10/8/2006
Es existieren bereits eine Reihe von DOM-Implementierungen für
Java, die öffentlich freigegeben sind.
Der am häufigsten verwendete DOM-Parser wird im Rahmen des
"Apache Xerces Projekts" entwickelt und ist samt Quelltext für die
Öffentlichkeit frei verfügbar.
Prof. Dr. S. Keller / Multimedia-Technik
96
48
Java
DOM-Parser
package:
javax.xml.parsers
Klassen:
Î
DocumentBuilderFactory
Š Diese Klasse stellt den DOM-Parser über Fabrikobjekte zu Verfügung.
Š Ein Factory-Objekt wird über die Klassenmethode newInstance()
erzeugt.
Š Das Factory-Objekt stellt dann die Methode newDocumentBuilder() zu
Verfügung.
Î
DokumentBuilder
Š eigentlicher Parser, der nur über die Factory erzeugt werden kann.
Š Dieser stellt die Methode parse() zu Verfügung, mit dem das parsen
der xml-Datei gestartet wird.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
97
Java und xml
Der DOM-Parser liest das xml-File ein und erstellt
einen DOM-Baum für das komplette Dokument im
Speicher.
Jedes Element, Attribut und als auch Textinhalt eines
Elementes wird im DOM-Baum als Knoten
repräsentiert. Über die JAXP kann man auf jeden
Knoten zugreifen dessen Eigenschaften und Inhalt
abfragen, den Baum umstrukturieren oder auch neue
Knoten erzeugen
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
98
49
Java und xml
Package
Interfaces
Î
org.w3c.dom
Document
Š Repräsentiert den gesamten DOM-Baum
Š Ermöglich den Zugriff auf alle Knoten im Baum.
Š Über die Methode documentElement() erhält man das root-Element
des xml-Dokumentes.
Î
Element
Î
Node
Š Repräsentiert ein Element im xml-Dokument
Š Repräsentiert einen Knoten im xml-Dokument.
Š Mit der Methode int getNodeType() kann der Knotentyp ermittelt
werden.
Î
Nodelist
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
99
Node
nodeName()
nodeValue()
attributes
Attr
name of attribute
value of attribute
null
2
CDATASection
#cdata-section
content of the
CDATA Section
null
4
Comment
#comment
content of the
comment
null
8
Document
#document
null
null
9
DocumentFragment
#document-fragment
null
null
11
DocumentType
document type name
null
null
10
Element
tag name
null
NamedNodeMap
1
Entity
entity name
null
null
6
EntityReference
name of entity
referenced
null
null
5
Notation
notation name
null
null
12
ProcessingInstruction
target
entire content
excluding
the target
null
7
Text
#text
of the text
null
Prof. Dr. S. Kellercontent
/ Multimedia-Technik
3
100
10/8/2006
node
nodeType()
50
Java
JDOM
JDOM nutzt alle Sprachmöglichkeiten von Java und ist dadurch für
den Programmierer einfacher und von der Performanz wesentlich
effizienter als DOM
JDOM versucht Teile des Dokuments erst bei Bedarf zu interpretieren.
Optimale Zusammenarbeit von JDOM mit SAX und DOM
Î
Die Pakete org.jdom.input und org.jdom.output enthalten Klassen,
mit denen es möglich ist, ein JDOM-Dokument aus diversen
Quellen zu erzeugen und an diverse Empfänger auszugeben.
10/8/2006
Java
Prof. Dr. S. Keller / Multimedia-Technik
101
JDOM
Schnittstellen zu SAX/DOM
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
102
51
Java
JDOM
Klassen
SAXBuilder
Î
Î
Erzeugung eines JDOM-Dokuments
Verwendet eine SAX-Implementierung
DOMBuilder
Î
Mit der Methode Document build(DOMDocument), wird ein
existierendes DOM-Dokument in ein JDOM-Dokument umgeformt
Klasse XMLOutputter
Î
ein JDOM-Dokument wird als XML in einen beliebigen Ausgabestrom
ausgegeben .
SAXOutputter
Î
Löst entsprechend der Struktur des Dokuments SAX-Ereignisse aus, die
von einer anderen Komponente interpretiert werden können.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
Java JDOM
103
Klassen
Document
Î
Diese Klasse repräsentiert das gesamte XML-Dokument.
Š Jedes Objekt enthält daher zwingend ein Wurzelelement
Element
Î
Diese Klasse ist repräsentiert ein komplettes XML-Tag
Attribute
Î
Î
10/8/2006
Durch diese Klasse werden die Attribute von Elementen
repräsentiert.
Für das Auslesen der Werte stehen diverse Methoden zur
Verfügung, die die Strings in das benötigte Format transformieren.
Prof. Dr. S. Keller / Multimedia-Technik
104
52
Java JDOM
Klasse Document
Wichtigste Methode
Î
Element getRootElement()
Liefert eine Referenz auf das Wurzelelement des Dokuments.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
Java JDOM
105
Klasse Element
Wichtige Methoden
Î
Î
Î
Î
String getContent()
Š Liefert den Textinhalt des Elements. Ist keiner vorhanden, wird eine leere
Zeichenkette zurückgeliefert.
List getChildren(String name);
Element getChild(String name)
Š Zugriff auf bestimmte Kindelemente eines Elements
List getChildren()
Š Liefert in einer Liste alle Kindknoten
List getAttributes()
Š Liefert in einer Liste alle Attributes eines Elements.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
106
53
Java JDOM
Klasse Attribut
Wichtige Methoden
Î
String getName()
Š Liefert den Namen eines Attributes
Î
String getValue()
Š Liefert den aktuellen Wert des Attributs.
Attribute setValue(String value)
Î
Š Setzt den Wert eines Attributes
Î
int getAttributeType()
Š Liefert den Datentyp eines Attributes
Î
int getIntValue()
Š Liefert den int-Wert eines als int definierten Attributs.
Š Wirft ein DataConversionException falls der Attributwert kein int
ist
….
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
Java
107
DOM-Parser
package:
javax.xml.parsers
Klassen:
Î
DocumentBuilderFactory
Š Diese Klasse stellt den DOM-Parser über Fabrikobjekte zu Verfügung.
Š Ein Factory-Objekt wird über die Klassenmethode newInstance()
erzeugt.
Š Das Factory-Objekt stellt dann die Methode newDocumentBuilder() zu
Verfügung.
Î
DokumentBuilder
Š eigentlicher Parser, der nur über die Factory erzeugt werden kann.
Š Dieser stellt die Methode parse() zu Verfügung, mit dem das parsen
der xml-Datei gestartet wird.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
108
54
XML und Hyperlinks
Mit der XML Linking Language (xlink) können XML-HyperlinkElemente definiert werden
In xlink können sowohl unidirektionale 1:1 Bezüge als auch sehr
komplexe Relationen zwischen unterschiedlichen Ressourcen
definiert werden
Î
So können
Š 1:n Hyperlinks realisiert werden
Š zu jedem Hyperlink Metainformationen angegeben werden
Š Hyperlink-Elemente als eigenständige XML-Element separat
von Anker und Ziel-Ressourcen definiert werden
Ziel eines Hyperlink kann sein ein XML-Dokument, ein Bild eine
Datenbankabfrageergebnis oder ein Programm
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
109
XML und Hyperlinks
Zur Definition von Hyperlinks stellt XML im Namensraum xlink
Elementattribute zu Verfügung, mit Hilfe derer man jedes
beliebige XML-Element zu einem Hyperlink machen kann
Definition eines Hypertext-Elementes in XML
Î Das XML-Element besitzt ein type-Attribut aus dem
Namensraum xlink
Xlink Namensraum
Î http://www.w3.org/1999/xlink
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
110
55
XML und Hyperlinks
type-Attribut
Î
Î
Elemente, die dieses Attribut besitzen sind Hyperlink-Elemente
möglicher Attributwert
Š simple
Es wird ein einfacher 1:1 Hyperlink definiert
Š extended
Komplexer Link , 1:n ist möglich
Š arc
Das XML-Element kennzeichnet eine
Verbindung zwischen zwei Resourcen
das XML-Element ist ein Verweis auf ein
externes Zielobjekt
das XML-Element ist ein lokales Ziel-Objekt
und damit Unterelement des extended LinkElementes
Š locator
Š resource
10/8/2006
XLINK
Prof. Dr. S. Keller / Multimedia-Technik
111
extended Links
( Quelle: http://www.w3.org/TR/xlink )
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
112
56
XML und Hyperlinks
href-Attribut
Wert ist die URL des Zielobjektes, falls
type=locator oder type=simple
title-Attribut
Wert ist ein Text, der die Bedeutung des
Link beschreibt
show-Attributwert
gibt an, wie der Hperlink dargestellt wird
Mögliche Werte: new, replace, embed, none
actuate-Attribut
Wert gibt an wie der Hyperlink abgerufen
wird
Mögliche Werte: onLoad, onRequest, none
10/8/2006
XLINK
Prof. Dr. S. Keller / Multimedia-Technik
113
simple Link Beispiel
<STUD>
<STUDNR>236</STUDNR>
<NAME xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="../kfz/kfz.xml"
xlink:titel="Dokument kfz"
xlink:show="replace"
xlink:actuate="onRequest" >Kunze</NAME>
<VORNAME>Emil</VORNAME>
<MAIL>[email protected]</MAIL>
</STUD>
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
114
57
xlink
simple Link
<PROF>
<PERSNR>123</PERSNR>
<NAME xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="lucky.jpg"
xlink:titel="Bild keller"
xlink:show="new"
xlink:actuate="onLoad" >Keller</NAME>
<TEL>0751 501 9734</TEL>
</PROF>
10/8/2006
xlink
Prof. Dr. S. Keller / Multimedia-Technik
115
extended link Beispiel
Student_1
( local resource )
Professor
( local resource )
Mentoring
Student_n
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
116
58
Xml-Anwendungen
SMIL( Synchronized Multimedia Integration Language )
Î
Î
W3C recommendation für die Beschreibung von multimedialen
Präsentationen. Ermöglicht die Darstellung und Synchronisation von
Medien wie Text, Bild, Audio, Video, and Animationsen.
http://www.w3.org/TR/REC-smil.
MathML (Mathematical Markup Language)
Î
Î
W3C recommendation zur Darstellung von Mathematischen Formeln
http://www.w3.org/TR/REC-MathML.
SVG (Scalable Vector Graphics)
Î
Î
W3C working draft zur Beschreibung von Vektorgrafiken
http://www.w3.org/TR/WD-SVG.
DrawML (Drawing Meta Language)
Î
Î
W3C note that covers 2D images for technical illustrations. It also
addresses the problem of updating and refining such images.
http://www.w3.org/TR/NOTE-drawml.
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
117
eCommerce Standards in XML
Ziel dieser Standards ist XML einzusetzen in den Bereichen
Î
business-to-business (B2B) und business-to-consumer (B2C) commerce.
ICE (Information and Content Exchange)
Î
ICE is a protocol for use by content syndicators and their subscribers. It focuses on
"automating content exchange and reuse, both in traditional publishing contexts and in
business-to-business relationships".
Î
http://www.w3.org/TR/NOTE-ice.
ebXML (Electronic Business with XML)
Î
This standard aims at creating a modular electronic business framework using XML. It
is the product of a joint initiative by the United Nations (UN/CEFACT) and the
Organization for the Advancement of Structured Information Systems (OASIS).
Î
For more information on ebXML, see http://www.ebxml.org/.
Cxml (Commerce XML)
cxml is a RosettaNet (www.rosettanet.org) standard for setting up interactive online
catalogs for different buyers, where the pricing and product offerings are company
specific. Includes mechanisms to handle purchase orders, change orders, status
updates, and shipping notifications.
Î
http://www.cxml.org/
CBL (Common Business Library)
Î
CBL is a library of element and attribute definitions maintained by CommerceNet
(www.commerce.net).
10/8/2006
Prof. Dr. S. Keller / Multimedia-Technik
118
Î
http://www.commerce.net/projects/currentprojects/eco/wg/eCo_Framework_Specificati
ons.html.
Î
59
Herunterladen