web-dev-qa-db-fra.com

Validation de schéma YAML?

Existe-t-il un langage de validation de schéma pour YAML? J'ai googlé mais je n'ai rien trouvé d'utile.

Quelque chose comme le format XSD, utilisant le langage lui-même pour décrire le schéma, serait le meilleur choix dans mon cas. 

47
Klaim

JSON Schema peut être utilisé avec la plupart des documents YAML. Il en résulte une solution plus portable et mieux documentée que Rx ou Kwalify . JSON Schema est le seul des trois pour lesquels j'ai pu trouver editor support .

Plus des informations sur l’utilisation de YAML et JSON Schema, y ​​compris les outils et le support des éditeurs, sont suivies sur cette page . Au moment de la rédaction de ce document, Visual Studio Code prend en charge les éditeurs et un outil de validation basé sur la ligne de commande est disponible via npm.


Divulgation complète: Je suis l'auteur du site Web lié ci-dessus pour tenter de rendre l'application de JSON Schema to YAML plus facile à découvrir. J'ai également écrit une extension de l'éditeur pour VS Code qui a depuis été remplacée par l'extension RedHat liée ci-dessus.

21
vossad01

Essayez Kwalify (Ruby et Java uniquement) ou Rx (plusieurs langues)

17
leebriggs

Je me demande s'il serait logique de réutiliser le schéma JSON pour cela. YAML peut être facilement converti en JSON sans perdre aucune information (?). En théorie, YAML pourrait donc être validé par la même chaîne d'outils, ce qui permettrait à la communauté open source de se concentrer sur une seule bonne chaîne d'outils de schéma. Le schéma lui-même pourrait également être écrit en YAML et converti en JSON.

2
Yurik

Bonne idée. Googlé cela parce que je cherchais le même.

Il est possible de convertir YAML en XML de manière définie (comme JSON <-> XML) et de le valider avec un validateur XML standard.

Selon votre plate-forme, il existe des outils ou des extraits pour cette conversion: JavaScript (NPM) , Ruby , Java (Jackson) , Java (TestNG) besoin de voir la source pour quels paramètres il veut).

Si cela est fait en utilisant une API, les positions d'erreur peuvent même être remises en correspondance avec le fichier YAML d'origine.

0
Ondra Žižka