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

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

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:

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:

Gegenüberstellung von XML und HTML:

XML:

HTML:

Gegenüberstellung von XML und SGML:

XML:

SGML:

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:

XML-Zeichensatz:

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:

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:

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:

Attribut-Typen:

Attribut-Vorgabewerte:

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:

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:

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:

Anwendungsbeispiel: Open Financial Exchange-Format (OFX)

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Weiterführende Standards

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

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"

.

XML-Data / XML-Schema:

Standard zur Beschreibung syntaktischer und relationaler Strukturen

RDF:

Bietet ein Modell zur unabhängigen Definition von 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