Bei YAML handelt es sich wie bei JSON und XML um eine sogenannte Auszeichnungssprache (Markup Language) zur Datenserialisierung, die Daten eine gewisse Struktur verleiht. YAML wird allerdings ähnlich wie JSON (JavaScript Object Notation) in erster Linie für die Datenspeicherung in einer für den Menschen gut lesbaren Form genutzt. Von XML und JSON unterscheidet sich YAML vor allem durch den leichtgewichtigen Ansatz und einen expliziten Verzicht auf SGML-Kompatibilität.

Allgemeine Informationen

YAML stand ursprünglich für „Yet Another Markup Language“, doch bereits seit 2002 bezieht sich die Bezeichnung auf das rekursive Akronym „YAML Ain’t Markup Language“. Somit definiert sich YAML als keine reine Auszeichnungssprache, sondern in erster Linie als ein Format für die Serialisierung verschiedener Daten. Es gibt durchaus auch vergleichbare Lösungen, die sowohl den Bereich der Serialisierung als auch die Auszeichnung der Daten abdecken können. Ein prominentes Beispiel hierfür ist die Auszeichnungssprache XML (Extensible Markup Language), die grundsätzlich als Ersatz für YAML als auch HTML fungieren könnte. Der wichtigste Vorteil von YAML ist allerdings die Schlankheit und Flexibilität der Lösung, die insbesondere im Kontext moderner Cloud-Umgebungen zur Geltung kommt. Die größte Konkurrenz für YAML ist jedoch nicht XML, sondern das Format für die Serialisierung von Daten JSON.

JSON oder YAML

Bei JSON (JavaScript Object Notation) handelt es sich um ein beliebtes Format für die Serialisierung von Daten, das aus dem Bereich der JavaScript-Web-Anwendungen stammt. YAML und JSON stellen ähnliche Funktionen und Features bereit. Seit der Version 1.2 wird YAML als ein Superset von JSON entwickelt, sodass es das Format in allen Anwendungen ohne Anpassung direkt ersetzen kann. Der Hauptunterschied zwischen diesen beiden Formaten spiegelt sich in erster Linie in der Zielsetzung wider. Während JSON einen hohen Wert auf die Einfachheit der Anwendung legt, sollen Daten, die mittels YAML formatiert sind, nicht nur für den Menschen, sondern auch für Maschinen möglichst gut lesbar sein.

Funktionsweise im Überblick

Die Auszeichnungssprache zur Datenserialisierung exportiert Daten aus einer programminternen Form in ein Format, das sich als eine gewöhnliche Textdatei abspeichern lässt. Damit die Umwandlung auch für komplexere Datentypen wie beispielsweise binäre Bäume oder mehrdimensionale Arrays möglich ist, werden alle Elemente sequentiell ausgegeben. Daher kommt auch der Name Serialisierung. YAML erstellt dabei eine hierarchische Struktur, die durch die Einrückung mit Leerzeichen sichtbar wird, wie es auch beispielsweise bei der Programmiersprache Python der Fall ist. Es kommen allerdings auch geschweifte und eckige Klammern zum Einsatz, um bestimmte Befehle zu implementieren.

Mehr zum Thema:
Was ist PRTG?

YAML erlaubt jedoch nicht den Einsatz von sogenannten „Tabulatoren“, da es nicht gewährleistete ist, dass diese korrekt interpretiert werden und von verschiedenen Programmen nicht eindeutig ausgeführt werden. Die Serialisierung der Daten kann für eine Vielzahl unterschiedlicher Zwecke genutzt werden. So lässt sie sich beispielsweise nutzen, um einen konkreten Programmzustand zu erhalten. Hier wird YAML auch oft eingesetzt, um Laufzeitkonfigurationen in Konfigurationsdateien zu speichern. Eine weitere wichtige Anwendung ist die Übertragung von Daten zwischen zwei oder mehreren Computern, die über ein Netzwerk, wie beispielsweise das Internet, miteinander verbunden sind.

Welche Datentypen lassen sich mit YAML verarbeiten?

Die Auszeichnungssprache zur Datenserialisierung bietet eine native Unterstützung für eine Vielzahl von unterschiedlichen Datentypen, die auch im Rahmen der Programmiersprache PERL eingesetzt werden. Hierzu gehören:

– Listen und Arrays: Unterstützt werden eindimensionale Arrays, wobei auch mehrdimensionale Arrays möglich sind, da sich Listenelemente aus weiteren Listen zusammensetzen können.

– Hashtabellen: Diese Datenstrukturen sind auch unter der Bezeichnung Dictionaries oder assoziative Arrays bekannt.

– Skalare und Einzelwerte: Hierzu gehören Zahlen und Zeichenkette

Darüber hinaus ermöglicht YAML mit einer Syntax, die im Rahmen der MIME-Spezifikation üblicherweise bei E-Mail-Services zum Einsatz kommt, die Konsolidierung mehrerer Datensätze, um diese gemeinsam übertragen zu können. Damit lässt sich die Serialisierung und Übertragung von Daten schneller realisieren, was automatisch auch zu einer geringeren Latenz führt.

Fazit

Aufgrund der simplen Struktur und unkomplizierten Syntax wird YAML bei großen Datentransfers und im Rahmen von Konfigurationsdateien, wie beispielsweise bei Server-Setups, eingesetzt. Durch die ausgezeichnete Kompatibilität zu anderen Auszeichnungssprachen wie XML, HTML oder JSON ist dieses Format nahezu prädestiniert, um einfach lesbare und performante Anwendungsgebiete zu ermöglichen. Gegenüber JSON und XML ist YAML viel einfacher einsetzen, da die Notation noch simpler ist und eine maximale Kompatibilität zu gängigen Datentypen und Datenstrukturen bereitstellt. Eine YAML-Datei lässt sich außerdem schnell und unkompliziert in das JSON-Format umwandeln. Darüber hinaus ist YAML-Code im direkten Vergleich zu XML oder JSON wesentlich effizienter und einfacher lesbar.

Letzte Artikel von Daniel Faust (Alle anzeigen)