But if I bought a radio and found that it accessed only certain stations and not others, I'd be...
-
Upload
hagan-gilgen -
Category
Documents
-
view
105 -
download
1
Transcript of But if I bought a radio and found that it accessed only certain stations and not others, I'd be...
But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen radios, one for each set of stations.It makes no more sense to have a half dozen computers or different operating systems or browsers for Web access.
Sir Timothy J. Berners-Lee (Begründer des WWW)
XML Grundlagen
2
XMLXMLGrundlagen SGML
Entwicklung:
● 1967 generic coding
● 1968 “editorial structure tags”
● 1969 GML
● 1986 SGML als ISO-Standard 8879
Funktion:
● Formale Typisierung von Dokumenten (Buch: Kapitel, Abschnitte, Unterabschnitte, …)
● Charakterisiert Dokumenttyp anhand „Document Type Definitionen“ (DTD)
● Metasprache zum beschreiben von Markup Languages. (kann eigene Tags definieren und deren strukturelle Beziehung zueinander festlegen)
● Reibungsloser Ablauf erforderte hohen Initialaufwand (Programme, Schulungen)
3
XMLXMLGrundlagen SGML
Beispiel:● Für das folgende Beispiel soll der Dokumenttyp "Notiz" dienen. Eine Notiz soll einen
Titel haben, aus mindestens einem Absatz bestehen und im Text sollen wichtige Stellen markierbar sein:
<!-- Element Min Inhalt --><!ELEMENT notiz - - (titel, absatz+) ><!ELEMENT titel - - (#PCDATA) ><!ELEMENT absatz - - (#PCDATA | wichtig)* ><!ELEMENT wichtig - - (#PCDATA) >
● Angenommen diese DTD ist als Datei /usr/home/sm/dtd/notiz.dtd abgespeichert. Eine Instanz des Dokumenttyps würde so aussehen:
<!DOCTYPE notiz SYSTEM "/usr/home/sm/dtd/notiz.dtd" []><notiz>
<titel>Termine</titel> <absatz>
Dienstag, 9 Uhr:<wichtig>Zahnarzttermin</wichtig>
</absatz> <absatz>
... </absatz>
</notiz>
4
XMLXMLGrundlagen Was ist XML ?
Entwicklung:
● Am 10.02.1998 wurde XML 1.0 als Empfehlung des W3C veröffentlicht● Am 06.10.2000 folgte die 2.Edition von XML 1.0● Am 04.02.2004 folgte die 3.Edition von XML 1.0● AM 29.09.2006 folgte die 4.Edition von XML 1.0● http://www.w3.org/TR/REC-xml/#sec-origin-goals
Funktion:
● reduzierte Version von SGML● Standard zur Modellierung von Daten in Form einer Baumstruktur● Klartext verständlich für Mensch & Maschine● definiert Regeln für den Aufbau von Dokumenten● Standard zur Definition von beliebigen in ihrer Grundstruktur jedoch stark
verwandten Auszeichnungssprachen● Metasprache● Sieht ähnlich wie HTML aus, ist jedoch nicht als Nachfolger gedacht.
5
XMLXMLGrundlagen Was ist XML ?
Aufbau:
● Ein XML-Dokument besteht aus einem Prolog und den eigentlichen XML-Daten.
Prolog:
<?xml version="1.0" encoding="UTF-8" standalone=“no" ?><?xml-stylesheet href="...\styles\muster.xsl" type="text/xsl" ?>
<!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd">
XML-Daten:
<gruss>Hallo Welt!</gruss>
6
XMLXMLGrundlagen Warum XML ?
● technisch völlig plattformunabhängig● Liefert Zusatzinformationen über Daten, die direkt weiterverarbeitet werden
können.● umfangreiche Formatierungen mit HTML nicht möglich● HTML erlaubt keine Definition eigener DTDs● SGML ist nicht gut geeignet um Dokumente über das Internet anzubieten.● Spezifikationsumfang von XML geringer als SGML, da Teilmenge.● Pareto Verteilung● XML enthält mehr Restriktionen (Entwicklung von Browsern leichter)● CSS und JavaScript/DOM sind 100% zu XML kompatible.● Kann verwendet werden, wenn keine Datenbank zur verfügung steht.
7
XMLXMLGrundlagen Korrektheit
● XML hat 2 verschiedene Vorstellungen von "korrekt".
Wohlgeformtheit:● Dokument mit verständlichem Markup wird als wohlgeformtes Dokument
bezeichnet.
Gültigkeit:● Der Standard definiert ein XML-Dokument als gültig, wenn es wohlgeformt
ist, den Verweis auf eine DTD enthält und das durch die DTD beschriebene Format einhält.
● Wird ein XML-Dokument als nicht gültig erkannt, ist seine Verarbeitung gemäß W3C-Vorgabe abzubrechen.
8
XMLXMLGrundlagen Korrektheit
Ein wohlgeformtes Dokument sollte u.a. folgende Bedingungen erfüllen:
● die XML-Version sollte deklariert sein● es gibt genau 1 Wurzelelement ● innerhalb des Wurzelelementes sind alle Elemente eindeutig ineinander
verschachtelt ● alle nicht-leeren Elemente sind mit Start-Tag und End-Tag markiert ● jeder Start-Tag beginnt mit < und schließt ab mit > und jeder End-Tag
beginnt mit </ und schließt ab mit > ● leere Elemente sind entweder mit Start- und End-Tag markiert oder
beginnen mit < und schließen ab mit /> ● Ein Kommentar wird begrenzt von <!-- und --> eingeschlossen● ein Attribut darf nicht zweimal im gleichen Tag vorkommen● verwendete Entitäten müssen vor ihrer Referenzierung deklariert worden
sein
9
XMLXMLGrundlagen Korrektheit
Beispiel für ein wohlgeformtes XML-Dokument:
wohlgeformt.xml:
<?xml version="1.0" ?>
<vater>
<kind>
<!– Ich bin ein Kommentar -->
Ich bin wohlgeformt.
</kind>
<leererTag/>
<auchLeer></auchLeer>
</vater>
10
XMLXMLGrundlagen
Die DTD ist das Regelwerk des XML-Dokuments und definiert Elemente, Entities und Attribute. In HTML gibt es eine fest vorgeschriebene HTML-DTD. Bei XML kann man sich diese DTD selber definieren (lassen).
Vorteile:
● Mehr Handlungsspielraum, da die Syntax auf die Bedürfnisse angepasst werden kann.
● Jeder Elementtyp kann in der gewünschten Häufigkeit angegeben werden.
● Ein XML-Editor kann einen Autor davon abhalten, die Gültigkeit eines XML-Dokuments zu zerstören.
● Eine DTD bildet die Grundlage für eine mögliche homogene, dezentrale Weiterverarbeitung der XML-Daten.
Dokument Type Definition
11
XMLXMLGrundlagen
Beispiel
dokumenttypdefinition.dtd
<!ENTITY auml CDATA "ä"><!ENTITY Auml CDATA "Ä"><!ENTITY ouml CDATA "ö"><!ENTITY Ouml CDATA "Ö"><!ENTITY uuml CDATA "ü"><!ENTITY Uuml CDATA"Ü"><!ENTITY szlig CDATA "ß">
<!ELEMENT persverz (person)+>
<!ELEMENT person (name, adresse+, geburtsdatum?, sonstiges*)>
<!ELEMENT name (vorname, nachname)><!ELEMENT vorname (#PCDATA)><!ELEMENT nachname (#PCDATA)><!ELEMENT adresse (#PCDATA)><!ELEMENT geburtsdatum (#PCDATA)><!ELEMENT sonstiges (#PCDATA)>
Dokument Type Definition
12
XMLXMLGrundlagen
Beispiel für daraus resulierendes XML-Dokument
xmldoc.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><?xml:stylesheet type="text/xsl" href="layoutdatei.xsl"?>
<!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd"><persverz>
<person><name>
<vorname>Hans</vorname><nachname>Wurst</nachname>
</name><adresse>Musterstr.1, 00700 Musterstadt</adresse><geburtsdatum>1.1.2000</geburtsdatum><sonstiges>verheiratet</sonstiges><sonstiges>2 Kinder</sonstiges>
</person></persverz>
Dokument Type Definition
13
XMLXMLGrundlagen
In der Praxis kann es vorkommen, dass beim Konsolidieren zweier XML-Dokumente, Elementtypen mit gleicher Bezeichnung verwendet werden. Mögliche Folge wäre keine eindeutige Zuweisung des Elementtyps zu einer der vorhandenen DTDs.→ XSLT hätte Probleme die XML-Daten richtig aufzubereitenMan bedient sich in diesem Fall der Namensräume. Ein qualifizierender Name Qname besteht aus:
Präfix(Namensraum):lokaler Teil(Element oder Attribut)
<person xmlns:vater="http://homepage-vom-vater.de"xmlns:kind="http://www.homepage-vom-kind.de">
<vater:vorname>Hans</vater:vorname><kind:vorname>Hänschen</kind:vorname>
</person>
Die URI soll nur eine eindeutige Bezeichnung für den Namensraum sein. Es wird nicht auf die Datei zugegriffen.
Namensräume
14
XMLXMLGrundlagen
Ein XML-Schema (auch XML-Schema-Definition kurz:XSD) bietet eine umfangreichere Alternative zur Strukturbeschreibung als eine DTD. Das Schema wird in XML verfasst.
XML-Schema
15
XMLXMLGrundlagen
Die Vorteile der XSD bestehen vorrangig in der Komplexität und denmöglichen Einstellungen, die vorgenommen werden können.
1. Das XSD kann sich selber validieren und ist somit als Bestandteil des XML-Dokuments korrekt.
2. Das XSD wird in XML verfasst und es bedarf keiner neuen, XML-fremden Sprache.
3. In Schema lassen sich komplexe Datentypen definieren und sogar im Wertebereich eingrenzen.
XML-Schema
16
XMLXMLGrundlagen
Elementdefinitionen:
Simple:
<xsd:element name=“geburtstag“ type=“xsd:date“/><xsd:element name=“homepage“ type=“xsd:anyURI“/>
Complex:
<xsd:complexType name=“Familie“><xsd:mitglieder>
<xsd:element name="Vater“ type="xsd:string"/> <xsd:element name="Mutter" type="xsd:string"/>
</xsd:mitglieder></xsd:complexType>
XML-Schema
17
XMLXMLGrundlagen
Mit einem XLink lassen sich zwei Typen von Links erstellen:
simple: vergleichbar mit dem aus HTML bekannten Link auf Ressource oder Internetauftritt.
extended: bildet komplexes Linksystem, mit dem man mehrere Ressourcen/Internetseiten gleichzeitig ansprechen kann. Außerdem lassen sich Verhaltensmuster für Linkgruppen definieren.
XLink
18
XMLXMLGrundlagen
Der XPointer macht es möglich neben Element(teilen) auch auf einzelne Punkte oder Bereiche zu referenzieren. Vorgabe dabei ist allerdings, dass die angesprochenen Dokumente XML-konform sind.
Es gibt 2 Zeigertypen.
#xpointer():sucht Element mit entsprechender ID oder Alternative#xpointer(id("zielid1")) xpointer(id("zielid2"))
#element():verfolgt den Strukturbaum bis zum gewünschten Element#element(1/2/3) oder #element(element1/2/3)
XPointer
19
XMLXMLGrundlagen
Document Object Model
● DOM ist eine Programmierschnittstelle (API) für den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert
● erlaubt Computerprogrammen dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verändern.
● Programmschnittstelle ist Plattform und Sprachneutral● geeignet für Script-Sprachen aber z.B. auch für HTML-Editoren
Verarbeitung eines Dokuments● Im ersten Schritt wird ein Dokument eingelesen und ein Dokument-Objekt
erzeugt. Anhand dieses Objekts kann mittels der Methoden des API auf die Inhalte, Struktur und Darstellung zugegriffen werden.
DOM erlaubt:● die Navigation zwischen den einzelnen Knoten eines Dokuments,● das Erzeugen, Verschieben und Löschen von Knoten sowie● das Auslesen, Ändern und Löschen von Textinhalten.● Am Ende der Verarbeitung kann aus dem Dokument-Objekt durch
Serialisierung ein neues XML- oder HTML-Dokument generiert werden.
20
XMLXMLGrundlagen
Document Object Model
Beispiel:
Beispiel_xmldoc.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml:stylesheet type="text/xsl" href="layoutdatei.xsl"?>
<!DOCTYPE xmldoc SYSTEM "dokumenttypdefinition.dtd"><persverz>
<person><name>
<vorname>Hans</vorname><nachname>Wurst</nachname>
</name><adresse>Musterstr.1, 00700 Musterstadt</adresse><geburtsdatum>1.1.2000</geburtsdatum><sonstiges>verheiratet</sonstiges>
</person></persverz>
21
XMLXMLGrundlagen
Document Object Model
DOM-Baum zu Beispiel_xmldoc.xml:
● Fast alle XML-Parser bieten inzwischen ein DOM-Modul an, mit dem sich ein DOM aus einer XML-Datei erstellen läßt.
● Der DOM-Baum, der vom Parser erstellt wird, muß immer vollständig im Hauptspeicher gehalten werden. (bedenke Performance)
22
XMLXMLGrundlagen
Transformation von XML-Dokumenten
● XSL Transformations (XSLT) ist ein Sprachbestandteil der eXtensible Stylesheet Language XSL.
● XSLT bietet die Möglichkeit beliebige XML-Dokumente in andere Formate zu transformieren.
● Es ist es möglich die Daten in XML zu speichern, aber in einem anderen bzw. nützlicheren Format darzustellen oder kompakter zu gestalten als das Original. (ohne überflüssige Informationen)
● mögliche Ausgabeformate sind XML, HTML, XHTML, SVG, VRML und PDF
● Die Transformation geschieht mithilfe von XSL-Stylesheets
● Parsen durch Transformations-Engine (z.b. Saxon)
● Existiert zu einer Auszeichnung eine Regel im Stylesheet, ein sogenanntes Template, wird diese angewandt und der Ergebnis-Code wird erzeugt
23
XMLXMLGrundlagen
Transformation von XML-Dokumenten
Beispiel: adressbuch.xml –-–-Saxon–-–-> adressbuch.html
Die Transformation eines Adressbuchs adressbuch.xml in eine HTML-Dateiadressbuch.html soll hier mit der XSLT-Engine Saxon beispielhaft gezeigt werden.
Die Quelldatei adressbuch.xml:
<?xml version="1.0"?><!DOCTYPE adressbuch SYSTEM "adressbuch.dtd"><Adressbuch>
<Person> <Vorname>Hans</Vorname> <Nachname>Wurst</Nachname> <Ort plz=„06701">Bockstadt</Ort> <Alter>50</Alter> </Person>
</Adressbuch>
24
XMLXMLGrundlagen
Transformation von XML-Dokumenten
Das Transformations-Stylesheet adressbuch.xsl:
<?xml version="1.0"?><xsl:stylesheet version="1.0“ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"><html>
<head><title> Transformiertes Adressbuch </title>
</head><body>
<xsl:apply-templates /></body>
</html></xsl:template>
25
XMLXMLGrundlagen
Transformation von XML-Dokumenten
<xsl:template match="Vorname"> <td> <xsl:value-of select="." /> </td></xsl:template>
<xsl:template match="Nachname"> <td> <xsl:value-of select="." /> </td></xsl:template>
<xsl:template match="Alter"> <td> <xsl:value-of select="." /> </td></xsl:template>
<xsl:template match="Ort"> <td> <xsl:value-of select="." /> </td></xsl:template>
</xsl:stylesheet>
26
XMLXMLGrundlagen
● Aufruf: saxon -o adressbuch.html adressbuch.xml adressbuch.xsl
● Quelldatei: adressbuch.xml
● Stylesheet: adressbuch.xsl
● Ergebnis: adressbuch.html
Transformation von XML-Dokumenten
27
XMLXMLGrundlagen
Transformation von XML-Dokumenten
Ergebnis adressbuch.html:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> Transformiertes Adressbuch </title> </head> <body> <table border="2"> <tr> <td>Hans</td> <td>Wurst</td> <td>Bockstadt</td> <td>50</td> </tr> </table> </body></html>
● Das Ergebnis dieser Transformation ist also eine reine HTML-Datei, die über die Angaben im Stylesheet beliebig gestaltet werden darf
28
XMLXMLGrundlagen
Transformation von XML-Dokumenten
Beispiel: XML - Gästebuch
http://cruncher.ba-mannheim.de/~s0511202/XML/easyboard/
easyboard.php (Die Index-Seite des Gästebuches)
easyboard_entries.xml (Enthällt die Einträge im XML-Format)
29
XMLXMLGrundlagen
Bücher:
●SGML für die Praxis – Ansatz und Einsatz von ISO 8879, Wolfgang Rieger, Springer-Verlag Berlin Heidelberg, 1995
●XML für Dummies, 3. überarbeitete Auflage, Lucinda Dykes , Ed Tittel; Wiley- Vch, 2006
●XML, Grundlagen der Sprache und Anwendungen in der Praxis; Dirk Ammelburger, Carl Hanser Verlag, 2004
Internet:
●http://www.come2xml.de/●http://www.edition-w3c.de/●http://www.fh-wedel.de/~si/seminare/ss04/Ausarbeitung/9.Kobligk●http://www.fh-wedel.de/~si/seminare/ws00/Termine/Themen.html●http://www.mintert.com/xml●http://www.rittershofer.de●http://www.stud.fernuni-hagen.de●http://www.wikipedia.de
Quellen