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.
Version | Date de sortie |
---|---|
1.0 | 2004-01-29 |
1.1 | 2005-01-18 |
1.2 | 2009-10-01 |
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
integer: 25
string: "25"
float: 25.0
boolean: true
null type: null
Même niveau de liste:
- Cat
- Dog
- Goldfish
Liste imbriquée:
-
- Cat
- Dog
- Goldfish
# 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
#
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).
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
- 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.
YAML prend en charge trois styles de notation d'échappement:
Entité échappe
une. espace: "& # x20;"
b. deux-points: "& # 58;"
c. esperluette: "& amp;"
Unicode s'échappe
une. espace: "\ u0020"
b. guillemet simple: "\ u0027"
c. double citation: "\ u0022"
É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: '' '