yamlEmpezando con yaml

Observaciones

YAML es un acrónimo recursivo de " Y AML A in't M arkup L angguage". Es un estándar de serialización de datos legible por humanos para todos los lenguajes de programación.

Versiones

Versión Fecha de lanzamiento
1.0 2004-01-29
1.1 2005-01-18
1.2 2009-10-01

Sintaxis básica de Yaml

YAML es un formato basado en texto que permite almacenar datos estructurados en una jerarquía. YAML está diseñado para ser humano y legible por máquina con un mínimo de sobrecarga. La especificación YAML se puede encontrar en yaml.org . También hay una tarjeta de referencia.

Los comentarios comienzan con # y continúan hasta la nueva línea, los comentarios deben estar separados de otros tokens por espacios en blanco. Los espacios en blanco no son libres, la sangría debe ser espacios, no pestañas. YAML considerará que las líneas prefijadas con más espacios que la clave principal están contenidas dentro de ella. Además, todas las líneas deben estar prefijadas con la misma cantidad de espacios para pertenecer al mismo mapa.

YAML tiene secuencias y mapeos como tipos de colección, ambos pueden representarse en flujo y estilo de bloque.

Una secuencia de cadenas escalares en YAML se parece a:

[ one, two, three ]   # flow style

# or block style

- one
- two
- three

Un mapeo consiste en pares clave / valor:

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

Tipos básicos de YAML

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

Datos secuenciales de YAML

Mismo nivel de lista:

- Cat
- Dog
- Goldfish

Lista anidada:

-
 - Cat
 - Dog
 - Goldfish

Comentarios

# 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)

Tenga en cuenta que para que un # introduzca un comentario, debe

  • ocurre al principio de una línea, o
  • estar precedido por espacios en blanco.

# siempre debe ir seguido de espacios en blanco. # dentro de los escalares citados nunca comienzan comentarios. # puede introducir comentarios al final de los escalares de bloque, pero, por lo tanto, debe tener menos sangría que la sangría base del escalar de bloque (que generalmente está determinada por la sangría de su primera línea no vacía).

Asignaciones de estilo de bloque

Con claves implícitas:

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

Con claves implícitas y explícitas:

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

key , another key y [1, 2, 3] son claves de la misma asignación, aunque utilizan diferentes estilos de clave.


Asignaciones anidadas:

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

División de cadenas de texto en múltiples líneas

- 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.

Personajes que escapan

YAML soporta tres estilos de notación de escape:

  1. Entity Escapes

    a. espacio: "& # x20;"

    segundo. colon: "& # 58;"

    do. ampersand: "& amp;"

  2. Unicode Escapes

    a. espacio: "\ u0020"

    segundo. comilla simple: "\ u0027"

    do. comillas dobles: "\ u0022"

  3. Escapes citados

    a. comillas dobles en comillas simples: '¿Es "siempre miento" una afirmación verdadera?'

    segundo. doble cita anidada: "Ella dijo," renuncié ""

    do. Una sola cita anidada: 'Se quedó sin habla:' ''