www.medienpunkt.com

  • Schrift vergrößern
  • Standard Schriftgröße
  • Schriftgröße verkleinern
Home

Externe und interne Dateninseln mit XML

E-Mail Drucken

XML-Dateien können nicht nur als eigenständige Dateien gespeichert werden, sie können auch in fremde Formate eingebettet bzw. mit fremden Formaten verbunden werden.

Statt nun mit z.B. einer XSL-Transformation zu arbeiten, kann man bei einfachen Dokumenten auch Dateninseln nutzen...

Werden dabei die XML-Daten in das Format eingebettet, so spricht man von internen Dateninseln. Speichert man z.B. in einer HTML-Datei XML-Daten ab, so hat man eine interne Dateninsel.

Von externen Dateninseln spricht man, wenn eine Referenz von einem Format auf eine XML-Datei erfolgt. Es wird dann quasi die XML-Datei als Datencontainer genutzt.

Interne Dateninseln

Als Beispiel soll hier eine HTML-Datei eingebetteten Daten vorgestellt werden. Bei dieser Lösung erfolgt der Aufbau und die Darstellung der Seite durch dem HTML-Teil. Die Daten sind in dem XML-Teil abgelegt.

Beispiel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>

<title>Beispiel: Interne Dateninsel</title>

</head><body>

In unserem Sortiment sind die folgenden Artikel:
<P>
<xml id="sortiment">
<Artikel>
<Eintrag>
<Bezeichnung>Tomate </Bezeichnung>
<Anzahl>8 </Anzahl>
<Preis> 1,29 </Preis>
</Eintrag>

<Eintrag>
<Bezeichnung>Apfel </Bezeichnung>
<Anzahl>1 </Anzahl>
<Preis> 0,20 </Preis>
</Eintrag>
</Artikel>
</xml>

<P>
<body><html>

Ruft man diese Seite nun auf, so wird man feststellen, dass keine Daten dargestellt werden. Das ist auch nicht überraschen, dann die XML-Informationen legen nur die Datenstruktur fest, sie beschreiben aber nicht wie die Daten dargestellte werden sollen. Wir müssen also eine Darstellungsbeschreibung zu dem HTML-Teil hinzufügen, da der Teil die Visualisierung der Daten übernimmt.Dabei muss hier die XML-Datei als Datenquelle angegeben werden und die Daten Zeile für Zeile ausgegeben werden.
Ändert man die HTML-Datei ab, so kann man mit dem folgenden Beispiel die Daten auch darstellen:

Beispiel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>

<title>Beispiel: Interne Dateninsel</title>

</head><body>

In unserem Sortiment sind die folgenden Artikel:
<P>
<xml id="sortiment">
<Artikel>
<Eintrag>
<Bezeichnung>Tomate </Bezeichnung>
<Anzahl>8 </Anzahl>
<Preis> 1,29 </Preis>
</Eintrag>

<Eintrag>
<Bezeichnung>Apfel </Bezeichnung>
<Anzahl>1 </Anzahl>
<Preis> 0,20 </Preis>
</Eintrag>

</Artikel>
</xml>

<table datasrc="#sortiment">
<thead>
<tr>
<td>
Bezeichnung
</td>
<td>
Anzahl
</td>
<td>
Preis
</td>
</tr>
</thead>
<tr>
<td>
<span datafld="Bezeichnung">
</span>
</td>
<td>
<span datafld="Anzahl">
</span>
</td>
<td>
<span datafld="Preis">
</span>
</td>
</tr>
</table>


<P>
<body><html>

Wie zu sehen ist, werden die in der XML-Sektion definierten Daten dargestellt. Durch Formatierungen mit CSS oder HTml kann man dann die Datenausgaben entsprechend anpassen.

Externe Dateninseln

Will man nun externe XML-Dateien darstellen, so muss man zuerst definieren, wo die XML-Datei abgelegt ist. Ist das passiert, so können die DAten analog zu den internen Dateninseln dargestellt werden. Das folgende Listing definiert eine Datenstruktur innerhalt der HTML-DAtei. Dabei ist die Datenstruktur in der Datei "Daten.xml" abgelegt.

Beispiel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>

<title>Beispiel: Externe Dateninsel</title>

</head><body>

In unserem Sortiment sind die folgenden Artikel:
<P>
<xml id="sortiment" src="/Daten.xml"></xml>
<P>
<body><html>

Hier werden keine Daten dargestellt, sie werden nur definiert. Sollen die Daten auch dargestellt werden, so muss der HTML-Teil wieder angepasst werden. Dabei muss hier die XML-Datei als Datenquelle angegeben werden und die Daten Zeile für Zeile ausgegeben werden. Das ganze läuft also genau wie bei den internen Dateninseln.
Mit der Darstellung der Daten sieht die HTML-Datei dann so aus:

Beispiel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>

<title>Beispiel: Externe Dateninsel</title>

</head><body>

In unserem Sortiment sind die folgenden Artikel:
<P>
<xml id="sortiment" src="/Daten.xml"></xml>
<table datasrc="#sortiment">
<thead>
<tr>
<td>
Bezeichnung
</td>
<td>
Anzahl
</td>
<td>
Preis
</td>
</tr>
</thead>
<tr>
<td>
<span datafld="Bezeichnung">
</span>
</td>
<td>
<span datafld="Anzahl">
</span>
</td>
<td>
<span datafld="Preis">
</span>
</td>
</tr>
</table>

<P>
<body><html>

Die Daten werden nun korrekt dargestellt. Durch die externen Dateninseln könnte man nun z.B. mit einem Programm die Daten exportieren und dann über eine HTML-Datei formatieren und darstellen.

 

Anmeldung