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

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 1/2006.

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

Zusammenfassung

Lernen Sie die Vor- und Nachteile sowie einige Einsatzmöglichkeiten von XML kennen.

Techniken

XML, XSL, HTML

Voraussetzungen

Access 2002 und höher

Beispieldateien

XML_1.mdb

XML mit Access, Teil 1

Tom Jordan, Düsseldorf

Das Thema XML ist mittlerweile in aller Munde. Ohne dieses Standardformat für die Beschreibung von Daten ist der Austausch zwischen diversen Systemen kaum noch denkbar. Auch Microsoft schließt sich an und hat XML inzwischen in fast allen seiner Produkte in irgendeiner Form implementiert. In diesem ersten Beitrag einer dreiteiligen Serie wollen wir Ihnen die Welt von XML kurz vorstellen und Ihnen damit die ersten Praxisschritte ermöglichen.

Einführung in XML

Kurz gesagt ist XML (Extensible Markup Language) eine Sprache, die Aufbau und Struktur von Daten beschreibt. Auf ähnliche Weise wie HTML eine Webseite, die der Internet Explorer einlesen und darstellen kann, beschreibt XML einen Satz von Daten in einem so genannten XML-Dokument. Da das XML-Dokument auch textbasiert ist, kann es von diversen Systemen, egal auf welchem Betriebssystem oder welcher Plattform, aber auch von Menschen eingelesen und interpretiert werden.

Noch genauer gesagt ist XML eine Metasprache, die eingesetzt wird, um eine so genannte Markup-Sprache für Daten zu definieren. XML gliedert sich in die Familie der Markup-Sprachen ein und wird darin direkt von SGML abgeleitet.

XML ist auch nur Markup

Ob für XML oder HTML (in beiden Fällen steht das "M" ja für Markup), hinter diesem Begriff verbirgt sich die Verwendung von Vermerken, mit denen das Dokument zwecks Verarbeitung kodiert wird. Diese Vermerke fungieren als Anweisungen für ein Leseprogramm beziehungsweise einen Menschen dazu, wie die Daten zu interpretieren sind. Das typische XML-Dokument besteht also sowohl aus den grundlegenden Daten als auch aus dem Markup, der den Aufbau der Daten beschreibt. Ohne Markup hätten die Daten keine Struktur und wären wohl ziemlich wertlos. Schauen Sie sich dieses XML-Beispieldokument einmal an:

<Filiale>

 <Kunden>

  <Kunde KD-NR="459">

    <Nachname>Jordan</Nachname>

    <Vorname>Tom</Vorname>

    <Bestellungen>

     <Bestellung Bestell-NR="854">

       <Datum>07.12.2005</Datum>

     </Bestellung>

    </Bestellungen>

  </Kunde>

 </Kunden>

</Filiale>

Zu dem Markup dieses Dokuments gehören hauptsächlich die zwischen Klammern stehenden Datenvermerke (die Tags).

Beispielsweise bedeutet der Tag <Kunde> für den Leser, dass es sich um Kundendaten handelt, inklusive Nachnamen, Vornamen und Bestellungen des Kunden.

Diese Information, die man mit Access normalerweise in Tabellen und Feldern abspeichern würde, wird in unserem XML-Dokument als Unterelemente unter <Kunde> abgelegt. Diese hierarchische Struktur der Daten erhöht ebenfalls die Lesbarkeit des Dokuments.

Well-Formed ist die Hauptsache

Damit das Dokument mit einem gültigen Format versehen ist und einem Leseprogramm keine Probleme bereiten kann, wird jeder Tag durch den entsprechenden End-Tag, zum Beispiel </Kunde>, abgeschlossen.

Ein Dokument wird erst dann für "well-formed" (gut formatiert) befunden, wenn sämtliche Elemente zwischen Start- und End-Tags eingeschlossen sind. Nur Dokumente, die auf diese Weise korrekt formatiert sind, können erst einmal von einem XML-Parser (einem Leseprogramm) interpretiert werden.

Neben Unterelementen kann jedes Element innerhalb eines Dokuments auch XML-Attribute enthalten, zum Beispiel die Kundennummer KD-NR, die das Kundenelement eindeutig identifiziert.

Beim ersten Blick auf das Beispieldokument kann man also sehen, dass es sich hier um eine Filiale mit dem Kunden "Tom Jordan" und eine seiner Bestellungen handelt. Bei einer flachen Textdatei ohne Struktur wäre eine solche Schnellanalyse der Daten mit bloßem Auge nicht möglich.

Verarbeitung von XML

Da XML ein universelles Textformat zugrunde liegt, kann es von diversen Systemen zu verschiedenen Zwecken gelesen werden. Das Markup (Tags, Elemente, Unterelemente, Attribute und so weiter) eines XML-Dokuments ist eher beschreibender Natur.

Es vermittelt nur die allgemeine Struktur und Definition der Daten. Im Gegensatz dazu verwendet beispielsweise HTML ein prozedurales Markup, da der Internet-Browser sinnvollerweise nur das gesamte Dokument interpretieren und darstellen soll.

Bei XML muss ein Leseprogramm nicht unbedingt das gesamte Dokument einlesen und jedes Element verarbeiten. Stattdessen kann es anhand der Strukturinformation nur auf die Datenbereiche zugreifen, die für die Aufgabe notwendig sind.

Alle gängigen XML-Parser erlauben diesen schnellen Zugriff auf beliebige Elemente sowie das Durchlaufen aller so genannten Knoten, die bestimmte Kriterien erfüllen.

Beim vorherigen Beispieldokument könnte sich ein Parser nur auf die Kundendaten konzentrieren und ganz auf die Bestellungen verzichten.

Darüber hinaus könnten sogar die Bestelldaten aus dem Dokument herausgenommen und an ein anderes System zur Verarbeitung geschickt werden.

In einem weiteren Beitrag zum Thema XML mit Access werden Sie erfahren, wie Sie gezielt auf XML-Knoten zugreifen können.

Ebenso werden Sie den XML-Parser von Microsoft, den Sie auch in Ihren Access-Datenbanken einsetzen können, in einem späteren Beitrag aus diesem Heft kennen lernen.

Vor- und Nachteile von XML

Wie im vorherigen Abschnitt erläutert, hat XML viele Vorteile gegenüber einem flachen Textformat beziehungsweise einem Binärformat:

  • XML liegt ein universelles Unicode-Textformat zugrunde, das von Mensch und Maschine lesbar ist. XML ist also komplett plattformunabhängig. Aufgrund der Unicode-Unterstützung können alle Arten von Text und sogar auch Binärdaten (wie zum Beispiel Grafikdaten) als XML abgespeichert werden.
  • Ein XML-Dokument beschreibt sich selbst. Die Struktur und Definition der Datenelemente ist im Dokument bereits enthalten und kann einfach ausgelesen werden.
  • XML verwendet kein prozedurales Markup. Das bedeutet, der Leser eines XML-Dokuments braucht nur auf die Datenelemente zuzugreifen, die er benötigt.
  • XML ist erweiterbar. Neue Elemente und Attribute können jederzeit hinzugefügt werden.
  • Tools zur Erstellung und zum Lesen von XML, sowohl für den Entwickler als auch für den Endanwender, sind weit verbreitet.
  • XML bringt allerdings auch Nachteile mit sich, unter anderem bei der potenziellen Datenmenge.

    Da die gleichen Tags, zum Beispiel <Kunde>, im selben Dokument immer wieder vorkommen, kann das typische XML-Dokument ziemlich in die Länge gehen und dadurch für längere Übertragungszeiten sorgen.

    Aber auch hier gibt es ein Gegenmittel, nämlich dass XML sich sehr gut komprimieren lässt.

    Gerade wegen der Wiederholung eines Tags wie <Kunde> kann man bei XML sehr hohe Komprimierungsraten erreichen.

    Bei langen Dokumenten empfiehlt es sich also, diese vor einer Übertragung ans Zielsystem zu komprimieren.

    XML im Einsatz: BizTalk

    BizTalk, eine Anwender-Gemeinde von Standards wie XML, wurde von Microsoft gegründet und wird von diversen Konzernen wie SAP und Boeing unterstützt. Das Ziel der BizTalk-Gemeinde ist die schnelle Einführung von XML zur Integration von diversen Anwendungen im Bereich e-Commerce.

    Verschiedene Komponenten tauschen Daten mithilfe von XML-Nachrichten (kurze XML-Dokumente, wie im vorherigen Abschnitt beschrieben) aus und werden somit zu einer neuen gemeinsamen BizTalk-Lösung.

    Auf dem BizTalk-Server von Microsoft unter folgender Adresse können solche integrierten Lösungen installiert und ausgeführt werden:

    www.microsoft.com/biztalk/default.mspx

    BizTalk-Nachrichten

    Das Konzept einer XML-Nachricht in einer BizTalk-Umgebung ist nicht anders als im vorherigen Abschnitt vorgestellt.

    Ein XML-Dokument wird mit Absender, Empfänger und Daten zusammengestellt und an die diversen Komponenten zur Verarbeitung geleitet.

    Eine solche BizTalk-Nachricht könnte beispielsweise wie in Quellcode 1 aussehen.

    Hier sind die gleichen Daten vorhanden wie im ersten Beispiel, nur diesmal mit zusätzlichen Informationen zur Quelle (delivery/from) und zum Ziel (delivery/to) des Dokuments.

    Das Zielsystem erhält das Dokument und kann die Kundendaten im body direkt verarbeiten.

    XML in Microsoft-Datenbanken

    XML findet Einsatz in sehr vielen Bereichen der IT-Welt. Auch Microsoft wollte diesen Zug nicht verpassen und bietet daher XML-Unterstützung in sämtlichen Datenbank- und Office-Produkten. Einschließlich Access, versteht sich.

    XML in SQL Server

    Mit Microsoft SQL Server 2005 kann man beispielsweise XML als Datentyp wählen, um ein komplettes XML-Dokument in ein Tabellenfeld abzulegen.

    Alle Office-Produkte bieten ebenfalls die Möglichkeit, Daten im XML-Format abzuspeichern und wieder zu öffnen - allerdings funktioniert dies derzeit nur reibungslos mit der Anwendung, mit der das Dokument auch erstellt wurde.

    XML in Access

    Auch Microsoft Access kommt im Punkt XML nicht zu kurz.

    Zwar kann man noch nicht XML als Datentyp wählen, aber seit Access 2002 können Sie Tabellen und Abfragen immerhin als XML abspeichern und sogar in HTML zur Anzeige konvertieren lassen.

    Das Exportieren von Access-Tabellendaten in XML können Sie sehr schnell und einfach realisieren:

    Quellcode 1: Beispiel für eine Biztalk-Nachricht

    <biztalk>

        <header>

            <delivery>

                <message>

                    <messageID>12</messageID>

                    <sent>2005-12-10</sent>

                    <subject>Kundendaten</subject>

                </message>

                <to>

                    <address>www.haend1.com/a.asp</address>

                </to>

                <from>

                    <address>mailto:anfr@haend1.de</address>

                </from>

            </delivery>

            <manifest>

                <document>

                    <name>Kundendaten_F1</name>

                    <description> Kundendaten </description>

                </document>

            </manifest>

        <body>

            <Kunden>

                <Kunde KD-NR="459">

                    <Nachname>Jordan</Nachname>

                    <Vorname>Tom</Vorname>

                    <Bestellungen>

                        <Bestellung Bestell-NR="854">

                            <Datum>07.12.2005</Datum>

                        </Bestellung>

                    </Bestellungen>

                </Kunde>

            </Kunden>

        </body>

    </biztalk>

    Der Export erstellt Ihnen mehrere Dateien im ausgewählten Ordner.

    Wenn Sie beispielsweise die Tabelle Versandfirmen aus der Nordwind-Beispieldatenbank in XML exportieren, wird unter anderem eine Datei namens Versandfirmen.xml erstellt, die wie in Quellcode 2 aussieht.

    Das XML-Dokument enthält vier Versandfirmen-Elemente, die den vier Datensätzen aus der ursprünglichen Tabelle entsprechen. Die Unterelemente einer Versandfirma entsprechen ebenfalls den Feldern Firmen-Nr, Firma und Telefon.

    Quellcode 2: Beispiel für den Export von Access-Daten in das XML-Format

    <dataroot>

        <Versandfirmen>

            <Firmen-Nr>1</Firmen-Nr>

            <Firma>Speedy Express</Firma>

            <Telefon>(503) 555-9831</Telefon>

        </Versandfirmen>

        ...

    </dataroot>

    Quellcode 3: HTML-Datei mit den Skripten zum Transformieren der XML-Datei mit der XSL-Datei

    <HTML xmlns:signature="urn:schemas-microsoft-com:office:access">

    <HEAD>

    <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8"/>

    </HEAD>

    <BODY ONLOAD="ApplyTransform()">

    </BODY>

    <SCRIPT LANGUAGE="VBScript">

        Option Explicit

        Function ApplyTransform()

            Dim objData, objStyle

            Set objData = CreateDOM

            LoadDOM objData, "Versandfirmen.xml"

            Set objStyle = CreateDOM

            LoadDOM objStyle, "Versandfirmen.xsl"    

            Document.Open "text/html","replace"

            Document.Write objData.TransformNode(objStyle)

        End Function

        Function CreateDOM()

            On Error Resume Next

            Dim tmpDOM

            Set tmpDOM = Nothing

            Set tmpDOM = CreateObject("MSXML2.DOMDocument.5.0")

            If tmpDOM Is Nothing Then

                Set tmpDOM = CreateObject("MSXML2.DOMDocument.4.0")

            End If

            If tmpDOM Is Nothing Then

                Set tmpDOM = CreateObject("MSXML.DOMDocument")

            End If

            Set CreateDOM = tmpDOM

        End Function

        Function LoadDOM(objDOM, strXMLFile)

            objDOM.Async = False

            objDOM.Load strXMLFile

            If (objDOM.ParseError.ErrorCode <> 0) Then

                MsgBox objDOM.ParseError.Reason

            End If

        End Function

    </SCRIPT>

    </HTML>

    Abb. 1: XML-Daten mithilfe einer XSL-Datei in HTML konvertiert

    XML-Daten mit XSL präsentieren

    Da die XML-Datei natürlich nur Daten und keine Informationen über deren Formatierung enthält, reicht eine solche Datei nicht für eine repräsentative Ausgabe der Daten aus.

    Dazu helfen die weiteren Dateien Versandfirmen.xsl und Versandfirmen.htm aus.

    Die XSL-Datei (Extensible Stylesheet Language) enthält Formatanweisungen an eine XML-Quelldatei, damit die Daten in beliebiger Form angezeigt werden können.

    Die HMTL-Datei enthält ein Stück Skriptcode, der die XSL-Datei und die XML-Datei zusammenbringt. Das Resultat dieser Zusammenführung sehen Sie in Abb. 1.

    Da XML und XSL getrennte Aufgaben haben, könnten Sie die formatierte Ausgabe der Daten ändern, indem Sie nur die XSL-Datei anpassen. An der XML-Datenquelle muss nichts angepasst werden.

    Zusammenfassung und Ausblick

    In diesem Einführungsbeitrag wurde Ihnen ein kurzer Einblick in die Welt von XML geschaffen.

    Die Hintergründe, Anwendungsgebiete und schon mal die einfache Exportmöglichkeit nach XML mit Microsoft Access wurde kurz vorgestellt.

    In den weiteren Beiträgen dieser XML-Serie lassen Sie die Theorie hinter sich und lernen die praktische Seite von XML, vor allem im Zusammenspiel mit Access, kennen.

    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:

    Download

    Download

    Die .zip-Datei enthält folgende Dateien:

    XML.mdb

    Versandfirmen.xml

    Sample.xml

    XML.mdb

    Beispieldateien downloaden

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.