wake-up-neo.com

YAML-Schema-Validierung?

Gibt es eine Schemaüberprüfungssprache für YAML? Ich habe gegoogelt, aber nichts Nützliches gefunden.

Etwas wie das XSD-Format, bei dem die Sprache selbst zur Beschreibung des Schemas verwendet wird, wäre in meinem Fall die beste Wahl. 

47
Klaim

JSON Schema kann mit den meisten YAML-Dokumenten verwendet werden, was zu einer tragbareren und besser dokumentierten Lösung führt als Rx oder Kwalify . JSON Schema ist das einzige der drei, für das ich editor support gefunden habe.

Weitere Informationen zur Verwendung von YAML und JSON-Schema, einschließlich Unterstützung für Werkzeuge und Editoren, finden Sie auf dieser Seite . Zum Zeitpunkt des Schreibens gibt es Editorunterstützung in Visual Studio Code und ein auf Befehlszeilen basierendes Überprüfungstool, das über npm verfügbar ist.


Vollständige Offenlegung: Ich habe die oben verlinkte Website erstellt, um zu versuchen, die Anwendung des JSON-Schemas für YAML auffindbarer zu machen. Ich habe auch eine Editor-Erweiterung für VS Code geschrieben, die inzwischen durch die oben verlinkte RedHat-Erweiterung ersetzt wurde.

21
vossad01

Versuchen Sie Kwalify (nur Ruby und Java) oder Rx (viele Sprachen)

17
leebriggs

Ich frage mich, ob es sinnvoll wäre, das JSON-Schema dafür wiederzuverwenden. YAML kann leicht in JSON konvertiert werden, ohne dass Informationen verloren gehen (?). Theoretisch könnte YAML von derselben Toolkette validiert werden, sodass sich die Open Source-Community auf eine gute Schema-Toolkette konzentrieren kann. Das Schema selbst könnte auch in YAML geschrieben und in JSON konvertiert werden.

2
Yurik

Gute Idee. Googled dies, weil ich das gleiche suchte.

Es ist möglich, YAML auf definierte Weise (ähnlich wie JSON <-> XML) in XML zu konvertieren und mit einem Standard-XML-Validator zu validieren.

Je nach Plattform gibt es Tools oder Snippets für diese Konvertierung: JavaScript (NPM) , Ruby , Java (Jackson) , Java (TestNG) (du wirst müssen Sie die Quelle für die gewünschten Parameter sehen).

Bei Verwendung einer API können die Fehlerpositionen sogar wieder der ursprünglichen YAML-Datei zugeordnet werden.

0
Ondra Žižka