XML-Daten: Aufbau & Inhalt

<< Click to Display Table of Contents >>

Navigation:  Shop-Schnittstelle / Auftragsimport > Importdefinition erstellen und anpassen >

XML-Daten: Aufbau & Inhalt

Auftragsdaten werden verstärkt via E-Mail und Internet ausgetauscht. Das XML-Format hat sich dabei als Standard durchgesetzt. Die Vorteile bestehen darin, dass es unabhängig von bestimmten Programmiersprachen oder Betriebssystemen zu verwenden ist und sich sehr leicht weiterverarbeiten lässt, so dass Offenheit und Zukunftssicherheit gewährleistet sind.

 

Was ist XML?

 

XML (eXtensible Markup Language) ist die Weiterentwicklung von HTML für das Darstellen von Seiten im Internet und den allgemeinen Datenaustausch. Im Gegensatz zu HTML-Objekten "weiß" ein XML-Objekt weitgehend, was es inhaltlich darstellt, da bei XML Inhalt und Formatierung getrennt werden.

 

Ein XML-Dokument ist eine Textdatei, die mit einem einfachen Texteditor editiert werden kann. Zur Kontrolle, ob die XML-Datei korrekt formatiert wurde, kann die Datei von einem Internetbrowser angezeigt werden. Der Browser zeigt die hierarchische Struktur des XML-Dokuments.

Ein XML-Dokument besteht aus Elementen, das sind mit Namen versehene Container für Inhalte. Ein Element besteht aus einem sogenannten "Tag" am Anfang, dem eigentlichen Inhalt und einem Tag am Schluss.

 

Beispiel:

<ein_Tag>ein Inhalt</ein_Tag>

 

So lässt sich beispielsweise ein Element <Auftrag> zum Austausch von Auftragsdaten definieren, das noch weitere Unterelemente wie <Kunde> und <Artikel> besitzt.

 

Warum XML?

Die Nutzung von XML zur Datenübertragung hat zwei wesentliche Vorteile:

Zum einen können die Daten sehr einfach durch weitere Komponenten und Tools verarbeitet werden, da XML flexibel ist und nicht von speziellen Programmiersprachen abhängt. Dies ist insbesondere ein Vorteil im Vergleich zu anderen Standards oder binären Datenaustausch-Formaten, die sich nur schwer weiterverarbeiten lassen. Darüber hinaus ist XML mehr oder weniger menschenlesbar, jedenfalls lesbarer als ein binäres Format. Damit können die zwischen Systemen ausgetauschten Daten direkt inspiziert werden, was z. B. die Fehlersuche und auch die Kontrolle des Datenaustauschs erleichtert. Es ermöglicht schließlich auch die manuelle Modifikation von ausgetauschten Daten, etwa beim Aufbau neuer Importformate.

 

Da XML außerdem ein offener, kostenloser Standard ist, ergibt sich aus der Nutzung von XML keine Herstellerabhängigkeit. Darüber hinaus existiert ein großes Angebot an Basis-Tools zur Verarbeitung von XML, wie etwa Parser, Editoren oder Schema-Validierer.

 

Struktur

Beim Auftragsimport sollten die einzulesenden XML-Quelldaten im Idealfall mit folgender Struktur aufgebaut sein:

 

<Hauptknoten>

 <Datensatz, hier Auftragsdatensatz 1>

   <Feld_1>...</Feld_1>

   <Feld_2>...</Feld_2>

   <Detaildatensatz, hier Auftragsposition 1>

     <Feld_1>...</Feld_1>

     <Feld_2>...</Feld_2>

   </Detaildatensatz>

   <Detaildatensatz, hier Auftragsposition 2>

     <Feld_1>...</Feld_1>

     <Feld_2>...</Feld_2>

   </Detaildatensatz>

 </Datensatz>

 

 <Datensatz, hier Auftragsdatensatz 2>

   ...

 </Datensatz>

 

 <Datensatz, hier Auftragsdatensatz 3>

   ...

 </Datensatz>

</Hauptknoten>

 

Die XML-Daten können entweder einen einzelnen Auftrag inkl. Auftragspositionen enthalten oder auch mehrere Aufträge.

 

Wenn ein Auftrag mehrere Artikel bzw. Auftragspositionen enhält, müssen diese strukturiert wie in folgendem Beispiel aufgelistet werden:

 

<Artikel>

 <Menge>1.00</Menge>

 <Bezeichnung>Schrank</Bezeichnung>

 <EPreis>122.50</EPreis>

</Artikel>

<Artikel>

 <Menge>1.00</Menge>

 <Bezeichnung>Rollcontainer</Bezeichnung>

 <EPreis>80.50</EPreis>

</Artikel>

 

Eine Auflistung durch Hochzählen der Tag-Bezeichnung wie im folgenden Beispiel wird nicht unterstützt:

 

<Itemamount_1>1.00</Itemamount_1>

<Itemname_1>Schrank</Itemname_1>

<Itemeprice_1>122.50</Itemeprice_1>

<Itemamount_2>1.00</Itemamount_2>

<Itemname_2>Rollcontainer</Itemname_2>

<Itemeprice_2>80.50</Itemeprice_2>

 

Inhalt

Der Inhalt eines XML-Tags wird 1 zu 1 in das Zielfeld übernommen, das dem Tag über die Importdefinition zugeordnet wurde.

 

CDATA für Sonderzeichen

Wenn der Inhalt in einem <Tag> mit CDATA umschlossen ist, wird nur der Inhalt innerhalb [] übernommen.

 

Beispiel:

 

<Ort><![CDATA[Paderborn]]></Ort>

 

entspricht

 

<Ort>Paderborn</Ort>

 

Der Ausdruck <![CDATA[Feldinhalt]]> wird verwendet, um auszuschließen, dass in der XML-Datei Fehler auftreten, wenn in den Feldinhalten bestimmte Sonderzeichen auftreten (z.B. < oder >) . Diese Sonderzeichen würden den Aufbau der XML-Datei zerstören und unbrauchbar machen.

 

Der folgende Artikeltext mit Sonderzeichen wird korrekt verarbeitet...

 

<Text><![CDATA[Dieser Text enthält die Sonderzeichen < und >]]></Text>

 

... der folgende Text kann zu einem Fehler führen:

 

<Text>Artikeltext enthält die Sonderzeichen < und ></Ort>

 

Mehrfache Wiederholung eines identischen Tags

Wenn ein und derselbe Tag mehrfach vorkommt wie im folgenden Beispiel, dann wird nur der Inhalt aus dem letzten Tag übernommen (diese Einschränkung gilt nicht für Auftragspositionen).

 

<ram:IncludedNote>

   <ram:Content>Rechnung gemäß Bestellung 4711 vom 01.07.2018.</ram:Content>

</ram:IncludedNote>

<ram:IncludedNote>

   <ram:Content>Es bestehen Rabatt- und Bonusvereinbarungen.</ram:Content>

</ram:IncludedNote>