CSV-zu-XMLkonverter

Wissen · 7 Min. Lesezeit

Root- und Datensatz-Element beim CSV-zu-XML: was du eintragen solltest

Root- und Datensatz-Element beim Umwandeln von CSV in XML verständlich erklärt: Warum XML genau ein Wurzelelement braucht, wie du Root-Name und Row-Name sinnvoll wählst und welche Regeln für gültige XML-Tag-Namen gelten.

Eike-Christian Ramcke
Eike-Christian Ramcke Veröffentlicht Geprüft

Kurz gesagt

Beim Umwandeln von CSV in XML legst du zwei Namen fest: das Root-Element (Wurzel, Standard root) umschließt das gesamte Dokument, das Datensatz-Element (Standard row) steht für jede CSV-Zeile. Sinnvolle Paare sind Plural und Singular, etwa produkte und produkt. Achte auf gültige XML-Tag-Namen: kein Start mit einer Ziffer, keine Leerzeichen. Spaltennamen normalisiert der Konverter automatisch.

Was ist ein Root-Element?

XML ist anders aufgebaut als CSV. Während eine CSV-Datei einfach Zeile für Zeile aufgelistet ist, bildet XML einen Baum. Jeder Baum hat genau einen Stamm, und dieser Stamm heißt in XML Root-Element oder Wurzelelement. Es ist das äußerste Element der Datei und umschließt alles andere. Ein XML-Dokument ohne Root-Element oder mit zwei Wurzeln auf oberster Ebene ist technisch ungültig und wird von vielen Programmen abgelehnt.

Genau deshalb braucht der Konverter beim Erzeugen einer XML-Datei aus deinen CSV-Daten einen Namen für dieses Wurzelelement. Standardmäßig nennt er es root. Das funktioniert, ist aber wenig aussagekräftig. Ein sprechender Name macht die Datei für Menschen und Zielsysteme leichter lesbar.

Was ist das Datensatz-Element?

Innerhalb des Root-Elements wiederholt sich ein zweites Element für jede einzelne Zeile deiner CSV-Datei. Das ist das Datensatz-Element, im Tool als Row-Name bezeichnet, Standard row. Hat deine CSV-Datei 200 Datenzeilen, entstehen 200 dieser Elemente. Jedes davon enthält die Spaltenwerte einer Zeile als Kind-Elemente. Die Namen dieser Kind-Elemente stammen aus den Spaltenüberschriften der ersten Zeile.

Das Zusammenspiel ist also dreistufig: das Root-Element als Container, darunter pro Zeile ein Datensatz-Element und darunter wiederum ein Element je Spalte. Wer das einmal verstanden hat, kann die Struktur der erzeugten XML-Datei genau vorhersagen.

Warum braucht XML überhaupt zwingend genau ein Wurzelelement? Der Grund liegt im Wesen des Formats. XML beschreibt einen Baum, und ein Baum hat per Definition genau einen Stamm, von dem alles ausgeht. Stünden auf oberster Ebene zwei gleichrangige Elemente nebeneinander, gäbe es zwei Stämme und damit keinen eindeutigen Einstiegspunkt mehr. Genau deshalb gilt eine Datei mit zwei Wurzeln als nicht wohlgeformt, und Parser brechen die Verarbeitung mit einer Fehlermeldung ab. Eine CSV-Datei kennt dieses Problem nicht, weil sie schlicht eine Liste von Zeilen ist, ohne umschließende Klammer. Beim Schritt von CSV zu XML muss diese Klammer also erst entstehen, und das ist genau die Aufgabe des Root-Elements. Ohne es ließe sich aus der flachen Liste kein gültiger Baum bilden.

Beispiel: CSV mit eigenem Root und Row

Angenommen, du hast eine kleine Produktliste als CSV und möchtest sie für ein Shop-System aufbereiten. Die CSV sieht so aus:

artikelnummer,name,preis
1001,Schreibtisch,199.00
1002,Bürostuhl,149.90

Wählst du im Konverter als Root-Name produkte und als Row-Name produkt, erhältst du diese XML:

<?xml version="1.0" encoding="UTF-8"?>
<produkte>
  <produkt>
    <artikelnummer>1001</artikelnummer>
    <name>Schreibtisch</name>
    <preis>199.00</preis>
  </produkt>
  <produkt>
    <artikelnummer>1002</artikelnummer>
    <name>Bürostuhl</name>
    <preis>149.90</preis>
  </produkt>
</produkte>

Die Struktur ist sofort lesbar: produkte umschließt alles, jedes produkt ist eine Zeile, die Spalten werden zu Kind-Elementen. Du kannst den ganzen Vorgang direkt im CSV-zu-XML-Konverter ausprobieren, ohne Upload und ohne Konto.

Sinnvolle Namen je Zielsystem

Welche Namen die richtigen sind, hängt vom Zielsystem ab. Oft gibt eine Schnittstellenbeschreibung oder ein Importschema die Element-Namen genau vor. Ist nichts vorgegeben, hat sich das Paar aus Plural und Singular bewährt:

Anwendungsfall Root-Name Row-Name
Produktkatalog produkte produkt
Kundenliste kunden kunde
Bestellungen bestellungen bestellung
Allgemein root row

Wer Produktdaten für einen Online-Shop aufbereitet, findet im Ratgeber Produktdaten von CSV nach XML für den Shop konkrete Beispiele für typische Schnittstellen.

Regeln für gültige XML-Tag-Namen

Nicht jeder beliebige Text ist als XML-Element-Name erlaubt. Damit die erzeugte Datei gültig bleibt, gelten ein paar Regeln, die du sowohl bei Root- und Row-Namen als auch bei deinen Spaltenüberschriften beachten solltest:

  • Der Name darf nicht mit einer Ziffer beginnen. 2024_umsatz ist ungültig, umsatz_2024 ist erlaubt.
  • Der Name darf keine Leerzeichen enthalten. Aus Vor Name muss Vor_Name werden.
  • Erlaubt sind Buchstaben, Ziffern, Bindestrich, Unterstrich und Punkt. Das erste Zeichen muss ein Buchstabe oder Unterstrich sein.
  • Der Name darf nicht mit der Zeichenfolge xml beginnen, das ist reserviert.
  • Umlaute sind technisch erlaubt, manche Zielsysteme kommen damit aber schlecht zurecht. Im Zweifel lieber strasse als straße.

Wie das Tool Spaltennamen normalisiert

Du musst dich um diese Regeln nicht selbst kümmern. Der Konverter normalisiert die Spaltennamen automatisch zu gültigen XML-Tags. Leerzeichen werden zu Unterstrichen, nicht erlaubte Sonderzeichen entfernt, und beginnt eine Spaltenüberschrift mit einer Ziffer, stellt der Konverter einen Unterstrich voran. Eine leere oder unbenannte Spalte bekommt einen generischen Ersatznamen wie spalte_1. Das Ergebnis ist immer eine wohlgeformte XML-Datei. Trotzdem lohnt es sich, schon in der CSV saubere Überschriften zu vergeben, weil die Tags dann genau so heißen, wie du es erwartest. Die Grundlagen zum Quellformat findest du im Ratgeber CSV in XML umwandeln.

Ein praktischer Tipp aus dem Alltag: Wenn ein Zielsystem die XML nicht annimmt, liegt es überraschend oft an den Element-Namen, nicht an den Werten. Manche Importschnittstellen erwarten exakt vorgegebene Tag-Namen, oft sogar mit bestimmter Groß- und Kleinschreibung. Lohnt sich also ein Blick in die Dokumentation des Zielsystems, bevor du Root- und Row-Namen festlegst. Steht dort beispielsweise, dass jeder Datensatz als item innerhalb von catalog erwartet wird, trägst du genau diese Namen ein. Die Spaltennamen deiner CSV bestimmen wiederum die Namen der Felder innerhalb eines Datensatzes. Passt du die Überschriften in der CSV vorab an die erwarteten Feldnamen an, ersparst du dir spätere Korrekturen. So entsteht aus einer simplen Tabelle eine XML, die das Zielsystem ohne Murren einliest.

Häufige Fragen

Was ist das Root-Element in einer XML-Datei?

Das äußerste Element, das alle anderen umschließt. Jede gültige XML-Datei hat genau ein Root-Element. Standardmäßig heißt es im Konverter root.

Was ist das Datensatz-Element?

Das wiederholte Element, das jede CSV-Zeile abbildet, Standard row. Darin stehen die Spaltenwerte als Kind-Elemente.

Welche Namen sollte ich wählen?

Sprechende Namen, meist Plural für den Container und Singular für den Datensatz, etwa produkte und produkt oder kunden und kunde.

Was passiert mit ungültigen Spaltennamen?

Der Konverter normalisiert sie automatisch: Leerzeichen werden zu Unterstrichen, ungültige Zeichen entfernt, führende Ziffern bekommen einen Unterstrich vorangestellt.

Weiterführende Artikel

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige