Wirtschaftsinformatik (Bachelor-Studiengang): Grundlagen der Kommunikationstechnik (4. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikGrundlagen der Kommunikationstechnologie: Schnittstellen / Übergabeformate (XML)

HH / CM, Kurs vom 01.10.2003 - 31.03.2004

Grundlagen der Kommunikationstechnologie: Schnittstellen / Übergabeformate (XML): Die Geschichte von XML (Das World Wide Web, Was ist XML?), XML-Grundlagen (Elemente, Attribute, Entities, Identifier, Subset, Eigenschaften), Weiterführende Standards.

  1. Die Geschichte von XML
  2. XML-Grundlagen
  3. Weiterführende Standards

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
Das Applikationsmodell in WWW:
  • "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:

Gegenüberstellung von Quellcode, DTD und der Ausgabe
Quellcode Die dazugehörige DTD Ausgabe
<firma><name>FHTW</name>
<gform>Körperschaft</gform>
<ma><name>Otto</name>
<position></position>
</ma>
</firma>
<!ELEMENT firma (name,gform,ma+)>
<!ELEMENT gform (#PCDATA)>
<!ELEMENT ma (name, agrad?, position)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT position (#PCDATA)>

Jedes Element darf nur einmal deklariert werden
FHTW
Körperschaft
Otto

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

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 &lt; und &amp; 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 ID
  • ENTITY(IES): Verweis auf unparsed Entity
  • NMTOKEN(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:

  • &#9999; referenziert dezimal eine Stelle im Unicode-Zeichensatz
  • &#x9999; 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

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

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