Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2016.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

XML-Export: CDATA

In der vorherigen Ausgabe haben wir uns ausführlich mit dem Export von Tabellendaten in XML-Dokumente beschäftigt. Dabei haben wir zum Formen der Ausgabe auch Gebrauch von .xslt-Dateien gemacht, die Anweisungen zur Aufbereitung der Inhalte enthalten. In den Beiträgen haben wir uns noch keine Gedanken um den Export von Inhalten aus Text- oder Memofeldern gemacht, die als CDATA markiert werden sollen. Was CDATA überhaupt ist und wie Sie Ihre Daten als solche markieren, zeigt dieser Beitrag.

Die beiden Beiträge, in denen wir uns um den Export von Daten aus Access-Tabellen in XML-Dateien gekümmert haben, heißen XML-Export ohne VBA (www.access-im-unternehmen.de/1045) und XML-Export mit VBA (www.access-im-unternehmen.de/1046). Hier haben wir beispielsweise die Tabelle tblKategorien, deren Werte aus den Feldern Beschreibung (Memo) und Abbildung (OLE-Objekt) gegebenenfalls einfach in herkömmliche XML-Elemente geschrieben wurden – also etwa so:

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" 
                           generated="2016-09-04T17:33:45">
   <tblKategorien>
     <KategorieID>1</KategorieID>
     <Kategoriename>Getränke</Kategoriename>
     <Beschreibung>Alkoholfreie Getränke, Kaffee, Tee, 
                                        Bier</Beschreibung>
   </tblKategorien>
   ...
</dataroot>

Unser Ziel ist aber nun, den Inhalt des Feldes Beschreibung wie folgt im XML-Dokument zu speichern:

<Beschreibung><![CDATA[Alkoholfreie Getränke, Kaffee, Tee, Bier]]></Beschreibung>

Innerhalb des Beschreibung-Elements sollen also noch ein öffnendes <![CDATA[ und ein schließendes ]]> um den Inhalt herum eingefügt werden.

Was aber ist CDATA überhaupt und was ist unser Nutzen, wenn wir den Inhalt des Elements damit einfassen? Gelegentlich kommt es vor, dass die in der Datenbank enthaltenen Zeichenketten auch Zeichen wie das Kleiner(<)- oder Größer-Zeichen(>) enthalten. Solange sich dieses in einem Feld einer Access-Tabelle befindet, machen diese keinen Ärger. Wenn Sie einen solchen Inhalt aber in ein XML-Dokument exportieren, dann würde dies als Element-Markup interpretiert werden. Wie Sie wissen, werden das Größer- und das Kleiner-Zeichen ja zum Markieren des Beginns und des Endes eines XML-Elements verwendet (...).

Taucht dann innerhalb dieser Markierungen im Inhalt eines dieser Zeichen auf, wird es nicht als Zeichen, sondern als neues Elementmarkup ausgewertet. Im folgenden Beispiel war jemand faul und hat statt des Wortes kleiner das Kleiner-Zeichen verwendet:

<b>Die Anzahl der Artikel dieser Kategorie ist < als die der übrigen Kategorien.

Soll dies nun in ein XML-Dokument exportiert werden, wird Folgendes daraus:

<b><Bes</b>chreibung>Die Anzahl der Artikel dieser Kategorie ist < als die der übrigen Kategorien.</Beschreibung>

Das Kleiner-Zeichen wird also automatisch durch < ersetzt, eine sogenannte HTML-Entität. Wenn das nicht geschehen würde, weil wir das XML-Dokument beispielsweise nicht über den eingebauten XML-Export erstellen, sondern per VBA, erhielten wir die folgende Zeile:

<b><Bes</b>chreibung>Die Anzahl der Artikel dieser Kategorie ist < als die der übrigen Kategorien.</Beschreibung>

Würden Sie diese Datei in einem XML-Editor öffnen, würde diese beispielsweise die Fehlermeldungen aus Bild 1 liefern. Das heißt also, dass wir entweder mit der Darstellung mit den Entitäten wie eben < für das Kleiner-Zeichen leben müssen oder aber den Inhalt als CDATA-Block ausgeben.

Fehlermeldungen beim Anzeigen einer XML-Datei mit unzulässigen Markupzeichen

Bild 1: Fehlermeldungen beim Anzeigen einer XML-Datei mit unzulässigen Markupzeichen

Anwendungsfälle für CDATA

Während es oft durch Zufall geschieht, dass ein Zeichen in einer Tabelle landet, das für die Ausgabe in ein XML-Dokument speziell behandelt werden muss, gibt es auch Anwendungsfälle, bei denen dies regelmäßig vorkommt. Wenn Sie etwa in einem Tabellenfeld den Inhalt eines XML-Dokuments selbst speichern und dieses als Teil eines XML-Dokuments exportieren wollen, sollten Sie dieses der Einfachheit halber einfach in einen CDATA-Block einfassen.

Ansatz mit Bordmitteln

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.