Wirtschaftsinformatik (Bachelor-Studiengang): Grundlagen der Kommunikationstechnik (4. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Grundlagen der Kommunikationstechnologie: Schnittstellen / Übergabeformate (XML)
HH / CM, Kurs vom 01.10.2003 - 31.03.2004
Die Geschichte von XML
Das World Wide Web
Das WWW ist- Ein weltweit verfügbares Medium zur Informationsverteilung
- Plattformunabhängig
- Ein einfaches Display-Format (HTML)
- Ein Hypertextsystem
- Eine Plattform zur Applikationsentwicklung
- Moving Target durch hohe Entwicklungsgeschwindigkeit
- Proprietäre Anwendungen auf proprietären Datenbeständen
- Viel Information, aber unzureichende Retrieval- und Navigationsmechanismen
- "Ruhe" zum Aufbau der Informationsbestände
- Einfacher, weltweiter, von Applikationen unabhängiger Informationsaustausch
- Mächtige, plattformunabhängige Applikationen, z.B. Suchmaschinen
- Konsistente und aktuelle Informationsbestände
60er: Einheit von Daten, Software, Betriebssystem, Hardware
(IBM)
80er: Daten, Software und
Hardware, Betriebssystem
getrennt (Unix)
Gestern: Daten, Software und
Betriebssystem und Hardware
getrennt (StarOffice)
Heute: Mit XML sind alle
Bestandteile der Informationswirtschaft getrennt.
Freiheit der Daten
- Entkopplung von Daten und Applikationen
- Trennen von Information und Layout
- Schaffen von selbstbewussten Datenbeständen durch Anwendung von Standards
1996 wird die SGML- (später XML-) Arbeitsgruppe unter Leitung von Jon Bosac (Sun) gegründet.
Am 14. November 1996 wird das erste Diskussionspapier zur Extensible Markup Language veröffentlicht.
An der Erstellung waren folgende Firmen beteiligt:
- ArborText, DEC, ebt, Ericsson, Fujitsu, Hitachi, HP, IBM, Inso, Lockheed-Martin, Microsoft, Novell, Omnimark, Schlumberger, sco, Sun, SoftQuod, Wall Street Journal
Am 10. Februar 1998 wurde die W3C Recommendation zur Extensible Markup Language (XML) 1.0 veröffentlicht. Die Arbeit am XML-Standard selbst war damit vorläufig abgeschlossen.
Was ist XML?
XML ist ein "Enabling Standard" zur semantischen Beschreibung von Daten.
Design-Ziele:
- XML soll sich im Internet auf einfache Weise nutzen lassen.
- XML soll ein breites Spektrum von Anwendungen unterstützen.
- XML soll zu SGML kompatibel sein.
- Es soll einfach sein, Programme zu schreiben, die XML-Dokumente verarbeiten.
- Die Zahl optionaler Merkmale in XML soll minimal sein, idealerweise Null.
- XML-Dokumente sollten für Menschen lesbar und angemessen verständlich sein.
- Der XML-Entwurf sollte zügig abgefasst sein.
- Der Entwurf von XML soll formal und präzise sein.
- XML-Dokumente sollen leicht zu erstellen sein.
- Knappheit von XML-Markup ist von minimaler Bedeutung.
Gegenüberstellung von XML und HTML:
XML:
- Metasprache zur Beschreibung eigener Tagsets
- Tagsets beschreiben Information, nicht Layout
- Strenge Interprätationsregeln
HTML:
- Ein spezifischer Tagset
- Beschreibt Layout
- Sehr freie (keine) Interprätationsregeln
Gegenüberstellung von XML und SGML:
XML:
- Unicode Zeichensatz
- Keine
SDATA
-Entities zur Sonderzeichendarstellung - Für jedes External Entity muss es einen System Identifier geben
- Well-formed Instanzen ohne DTD sind zulässig
- keine Exceptions mehr zulässig
SGML:
- Zeichensatz ist frei konfigurierbar
SDATA
-Entities zur Darstellung von Sonderzeichen- System Identifier ist optional
- Instanzen sind nur valide mit DTD
- Tag omission, data tag, minimization
Ein XML Dokument:
Quellcode | Die dazugehörige DTD | Ausgabe |
---|---|---|
<firma><name>FHTW</name>
|
<!ELEMENT firma (name,gform,ma+)> Jedes Element darf nur einmal deklariert werden |
FHTW
|
XML-Grundlagen
Jedes XML-Dokument hat eine logische und eine physische Struktur:
- Physisch ist ein Dokument aus Speichereinheiten (Entities) aufgebaut, die entweder als Datei, oder als Textbaustein innerhalb einer Datei vorliegen.
- Logisch besteht ein Dokument aus Deklarationen, Elementen, Kommentaren, Zeichenreferenzen, Processing Instructions und Text.
XML-Zeichensatz:
- XML verwendet den Unicode Zeichensatz ISO/IEC 10646.
- Groß-/Klein-Schreibung ist signifikant.
- Die Zeichen
<
und&
sind Markup-Sonderzeichen und dürfen nicht in#PCDATA
vorkommen. Sie werden durch<
und&
ersetzt.
Zeichen-Kodierung:
Alle XML-Systeme müssen die Unicode Zeichenkodierungen UTF-8 und UTF-16 akzeptieren.
XML-DTD:
In der XML-DTD (Document Type Definition) wird die logische Struktur eines Dokuments definiert. Die logische Dokumentstruktur wird durch Elemente und deren Attribute beschrieben.
Elemente
Jedes XML-Dokument enthält ein oder mehrere Elemente, die entweder durch Start- und End-Tags oder, im Falle eines leeren Elements, durch ein Leeres-Element-Tag begrenzt sind. Jedes Element hat einen Typ, der durch einen Namen, auch "Generic Identifier" (GI) genannt, identifiziert wird.
Element-Deklaration:
Durch die Element-Deklaration wird der Typ (GI) und das Inhaltsmodell des Elements festgelegt. Es gibt drei mögliche Ausprägungen von Inhaltsmodellen:- Element Content
- Mixed Content
- Empty Content
Beispiel:
<!ELEMENT dokument (einleitung?, kapitel+, schluss?)>
<!ELEMENT einleitung (#PCDATA|hervor)*>
<!ELEMENT hervor (#PCDATA)>
Metazeichen:
( )
Durch Klammern werden Blöcke gebildet
,
Komma ist das Trennzeichen für eine Sequenz
|
Strich ist das Trennzeichen für eine Alternative
?
Fragezeichen steht für optional
*
Stern steht für 0 - n Wiederholungen
+
Plus steht für 1 - n Wiederholungen
kein Operator steht für genau einmal
#PCDATA
und EMPTY
:
#PCDATA
steht für Parsed Character Data und bezeichnet Inhaltsmodelle, in denen Text vorkommen darf.EMPTY
bezeichnet das Inhaltsmodell für leere Elemente.
Element-Darstellung:
Elemente werden durch Start- und End-Tag im Dokument markiert (Markup). Leere Elemente werden nur durch ein Leeres-Element-Tag dargestellt. Elemente müssen streng hierarchisch ineinander geschachtelt sein (Well-Formed-Kriterium).
Beispiel:
<dokument>
<einleitung><hervor>XML</hervor>-Grundlagen
</einleitung>
<kapitel>....</kapitel>
</dokument>
Attribute
Attribute werden verwendet, um Name-Wert-Paare mit Elementen zu verknüpfen. Attribut-Spezifikationen dürfen ausschließlich innerhalb von Start-Tags und Leeres-Element-Tags erscheinen.
Attributlisten-Deklaration:
<!ATTLIST dokument status (abgest | vorschl) vorschl>
Obiges Beispiel deklariert das Attribut status für das
Element dokument
mit den möglichen Werten
"abgest
" und "vorschl
"
und dem Standardwert "vorschl
".
Eine Attributlisten-Deklaration besteht immer aus:
- Einem Element-Namen
- Einer (oder mehreren) Attribut-Deklaration mit
- Einem Attribut-Namen
- Einem Attribut-Typ
- Einem Vorgabewert
Attribut-Typen:
CDATA
: Text- ID: Eindeutiger Identifizierer
IDREF(S)
: Verweis auf eine vorhandene IDENTITY(IES)
: Verweis auf unparsed EntityNMTOKEN(S)
: XML-Name- Aufzählung: Explizite Werteliste
Attribut-Vorgabewerte:
#REQUIRED
: Notwendiges Attribut#IMPLIED
: Optionales Attribut#FIXED wert
: Attribut mit festem Wert
Explizite Angabe eines Default-Wertes bei Wertelistentyp.
Attribut-Beispiele:
<!ATTLIST dokument
id ID #REQUIRED
status (abgest | vorschl) vorschl
format CDATA #FIXED "XML">
Entities
Ein XML-Dokument kann aus
einer oder mehreren Speicherungseinheiten bestehen. Diese werden
Entities genannt. Sie haben
alle Inhalt und sind alle durch einen Namen identifiziert. Jedes
XML-Dokument besitzt
ein Entity namens
Dokument-Entity
, welches als Ausgangspunkt für
den XML-Prozessor dient
und das gesamte Dokument enthalten darf.
Parsed Entities:
Parsed-Entities enthalten Text, der durch den XML-Parser analysiert und interpretiert wird. Parsed Entities können intern und extern sein und Teile des Dokumentinhalts oder der DTD-Deklaration enthalten. Entities zur DTD-Deklaration nennt man Parameter Entities. Die anderen heißen General Entities oder einfach Entities.
Unparsed Entities:
Unparsed Entities enthalten Daten, die nicht durch den XML-Prozessor verarbeitet werden. Normalerweise dienen Sie zur Einbindung von Grafiken und Texten in nativen Dokumentformaten wie Winword oder PDF. Der Datentyp dieser Entities wird durch Notations bestimmt.
Internal Entities:
Internal Entities werden vollständig im Declaration Subset (DTD) deklariert. Sie dienen zur Textersetzung und verhalten sich ähnlich wie Makros in manchen Programmiersprachen. Internal Entities sind immer Parsed Entities.
External Entities:
External Entities sind
Referenzen auf externe Datenobjekte (z.B. Dateien). Sie dienen zur
Modularisierung von DTD und Dokumenten.
Sie sind vergleichbar mit der include
-Anweisung mancher
Programmiersprachen. External
Entities können Parsed- und Unparsed-Entities sein.
General Entities:
General Entities dienen zur Modularisierung von Dokumenten. General Entities können sowohl Parsed und Unparsed als auch internal und external sein.
Parameter Entities:
Parameter Entities dienen zur Modularisierung der DTD. Parameter Entities sind immer Parsed Entities und können sowohl intern als auch extern sein. General Entities und Parameter Entities benutzen getrennte Namensräume, um Namenskonflikte auszuschließen.
Entity Deklaration und Aufruf:
Entities müssen vor
ihrem Aufruf deklariert werden. Die Entity Deklaration erfolgt im Prolog.
Mehrfachdeklaration von Entities ist kein Fehler. Es gilt die erste
Deklaration. Parameter-Entities
dürfen nur im Prolog, General
Entities nur im Kontext des Document
-Elements aufgerufen
werden.
Parameter Entity Beispiele:
<!ENTITY % ab-li (b|i|link|#PCDATA)*>
<!ELEMENT absatz %ab-li;>
<!ELEMENT liste (item+)>
<!ELEMENT item %ab-li;>
General Entity Beispiele:
<!DOCTYPE dokument [
... (hier kommt die Document Type Definition)
<!ENTITY firma XYZ>
]>
<dokument>
... in der &firma; ...
</dokument>
Der Entity-Aufruf &firma; wird durch den Parser durch XYZ ersetzt.
Notations:
Notations dienen zur Bezeichnung des Typs von Unparsed Entities. Sie werden durch eine Notation Declaration deklariert.
<!NOTATION gif SYSTEM GIF>
External Entity Beispiel:
<!DOCTYPE dokument [
... (hier kommt die Document Type Definition)
<!ENTITY logo SYSTEM xyz.gif NDATA gif>
]>
<dokument>
... Das Logo: <picture ent= logo />
</dokument>
Die Referenz auf die externe Grafik erfolgt durch das Attribut ent vom Typ ENTITY.
Zeichen-Entity:
Um die Eingabe von Unicode-Zeichen zu erlauben, die nicht über die Tastatur erreichbar sind, ist die Möglichkeit von Zeichen Entity Referenzen vorgesehen:
✏
referenziert dezimal eine Stelle im Unicode-Zeichensatz香
referenziert hexadezimal eine Stelle im Unicode-Zeichensatz
Identifier
System Identifier:
System Identifier sind URI, die dazu benutzt werden externe Speicherobjekte zu referenzieren. System Identifier werden bei der Deklaration von externen Entities verwendet.
<!ENTITY logo SYSTEM "bilder/logos/FHTW.gif">
Bei der Deklaration eines externen Entities muss immer ein System Identifier angegeben werden.
Public Identifier:
Public Identifier dienen zur systemunabhängigen Benennung externer Speicherobjekte. Die Auflösung der Public Identifier obliegt der XML-Anwendung. Neben einem Public Identifier muss immer auch ein System Identifier angegeben werden.
<!ENTITY logo PUBLIC
"-//FHTW//Grafik GIF Logo//DE"
"bilder/logos/FHTW.gif">
Kommentare:
Kommentare sind sowohl in der DTD, als auch im Dokument zulässig und werden folgendermaßen deklariert:
<!-- Das ist ein Kommentar -->
Geschachtelte Kommentare sind nicht zulässig.
Prozess Instruktionen:
Prozess Instruktionen (Processing Instructions) sind keine signifikanten Bestandteile des logischen Dokuments. Sie dienen zur Steuerung der verarbeitenden Applikation.
<?demopi?>
Aufbau eines XML-Dokuments:
- Prolog
- XML-Deklaration
- Dokumenttyp-Deklaration
- Dokument
- Wurzelelement
XML-Deklaration:
Die XML-Deklaration ist optional, sollte aber immer verwendet werden. Sie steht immer am Anfang eines Dokuments.
<?xml version="1.0?">
Dokumenttyp-Deklaration:
Die Dokumenttyp-Deklaration ist optional und verweist auf die verwendete DTD.
<!DOCTYPE dokument SYSTEM "dok.dtd">
Hier wird auch das Wurzelelement des folgenden Dokuments genannt.
Subset
External Declaration Subset:
Die DTD-Deklarationen können sich in einer externen Datei, im Dokument selbst, oder in beiden befinden. Die Referenz auf ein externes DTD-Entity erfolgt durch einen Public/System-Identifier in der Doctype-Declaration.
<!DOCTYPE dokument SYSTEM "dok.dtd">
Internal Declaration Subset:
Interne DTD-Deklarationen sind Bestandteil der Doctype-Declaration.
<!DOCTYPE dokument SYSTEM "dok.dtd"
[
<!ENTITY logo SYSTEM "FHTW.gif">
<!ELEMENT spezial (#PCDATA)>
]>
<dokument>...</dokument>
Eigenschaften
Valides XML Dokument:
Ein valides XML-Dokument referenziert eine DTD und verhält sich konform zu den dort getroffenen Deklarationen. Die Gültigkeit eines Dokuments kann man mit sogenannten Parsern prüfen.
Well-Formed XML Dokument:
- Ein wohlgeformtes (Well-Formed) XML-Dokument entspricht der XML-Syntax für Start-, Ende- und Leere Tags.
- Die Elemente des Dokuments sind weiterhin streng hierarchisch geschachtelt.
- Ob ein XML-Dokument den Well-Formed-Kriterien entspricht, kann durch einen Parser geprüft werden.
- Well-Formed Dokumente sind für die Anzeige im Browser gedacht.
Anwendungsbeispiel: Open Financial Exchange-Format (OFX)
- Standard zum Austausch von Finanzinformationen
- Wird von Microsoft Money und Intuit Quicken unterstützt
- Wird von amerikanischen Finanzbehörden und Geldinstituten akzeptiert
Weiterführende Standards
- XML Name Spaces
- XSL / XSL-T
- XLink, XPointer
- XML-Data / XML-Schema
- RDF
- DOM
- SAX
XML Name Spaces:
Erlaubt die Anwendung mehrerer XML Grammatiken (DTD) in einem Dokument.
XSL:
Die Extensible Style Language erlaubt Layout-Definitionen für XML-Dokumente
- Deklarative Sprache zur Layout-Beschreibung
- JavaScript für komplexe Darstellungen
- XSL-Styles sind XML-Dokumente
XSL-T:
Transformations-Teil der XSL-Spezifikation. Dient zur Transfomation von XML-Instanzen nach HTML oder in andere XML-Strukturen.
XLink, XPointer:
XLink ist eine Sprache zur Beschreibung komplexer Hypertextlinks zwischen "Objekten"
.- XPointer unterstützt die Adressierung in XML-Dokumentstrukturen
- XLink und XPointer verwenden XML-Notation
XML-Data / XML-Schema:
Standard zur Beschreibung syntaktischer und relationaler Strukturen
- Erweitert die Möglichkeiten des herkömmlichen DTD-Design
- Ermöglicht die Spezifikation von Datentypen
- XML-Schemas sind XML-Dokumente
RDF:
Bietet ein Modell zur unabhängigen Definition von Metadaten
- Und eine Syntax zur Formulierung dieser Metadaten (Vokabulare)
- Aber keine vordefinierten Metadaten
DOM:
Das Document Object Model (DOM) ist ein API zur Navigation in XML-Dokumentbäumen und zur Manipulation dieser Bäume. DOM ist in den neusten Versionen der gängigen Web-Browser bereits implementiert.
SAX:
Das SAX ist ein ereignisorientiertes API für die Einbindung von XML-Parsern.
Zukunftsausblick
- Browser und Server werden zunehmend XML unterstützen
- Ergänzende Standards werden sich etablieren (RDF, XSL-T)
- Standard-Vokabulare (Metadaten) werden sich durchsetzen
- HTML wird noch lange Zeit das dominierende Anzeigeformat bleiben