YAML-Semantik vergleichen

Füge ein YAML-Dokument ein und prüfe, welche Werte YAML-1.1- oder YAML-1.2-Regeln zufolge unterschiedlich interpretiert würden. Geprüft wird die Semantik, nicht die Syntaxgültigkeit.

Die Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Datei wird niemals hochgeladen.

Anleitung Tool

  1. Füge YAML ein oder lade eine .yaml-/.yml-Datei. Die Daten bleiben im Browser.
  2. Starte die Analyse.
  3. Prüfe jeden markierten Wert, die Bedeutung unter YAML 1.1 und 1.2 sowie den möglichen Unterschied.
  4. Übernimm eine vorgeschlagene portable Schreibweise oder kopiere das vollständig korrigierte Dokument.

Annahmen

Quellen und Referenzdaten

Methodik

Jeder nicht zitierte Skalar wird anhand der Tag-Auflösungsregeln von YAML 1.1 und des Core Schema von YAML 1.2 separat ausgewertet. Abweichungen bei Typ oder resultierendem Wert werden markiert. Boolean-/Null-Abweichungen gelten als wahrscheinlich problematisch; geänderte Zahlen oder Zeitstempel werden zur Prüfung hervorgehoben.

Rechenbeispiel

Das Norwegen-Problem

Eingaben: country: NO

Ergebnis: YAML 1.1 deutet NO als boolesches false, YAML 1.2 als Zeichenfolge "NO". Vorgeschlagen wird `country: "NO"`.

Zahl mit führender Null

Eingaben: retries: 0123

Ergebnis: YAML 1.1 deutet 0123 als Oktalzahl 83, YAML 1.2 als Dezimalzahl 123.

Praktische Hinweise
Häufige Fehler

Häufige Fragen

Warum wird `enabled: yes` zu true?

YAML 1.1 löst yes unabhängig von Groß-/Kleinschreibung als true auf. Das YAML-1.2-Core-Schema erkennt nur true/false als boolesche Werte und behält yes als Zeichenfolge bei.

Was ist das Norwegen-Problem?

NO ist der ISO-Ländercode Norwegens und zugleich in YAML 1.1 ein boolesches false. Daher kann `country: NO` ohne Anführungszeichen als false geladen werden.

Sind zitierte Werte sicher?

Ja. Ein zitierter Skalar wie `"yes"` oder `'NO'` ist ausdrücklich eine Zeichenfolge und wird nicht markiert.

Warum wandelt PyYAML yes oder no in boolesche Werte um?

Der übliche PyYAML SafeLoader nutzt YAML-1.1-artige Boolesche Auflösung. Dieses Werkzeug vergleicht veröffentlichte Schemata; es führt PyYAML nicht aus und prüft keine konkrete Loader-Konfiguration.

Zuletzt geprüft:

Skalar-Auflösungsprüfung, kein vollständiger YAML-Parser: Flow-Sammlungen, Blockskalare, Anker/Aliase und Merge-Keys werden nicht analysiert. Bibliotheken können von den veröffentlichten Schemata abweichen.

Design- und Tool-Einstellungen sowie gespeicherte und zuletzt verwendete Listen werden nur in diesem Browser gespeichert.