Vérificateur de différences sémantiques YAML

Collez un document YAML pour voir précisément quelles valeurs seraient interprétées différemment selon que l'analyseur suit les règles de résolution des balises YAML 1.1 ou YAML 1.2. Il ne vérifie pas la syntaxe : il vérifie la sémantique.

Traitement effectué localement dans votre navigateur. Votre fichier n’est jamais téléversé.

Comment utiliser cet outil outil

  1. Collez votre YAML ou chargez un fichier .yaml/.yml ; rien ne quitte votre navigateur.
  2. Sélectionnez « Vérifier le YAML ».
  3. Examinez chaque valeur signalée : son sens en YAML 1.1, son sens en YAML 1.2 et l'importance de la différence.
  4. Utilisez la réécriture portable proposée ou copiez le document corrigé complet pour supprimer l'ambiguïté.

Hypothèses

Sources et données de référence

Méthodologie

Chaque scalaire non entre guillemets est résolu séparément selon les expressions régulières de résolution des balises de YAML 1.1 et de Core Schema de YAML 1.2. Toute divergence de type ou de valeur est signalée. Une divergence booléen/null est considérée comme probablement problématique, car elle peut inverser silencieusement la logique vrai/faux ; une divergence numérique ou d'horodatage est signalée pour vérification, car le type ou la valeur change sans nécessairement inverser directement une condition.

Exemple détaillé

Le classique « problème de la Norvège »

Données d’entrée: country: NO

Résultat: YAML 1.1 lit NO comme le booléen false ; YAML 1.2 le lit comme la chaîne "NO". Le cas est signalé comme probablement problématique et une correction `country: "NO"` est proposée.

Nombre avec zéro initial

Données d’entrée: retries: 0123

Résultat: YAML 1.1 lit 0123 comme un octal (83) ; YAML 1.2 comme un décimal (123) : le même texte représente deux nombres différents.

Conseils pratiques
Erreurs fréquentes

Questions fréquentes

Pourquoi `enabled: yes` devient-il true ?

Dans la liste des mots booléens de YAML 1.1, "yes" (quelle que soit la casse) est résolu en true. Le Core Schema de YAML 1.2 ne reconnaît que true/false comme booléens ; le même texte reste donc la chaîne "yes".

Qu'est-ce que le problème de la Norvège en YAML ?

Le code pays ISO de la Norvège, NO, est aussi l'un des mots que YAML 1.1 reconnaît comme booléen false. Ainsi, sans guillemets, `country: NO` devient silencieusement `country: false` avec un analyseur YAML 1.1.

Mettre une valeur entre guillemets la rend-il toujours sûre ?

Oui. Un scalaire entre guillemets ("yes", 'NO') est explicitement une chaîne dans tous les schémas YAML. L'outil ne signale jamais une valeur déjà entre guillemets.

Pourquoi PyYAML peut-il convertir `yes` ou `no` en booléen ?

Le SafeLoader de PyYAML couramment utilisé applique une résolution booléenne de type YAML 1.1, où `yes` non cité vaut true et `no` vaut false. Ainsi `country: NO` peut être chargé comme booléen, tandis que le Core Schema YAML 1.2 conserve NO comme chaîne. Cet outil compare les règles publiées des schémas ; il n'exécute pas PyYAML et ne vérifie pas la configuration d'un chargeur particulier.

Dernière vérification : 2026-09-25

Vérificateur de résolution des scalaires, pas analyseur YAML complet : les collections flow, scalaires bloc, ancres/alias et clés de fusion ne sont pas analysés (l'outil de pré-vérification YAML inter-environnements couvre davantage de cas). Compare les deux schémas publiés, pas le comportement d'une bibliothèque particulière, qui peut différer de la spécification.

Les préférences de thème et d’outils, ainsi que les listes enregistrées et récemment utilisées, sont stockées uniquement dans ce navigateur.