yamlDémarrer avec yaml

Remarques

YAML est un acronyme récursif pour " Y AML A in't M arkup L anguage". C'est un standard de sérialisation de données lisible par l'homme pour tous les langages de programmation.

Versions

Version Date de sortie
1.0 2004-01-29
1.1 2005-01-18
1.2 2009-10-01

Syntaxe de base de Yaml

YAML est un format texte permettant de stocker des données structurées dans une hiérarchie. YAML est conçu pour être lisible par l'homme et par la machine avec un minimum de surcharge. La spécification YAML peut être trouvée sur yaml.org . Il y a aussi une carte de référence

Les commentaires commencent par # et vont jusqu'à newline, les commentaires doivent être séparés des autres jetons par des espaces. Les espaces ne sont pas gratuits, l'indentation doit être des espaces, pas des tabulations. YAML considérera que les lignes préfixées avec plus d'espaces que la clé parente sont contenues à l'intérieur. De plus, toutes les lignes doivent être précédées du même nombre d’espaces pour appartenir à la même carte.

YAML a des séquences et des mappages en tant que types de collection, les deux peuvent être représentés en flux et en style de bloc.

Une séquence de chaînes scalaires dans YAML ressemble à:

[ one, two, three ]   # flow style

# or block style

- one
- two
- three

Un mappage est constitué de paires clé / valeur:

index: 4  # block style
name: nali

# or 

{ index: 4, name: nali }   # flow style

# or nested (equivalent of { level: { one: { two: fun } } }):

level:

  one:

    two: fun

Types de base YAML

integer: 25
string: "25"
float: 25.0
boolean: true
null type: null

Données séquentielles YAML

Même niveau de liste:

- Cat
- Dog
- Goldfish

Liste imbriquée:

-
 - Cat
 - Dog
 - Goldfish

commentaires

# This comment occupies a whole line
- some item # This comment succeeds content of a line
- http://example.com/#nocomment
- "This # does not introduce a comment."
- |
    This is a block scalar.
    A # inside it does not introduce a comment.
   # unless it is less indented than the first line (this is one)

Notez que pour qu'un # introduise un commentaire, il doit soit

  • se produire au début d'une ligne, ou
  • être précédé par des espaces.

# doit toujours être suivi par des espaces. # intérieur des scalaires entre guillemets ne démarrent jamais de commentaires. # peut introduire des commentaires à la fin des scalaires des blocs, mais par conséquent, il doit être moins indenté que l'indentation de base du scalaire du bloc (qui est généralement déterminé par l'indentation de sa première ligne non vide).

Mappages de style de bloc

Avec des clés implicites:

key: value
another key:
  - some
  - more
  - values
[1, 2, 3]: last value, which has a flow style key

Avec des clés implicites et explicites:

? key
: value
another key:
  - some
  - more
  - values
? [1, 2, 3]
: last value, which has a flow style key

key , another key et [1, 2, 3] sont des clés du même mappage, bien qu'elles utilisent des styles de clé différents.


Mappages imbriqués:

first level:
  second level:
    ? third level
    :
      forth level: value of implicit key
    ? third level, second key
    : value of explicit key
  ?
    mapping as: key of
    another: mapping
  : scalar value of mapping key
first level, second key:
  last value

Fractionnement de chaînes de texte sur plusieurs lignes

- Without quotes:
   You can just
   split a long piece of text like this.
- With quotes:
    "[But be careful:
     if you \"need\" punctuation, put double quotes around it. You can ev\
     en split without spaces by using backslashes."
- Or single quotes:
    'This works
     but isn''t as flexible'
- If you want to keep those new line characters: | 
    Then do
    it this way with 
    a pipe (|) character. (This string has three \n characters)
- Or you can have just the one final new line: >
    This string has
    just one \n character, at the very end.
- Block indicators:
    Look up >-, >+, |- and |+ for fine tuning.

Caractères en fuite

YAML prend en charge trois styles de notation d'échappement:

  1. Entité échappe

    une. espace: "& # x20;"

    b. deux-points: "& # 58;"

    c. esperluette: "& amp;"

  2. Unicode s'échappe

    une. espace: "\ u0020"

    b. guillemet simple: "\ u0027"

    c. double citation: "\ u0022"

  3. Échappements cités

    une. double citation en simple citation: "Est-ce que je mens toujours" une déclaration vraie? "

    b. double citation imbriquée: "Elle a dit:" J'ai arrêté ""

    c. citation simple imbriquée: «Il était sans voix: '' '