Skip to Content

Was ist YAML und können in YAML mehrzeilige Strings geschrieben werden?

YAML ist die Abkürzung für „yet another markup language“ oder „YAML ain't markup language“, wobei letzteres ein rekursives Akronym ist, das verwendet wird, um zu betonen, dass YAML für Daten und nicht für Dokumente gedacht ist. YAML ist eine Sprache zur Serialisierung von Daten, die zum Schreiben von Konfigurationsdateien für die Bereitstellung von Infrastruktur verwendet wird. Zur Bereitstellung einer Docker-Anwendung in Kubernetes würde beispielsweise für die Konfiguration der Instanz eine YAML-Datei verwendet werden. YAML ist für Menschen gut lesbar. Daher ist es einfach, eine Datei zu erstellen und während einer Bereitstellung die Anweisungen in dieser Datei zu lesen.

Wenn Sie sich noch nicht mit YAML beschäftigt haben, werden Sie schnell feststellen, dass Sie nach einer Möglichkeit suchen, wie Sie Ihre Strings auf mehrere Zeilen aufteilen können. Dies ist übrigens die im Internet am häufigsten gestellte Frage zu YAML. In diesem Artikel werden die beiden wichtigsten Konzepte zu mehrzeiligen Strings bei YAML erläutert und einige andere häufig gestellte Fragen beantwortet.

YAML und Leerzeichen: Wissenswertes

In YAML-Dateien werden zwar Leerzeichen und Zeilenumbrüche verwendet, der Inhalt wird jedoch beim Erfassen in einer bestimmten Ressource serialisiert. Entwickler, die eine YAML-Datei erstellen, können den Text mithilfe von Einrückungen und Abständen übersichtlicher formatieren. Bei YAML werden Leerzeichen ähnlich wie in anderen Sprachen behandelt, d. h., es können so viele Leerzeichen verwendet werden, wie zur Formatierung einer Datei benötigt werden.

Zeilenumbrüche bei mehrzeiligen YAML-Strings

Es kann vorkommen, dass beim Erfassen von YAML-Dateien Zeilenumbrüche in einem mehrzeiligen String erhalten bleiben sollen. Nehmen wir den folgenden Pseudocode als Beispiel:

    key:

            item1

            item2

            item3

Am Ende jeder Zeile (z. B. item1, item2 und item3) steht ein Zeilenumbruch. Wenn Sie die YAML-Syntax unverändert lassen, sieht der String wie folgt aus:

item1 item2 item3

Da bei diesem String-Format ein langer String ohne Zeilenumbruchformatierung erstellt wird, wäre es sinnvoll, die Zeilenumbrüche beizubehalten. Zeilenumbrüche können mit dem Literal-Operator beibehalten werden. Der Literal-Operator wird durch das Pipe-Zeichen („|“) dargestellt. Wenn Zeilenumbrüche beibehalten bleiben sollen, muss die YAML-Syntax wie folgt geändert werden:

    key: |

            item1

            item2

            item3

Beachten Sie das Pipe-Zeichen nach der Anweisung „key“. Beim Einlesen der YAML-Datei durch die Anwendung wird diese in den folgenden String konvertiert:

item1\nitem2\nitem3

Das Zeichen „\n“ steht für eine neue Zeile. Bei der Ausgabe dieses Strings an eine Anwendung wird jedes item mit einem angehängten Zeilenumbruch angezeigt, sodass die Formatierung in den YAML-Anweisungen erhalten bleibt.

Mehrzeilige YAML-Blöcke versus lange Strings

Bei langen Strings müssen zum Lesen einer YAML-Datei mehrzeilige Blöcke verwendet werden. Wenn beispielsweise in einer YAML-Datei ein Absatz mit 250 Wörtern enthalten ist, müssen die Sätze in mehrzeilige Blöcke aufgeteilt werden. Die Zeilenumbrüche sollten nur am Ende eines Absatzes beibehalten werden. Eine YAML-Datei kann so formatiert werden, dass bei langen Strings mehrere Zeilen verwendet werden und dass der String so serialisiert wird, dass an jedes item anstelle eines Zeilenumbruchs ein Leerzeichen angehängt wird. 

Wenn anstelle eines Zeilenumbruchs ein Leerzeichen verwendet werden soll, wird der Folded-Operator („>“) verwendet:

    key: >

            item1

            item2

            item3

Wird der Folded-Operator verwendet, wird bei YAML beim Erstellen des Strings ein Leerzeichen eingefügt. Der String sieht wie folgt aus:

item1 item2 item3\n

FAQs zu mehrzeiligen Strings bei YAML

Wie wird in YAML ein Zeilenumbruch eingefügt?

Mit dem Literal-Operator („|“) werden sämtliche Zeilenumbrüche in einem YAML-String beibehalten. Ein Zeilenumbruch wird wie bei jedem anderen Dokument mit der Eingabetaste erstellt. Im folgenden Beispiel bleibt der Zeilenumbruch in einem YAML-String erhalten:

    key: |

            item1

            item2

            item3

Dürfen in einem YAML-String Leerzeilen enthalten sein?

Ja, ein als Textblock dargestellter String darf auch Leerzeilen enthalten. Mit dem Keep-Operator („|+“) bleiben alle Leerzeilen sowie der Zeilenumbruch erhalten. Der folgende YAML-String ist ein Beispiel für einen mehrzeiligen String mit zwei Leerzeilen am Ende des Blocks:

    key: |+

            item1

            item2

            item3

Ein YAML-Parser zeigt auf Basis der obigen Syntax den folgenden String an:

item1\nitem2\nitem3\n\n

Spielen Leerzeichen bei YAML eine Rolle?

Ein mit der Tabulatortaste eingefügtes Leerzeichen ist in YAML ein unzulässiges Zeichen. Daher müssen für Einrückungen normale Leerzeichen verwendet werden. Tabulatoren können in Strings in Anführungszeichen verwendet werden, jedoch nicht zur Formatierung einer YAML-Datei. Dabei ist ein einheitlicher Einzug mit Leerzeichen für die Übersichtlichkeit von Daten wichtig.

Sind in YAML Leerzeichen erlaubt?

Ja, in einer YAML-Datei können normale Leerzeichen verwendet werden. Für Einrückungen sollten Leerzeichen, nicht jedoch das Tabulatorzeichen verwendet werden. Tabulatorzeichen können bei der Analyse einer YAML-Datei Fehler verursachen.

KONTAKTIEREN SIE UNS
Fragen, Kommentare?

Haben Sie eine Frage oder einen Kommentar zu Produkten oder Zertifizierungen von Pure?  Wir helfen Ihnen gerne!

Termin für Demo vereinbaren

Vereinbaren Sie einen Termin für eine Live-Demo und sehen Sie selbst, wie Pure Ihnen helfen kann, Ihre Daten in überzeugende Ergebnisse zu verwandeln. 

Rufen Sie uns an: +49 89 26200662
Presse:
 pr@purestorage.com

 

Pure Storage Germany GmbH

Mies-van-der-Rohe-Straße 6

80807 München

Deutschland

info@purestorage.com

SCHLIESSEN
Ihr Browser wird nicht mehr unterstützt!

Ältere Browser stellen häufig ein Sicherheitsrisiko dar. Um die bestmögliche Erfahrung bei der Nutzung unserer Website zu ermöglichen, führen Sie bitte ein Update auf einen dieser aktuellen Browser durch.