yamlAan de slag met yaml


Opmerkingen

YAML is een recursief acroniem voor " Y AML A in't M arkup L anguage". Het is een voor mensen leesbare gegevensserialisatiestandaard voor alle programmeertalen.

versies

Versie Publicatiedatum
1.0 2004-01-29
1.1 2005-01-18
1.2 2009-10-01

Basic Yaml-syntaxis

YAML is een op tekst gebaseerde indeling waarmee gestructureerde gegevens in een hiërarchie kunnen worden opgeslagen. YAML is ontworpen om leesbaar te zijn voor mensen en machines met een minimum aan overhead. De YAML-specificatie is te vinden op yaml.org . Er is ook een referentiekaart

Opmerkingen beginnen met # en gaan tot nieuwe regel, opmerkingen moeten door witruimte van andere tokens worden gescheiden. Witruimte is niet gratis, inspringen moet spaties zijn, geen tabs. YAML zal in overweging nemen dat regels die worden voorafgegaan door meer spaties dan de hoofdsleutel erin voorkomen. Bovendien moeten alle lijnen worden voorafgegaan door hetzelfde aantal spaties om tot dezelfde kaart te behoren.

YAML heeft sequenties en toewijzingen als verzamelingstypen, beide kunnen worden weergegeven in flow- en blokstijl.

Een reeks scalaire tekenreeksen in YAML ziet er als volgt uit:

[ one, two, three ]   # flow style

# or block style

- one
- two
- three
 

Een toewijzing bestaat uit sleutel / waarde-paren:

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
 

Standaard YAML-typen

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

Blokstijltoewijzingen

Met impliciete sleutels:

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

Met impliciete en expliciete sleutels:

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

key , another key en [1, 2, 3] zijn sleutels van dezelfde toewijzing, hoewel ze verschillende sleutelstijlen gebruiken.


Geneste toewijzingen:

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
 

Comments

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

Merk op dat voor een # een opmerking moet worden ingevoerd, dit ook moet

  • optreden aan het begin van een regel, of
  • worden voorafgegaan door witruimte.

# moet altijd worden gevolgd door witruimte. # binnen geciteerde scalars beginnen nooit met reacties. # kan opmerkingen aan het einde van blokscalars introduceren, maar daarom moet het minder ingesprongen zijn dan de basisinspringing van de blokscalar (die meestal wordt bepaald door de inspringing van de eerste niet-lege regel).

Ontsnappende tekens

YAML ondersteunt drie stijlen van escape-notatie:

  1. Entiteit ontsnapt

    een. spatie: "& # x20;"

    b. dubbele punt: "& # 58;"

    c. ampersand: "& amp;"

  2. Unicode ontsnapt

    een. spatie: "\ u0020"

    b. enkele quote: "\ u0027"

    c. dubbel citaat: "\ u0022"

  3. Geciteerde ontsnappingen

    een. dubbel citaat in enkel citaat: 'Is "ik altijd lieg" een echte uitspraak?'

    b. genummerd dubbel citaat: "Ze zei:" Ik stop "

    c. genestelde enkele quote: 'Hij was sprakeloos:' ''

Tekstreeksen over meerdere regels splitsen

- 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 opeenvolgende gegevens

Hetzelfde lijstniveau:

- Cat
- Dog
- Goldfish
 

Geneste lijst:

-
 - Cat
 - Dog
 - Goldfish