198 votes

pourquoi --- (3 tirets / trait d'union) dans le fichier yaml?

J'ai donc commencé à utiliser YAML le fichier au lieu de application.properties que c'est plus lisible. Je vois en YAML fichiers, ils commencent par ---. J'ai googlé et trouvé l'explication ci-dessous.

YAML utilise trois tirets ("---") pour séparer les directives du document contenu. Cela sert aussi pour signaler le début d'un document, si aucune les directives sont présents.

Aussi, j'ai essayé un échantillon sans --- et ont compris qu'il n'est pas obligatoire.

Je pense que je n'ai pas une compréhension claire de la directive et document. Quelqu'un peut-il expliquer avec un exemple simple?

137voto

Yi Ou Points 615

Comme vous l'avez déjà constaté, les trois tirets --- sont utilisés pour signaler le début d'un document, c'est à dire:

  1. Pour signaler le document de commencer après les directives, c'est à dire, %YAML ou %TAG des lignes en fonction de la spécialisation actuelle. Par exemple:

    %YAML 1.2
    %TAG !foo! !foo-types/
    ---
    myKey: myValue
    
  2. Pour signaler le document de commencer lorsque vous avez plusieurs yaml documents dans le même flux, par exemple, un fichier yaml:

    doc 1
    ---
    doc 2
    

    Si doc 2 a certains précédentes directives, alors nous devons utiliser les trois points ... pour indiquer la fin de la doc 1 (et le début de potentiel directives précédentes doc 2) à l'analyseur. Par exemple:

    doc 1
    ...
    %TAG !bar! !bar-types/
    ---
    doc 2
    

La spécification est bon pour yaml analyseur exécutants. Cependant, je trouve cet article facile à lire à partir d'un point de vue utilisateur.

70voto

Yassin Hajaj Points 4659

Il n'est pas obligatoire si vous ne commencez pas votre YAML avec une directive. Si c'est le cas, vous devez les utiliser.

Jetons un coup d'oeil à la documentation

3.2.3.4. Directives

Chaque document peut être associé à un ensemble de directives. Une directive a un nom et éventuellement une séquence de les paramètres. Les Directives sont des instructions pour le YAML processeur, et comme tous les autres détails de présentation ne sont pas répercutées dans le fichier YAML la sérialisation de l'arbre ou de la représentation graphique. Cette version de YAML définit un deux directives, "YAML" et "TAG". Toutes les autres directives sont réservé pour les futures versions de YAML.

Un exemple de ceci peut également être trouvé dans la documentation de la directive YAML

%YAML 1.2 # Attempt parsing
           # with a warning
---
"foo"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X