DevToolBoxKOSTENLOS
Blog

YAML Syntax & Validierung: Häufige Fehler und Lösungen

9 Min. Lesezeitvon DevToolBox

YAML ist das Standard-Konfigurationsformat für Docker, Kubernetes und CI/CD-Pipelines. Trotz der menschenfreundlichen Syntax ist es überraschend fehleranfällig.

Wo YAML verwendet wird

  • Docker Compose
  • Kubernetes Manifeste
  • GitHub Actions / GitLab CI
  • Ansible Playbooks
  • Konfigurationsdateien

Grundlegende Syntaxregeln

Einrückung

YAML verwendet Leerzeichen (keine Tabs):

# ✅ Correct (2-space indentation)
server:
  host: localhost
  port: 8080
  database:
    name: myapp
    pool: 10

# ❌ Wrong (tab characters or inconsistent spaces)
server:
	host: localhost    # Tab character - INVALID!
   port: 8080        # 3 spaces - inconsistent!

Schlüssel-Wert-Paare

Durch Doppelpunkt und Leerzeichen getrennt:

# ✅ Correct
name: John Doe
port: 8080

# ❌ Wrong - missing space after colon
name:John Doe

Mehrzeilige Strings

YAML bietet zwei Block-Skalar-Stile:

# | (literal block) - preserves newlines
description: |
  This is line one.
  This is line two.
  Each newline is preserved.

# > (folded block) - folds newlines to spaces
description: >
  This is a long paragraph
  that will be joined into
  a single line.

Datentypen

TypSyntaxBeispiel
Stringplain, "quoted", 'quoted'name: John
Integer42, 0xFF, 0o77port: 8080
Float3.14, .inf, .nanpi: 3.14159
Booleantrue/falsedebug: true
Nullnull, ~, (empty)value: null
DateYYYY-MM-DDdate: 2026-02-10

Das "Norwegen-Problem"

In YAML 1.1 wird `NO` als boolean `false` interpretiert:

# ❌ YAML 1.1 interprets these as booleans!
country: NO        # → false
answer: yes        # → true
switch: on         # → true

# ✅ Fix: quote the values
country: "NO"      # → string "NO"
answer: "yes"      # → string "yes"
switch: "on"       # → string "on"

Sammlungen

# List (sequence)
fruits:
  - apple
  - banana
  - cherry

# Nested map
database:
  host: localhost
  port: 5432
  credentials:
    user: admin
    password: secret

# Inline / Flow style
fruits: [apple, banana, cherry]
point: {x: 10, y: 20}

Top 10 YAML-Fehler

#FehlerUrsacheLösung
1Tab-ZeichenTabs für EinrückungDurch Leerzeichen ersetzen
2Inkonsistente Einrückung2 und 4 Leerzeichen gemischtEinheitlich einrücken
3Fehlendes Leerzeichen`key:value`Leerzeichen nach `:` einfügen
4Ungequotete SonderzeichenWerte mit : oder # ohne AnführungszeichenIn Anführungszeichen setzen
5Boolean-Konvertierungyes/no als BooleanAnführungszeichen verwenden
6Strings mit DoppelpunktURLs brechenGesamten Wert quoten
7Doppelte SchlüsselGleicher Schlüssel zweimalDuplikate entfernen
8Nachfolgende LeerzeichenUnsichtbare LeerzeichenEditor konfigurieren
9Listen-EinrückungsfehlerItems nicht ausgerichtet`-` ausrichten
10Fehlender DokumenttrennerMehrere Dokumente ohne `---``---` hinzufügen

YAML vs JSON vs TOML

FunktionYAMLJSONTOML
Comments# supportNone# support
Multi-line strings| and >\\n only""" triple quotes
Data typesRich (dates, etc.)Basic (6 types)Rich (dates, etc.)
ReadabilityHighMediumHigh
Machine parsingComplexSimpleMedium
Best forConfig filesAPIs, data exchangeApp config

Best Practices

  • YAML-Linter in CI/CD verwenden
  • Leerzeichen im Editor anzeigen
  • 2 Leerzeichen verwenden
  • Mehrdeutige Strings quoten
  • Schema-Validierung nutzen
  • Dateien klein und modular halten

FAQ

Kann man Tabs in YAML verwenden?

Nein. YAML verbietet strikt Tab-Zeichen für die Einrückung.

Unterschied zwischen einfachen und doppelten Anführungszeichen?

Einfache: literale Strings. Doppelte: Escape-Sequenzen erlaubt.

Wie stellt man null dar?

`null`, `~`, oder leerer Wert.

Warum behandelt YAML "NO" als false?

YAML 1.1 behandelt yes/no als Boolean. YAML 1.2 erkennt nur true/false.

𝕏 Twitterin LinkedIn
War das hilfreich?

Bleiben Sie informiert

Wöchentliche Dev-Tipps und neue Tools.

Kein Spam. Jederzeit abbestellbar.

Verwandte Tools ausprobieren

YMLYAML Validator & FormatterY{}JSON ↔ YAML ConverterTYTOML ↔ YAML🐳Docker Compose Generator

Verwandte Artikel

JSON zu Dart: Vollständiger Flutter Model-Klassen Guide

JSON in Dart Model-Klassen für Flutter konvertieren. fromJson, toJson, Null Safety und json_serializable.

Docker Compose YAML-Validierung: 10 häufige Syntaxfehler und ihre Behebung

Verschwenden Sie keine Zeit mit Docker Compose YAML-Fehlern. Lernen Sie die 10 häufigsten Syntaxfehler zu erkennen und zu beheben.

JSON Schema Validierung: Typen, Tools und Best Practices

Alles über JSON Schema Validierung: von Basistypen über erweiterte Muster, Validierungsbibliotheken bis zur Integration mit TypeScript und APIs.

JSON-YAML Konverter Online Guide: Syntax, Tools und Best Practices

Kompletter Leitfaden zur JSON-YAML-Konvertierung. Syntax, js-yaml, PyYAML, yq CLI, Kubernetes, Docker Compose, YAML-Fallstricke und Sicherheit.