© best_vector/Shutterstock.com
Daten serialisieren in YAML

Kolumne: .NETversum


YAML ist ein textbasiertes Datenformat in Form einer Auszeichnungssprache und zeichnet sich gegenüber HTML, XML und JSON dadurch aus, dass es kompakter und übersichtlicher ist; daher ist es nicht nur für Maschinen, sondern auch für Menschen gut lesbar. Die Abkürzung YAML stand ursprünglich für „Yet Another Markup Language“. Mittlerweile verwendet man YAML als rekursive Abkürzung für „YAML Ain’t Markup Language“. Die erste Version der YAML-Spezifikation von Oren Ben-Kiki, Clark Evans und Brian Ingerson stammt vom 29. Februar 2004. Aktuell ist die Version 1.2 vom 10. Januar 2009 [1].

Einsatzgebiete

YAML wird inzwischen an einigen Stellen als Konfigurationsformat eingesetzt, z. B. in Docker, Kubernetes und seit 2019 auch in Azure DevOps Pipelines zur Definition von Continuous-Integration- und Continuous-Delivery-Prozessen. Grundsätzlich kann YAML aber nicht nur für Konfigurationsdateien, sondern als beliebiges Datenformat eingesetzt werden, auch als Ersatz für XML und JSON. Es gibt zahlreiche Softwarekomponenten zur Serialisierung von Objektmodellen in YAML bzw. zur Deserialisierung von YAML in Objektmodellen in vielen Programmiersprachen und Frameworks, z. B. C/C++, Ruby, Python, Java, Perl, .NET, PHP, Dart und JavaScript.

YAML-Syntax

Die wichtigsten Elemente in YAML sind:

  • Leerzeichen zur Einrückung als Strukturierungselement

  • einfachen Listen (alias Arrays); Listenelemente beginnen mit einem Minuszeichen

  • assoziative Listen (alias Hashes, Maps, Dictionaries) in der Form Name : Wert

  • Einzelwerte (Skalare); diese können, müssen aber nicht in einfachen oder doppelten Anführungszeichen stehen

  • Sprungmarken (Anker) und Verweise (Referenzen): die Sprungmarke beginnt mit dem kaufmännischen &, der Verweis darauf mit einem *

  • Kommentare (beginnen mit #)

  • Abschnitte (---), die eine Datei in mehrere Dokumente teilen können

YamlDotNet

Microsoft selbst liefert im .NET Framework und .NET Core noch keine YAML-Bibliothek mit. Diese Lücke füllt das GitHub-Projekt YamlDotNet [2]. Die kompilierte Bibliothek gibt es auf Nuget [3]. Die erste dort veröffentlichte Version gab es 2013, seitdem sind zahlreiche Versionen erschienen. Die aktuelle Version zum Zeitpunkt der Erstellung des Beitrags ist 6.1.1 vom 4. Juni 2019. YamlDotNet basiert auf .NET Standard 1.3, läuft daher in .NET Core ab Version 1.0 und dem .NET Framework ab Version 4.5 sowie mit Mono und Unity. Die Installation in einem Projekt erfolgt mit dem Install-Package YamlDotNet.

Beispiel

Listing 1 zeigt ein Objektmodell mi...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang