yamlIniziare con yaml

Osservazioni

YAML è un acronimo ricorsivo di " Y AML A in't M arkup L anguage". È uno standard di serializzazione dei dati leggibile per tutti i linguaggi di programmazione.

Versioni

Versione Data di rilascio
1.0 2004-01-29
1.1 2005-01-18
1.2 2009-10-01

Sintassi di base Yaml

YAML è un formato basato su testo che consente di memorizzare i dati strutturati in una gerarchia. YAML è progettato per essere umano e leggibile meccanicamente con un minimo di overhead. La specifica YAML può essere trovata su yaml.org . C'è anche una carta di riferimento

I commenti iniziano con # e proseguono fino a newline, i commenti devono essere separati dagli altri token per spazio bianco. Gli spazi bianchi non sono liberi, i rientri devono essere spazi, non tabulazioni. YAML considererà che le righe con prefisso con più spazi rispetto alla chiave genitore siano contenute al suo interno. Inoltre, tutte le linee devono essere precedute dalla stessa quantità di spazi per appartenere alla stessa mappa.

YAML ha sequenze e mappature come tipi di raccolta, entrambi possono essere rappresentati in stile flusso e blocco.

Una sequenza di stringhe scalari in YAML assomiglia a:

[ one, two, three ]   # flow style

# or block style

- one
- two
- three

Una mappatura è composta da coppie chiave / valore:

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

Tipi YAML di base

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

YAML Dati sequenziali

Stesso livello di lista:

- Cat
- Dog
- Goldfish

Elenco annidato:

-
 - Cat
 - Dog
 - Goldfish

Commenti

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

Si noti che per un # per introdurre un commento, deve o

  • si verificano all'inizio di una linea, o
  • essere preceduto da spazi bianchi.

# deve sempre essere seguito da spazi bianchi. # all'interno di scalari quotati non avvia mai commenti. # può introdurre commenti alla fine dei blocchi scalari, ma, di conseguenza, deve essere meno rientrato rispetto all'indentazione di base del blocco scalare (che di solito è determinata dal rientro della sua prima riga non vuota).

Block Style Mappings

Con chiavi implicite:

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

Con chiavi implicite ed esplicite:

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

key , another key e [1, 2, 3] sono chiavi della stessa mappatura, sebbene usino stili chiave diversi.


Mappature nidificate:

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

Divisione di stringhe di testo su più righe

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

Caratteri in fuga

YAML supporta tre stili di notazione escape:

  1. Escapes di entità

    un. spazio: "& # x20;"

    b. due punti: "& # 58;"

    c. e commerciale: "& amp;"

  2. Unicode Escapes

    un. spazio: "\ u0020"

    b. virgoletta singola: "\ u0027"

    c. doppia citazione: "\ u0022"

  3. Fughe citate

    un. doppia citazione in una singola citazione: "È" mentisco sempre "una dichiarazione vera?"

    b. doppia citazione annidata: "Ha detto," ho smesso ""

    c. citazione singola annidata: "Era senza parole:" "