Extensible Markup Language (XML)

Daten mit XML austauschen

XML-Dokumente sind Textdateien für den Datenaustausch zwischen unterschiedlichen Systemen. Im Vergleich zu einfachen Listen in CSV-Dateien, werden die Daten strukturiert und hierarchisch gespeichert.

Einfache Schnittstellen sind teilweise lediglich über XML-Dateien auf SFTP-Servern realisiert, auf die dann periodisch durch Anwendungen zugegriffen wird.

Die XML ist ein W3C-Standard. Zur XML-Familie gehören XSLT für die Gestaltung und Manipulation von XML-Inhalten oder Schema, um die Gültigkeit einer XML-Struktur zu validieren. Neben den Spezifikationen des W3C finden sich auch bei w3schools nützliche Informationen zum Thema.

Attribute

Daten können in Elementen oder in Attributen abgelegt werden. Es ist nicht definiert, welche Daten innerhalb eines XML-Dokuments in Elemente und welche in Attributen abgelegt werden.

Wir versuchen, Attribute zu vermeiden, da diese einige Probleme mit sich bringen:

  • unterstützen im Gegensatz zu Kind-Elementen nur einzelne Werte
  • sind nur schwer erweiterbar, zukünftige Änderungen schwieriger macht
  • es lassen sich im Gegensatz zu Kind-Elementen keine Strukturen beschreiben
  • weniger gut durch Anwendungen änderbar
  • Werte sind weniger einfach validierbar (DTD)

Generell halten wir XML-Dokumente mit vielen Attributen für schlechter lesbar und damit bei Anpassungen für aufwändiger. Am besten beschränkt man den Einsatz von Attributen auf die Informationen, welche für die eigentlichen Daten keine Relevanz haben.

Elemente

Zum Speichern und für den Transport von Daten verwenden wir daher ausschliesslich Elemente. Diese werden soweit atomar zerlegt, dass sich gezielt auf die einzelnen Informationsbestandteile eines Datenobjekts zugreifen lässt.

				
					<news>
					<datum></datum>
					<autor></autor>
					<titel></titel>
					<inhalt></inhalt>
					</news>
				
			

Für die Elemente lassen sich wiederum Kind-Elemente anlegen, so dass beispielsweise der Knoten datum wiederum die Elemente tag, monat und jahr enthalten kann.

Attribute setzen wir ausschliesslich für Metadaten zu den Elementen ein, also für Informationen, die lediglich die Daten beschreiben. Ein Beispiel könnte eine ID für News-Artikel sein: <news id="1" />