YAML

YAML Ominaisuudet
Laajennukset .yaml, .yml
MIME-tyyppi application/x-yaml, text/yaml, text/x-yaml
PUID fmt / 818
Kehittäjä Clark Evans ( d )
Alkuperäinen versio 11. toukokuuta 2001
Perustuen Laajennettava merkintäkieli , Perl , JavaScript-objektien merkinnät
Erittely Avoin muoto
Verkkosivusto (en)  yaml.org

YAML , lyhenne Yet Another Markup Language sen versio 1.0, tulee rekursiivinen akronyymi on YAML Eikö Markup Language ( "YAML ei Markup Language" ) sen versio 1.1, on tietojen esitys muodossa Unicode serialization . Se käyttää käsitteitä muilta kieliltä, ​​kuten XML , tai RFC 2822: n dokumentoimaa sähköisen viestin muotoa . Clark Evans ehdotti vuonna 2001 YAML: ää, jonka toteuttivat hänen, Brian Ingerson ja Oren Ben-Kiki .

Sen tarkoituksena on edustaa monimutkaisempaa tietoa kuin yksinkertainen CSV, mutta pitää kuitenkin lähes vertailukelpoinen luettavuus ja joka tapauksessa paljon suurempi kuin XML .

Vuonna 2015 , Symfony 2, Drupal 8 ja phpMyAdmin muun muassa käyttää niitä tulon ja lähdön formaatit.

Ominaisuudet

YAML: n idea on, että melkein kaikki tiedot voidaan esittää luetteloiden, assosiatiivisten taulukoiden ja skalaaridatan yhdistelmällä . YAML kuvaa nämä tietomuodot ( YAML-esitykset ) sekä syntaksin näiden tietojen esittämiseksi merkkivirrana ( YAML-virta ).

Tietokone siirtyy vuon hakemuksen YAML YAML esitys operaation kuormituksen (Englanti kuorma ). Hän viettää edustus virrassa operaation purkamisen (englanninkielisen dumpin ) kautta.

YAML-virran syntaksi on suhteellisen yksinkertainen, tehokas, vähemmän yksityiskohtainen kuin XML , mutta vähemmän kompakti kuin CSV . Sen on todettu olevan mahdollisimman luettavissa ihmisille, samalla kun se on helposti sovitettavissa yllä oleviin korkean tason kielillä yleisiin tietotyyppeihin. Näiltä kieliltä se lainaa tiettyjä merkintöjä.

On myös mahdollista määrittää tietojen tyyppi (englanninkielinen tunniste ). Tällä tarkkuudella ei kuitenkaan ole rajoituksia, ja se toimii pikemminkin kuin merkintä tai mallinnus.

YAML-tiedosto voidaan analysoida yhdellä lukukerralla.

YAML-syntakse eroaa JSON: sta siinä mielessä, että sen on tarkoitus olla helpommin luettavissa henkilölle. Se eroaa XML: stä siinä, että se koskee ensisijaisesti tietojen sarjallisuutta ja vähemmän dokumentaatiota.

phpMyAdmin sallii MySQL-tietokantojen vienninYAML-muodossa muiden tiedostomuotojen lisäksi.

Esimerkki

Tietorakenteen hierarkia varmistetaan homogeenisella sisennyksellä , tässä neljä välilyöntiä per taso.

--- receipt: Oz-Ware Purchase Invoice date: 2012-08-06 customer: given: Dorothy family: Gale items: - part_no: A4786 descrip: Water Bucket (Filled) price: 1.47 quantity: 4 - part_no: E1628 descrip: High Heeled "Ruby" Slippers size: 8 price: 100.27 quantity: 1 bill-to: &id001 street: | 123 Tornado Alley Suite 16 city: East Centerville state: KS ship-to: *id001 specialDelivery: > Follow the Yellow Brick Road to the Emerald City. Pay no attention to the man behind the curtain. ...

Toteutukset

YAML-kirjastoja on olemassa eri kielille.

ActionScript  :

  • as3yaml jvyamlin satama Actionscript 3: lle

C  :

  • LibYAML
  • SYCK

C ++  :

  • LibYAML: n C ++ -peitto
  • natiivi C ++ -kirjasto yaml-cpp

Kristalli

  • YAML-moduuli sisältyy Crystal-standardikirjastoon

D  :

  • D: YAML

Erlang  :

  • yamler perustuu LibYAML: ään

Mene  :

  • goyaml perustuu LibYAML: ään, mutta kirjoitettu kokonaan Go: iin

Haskell  :

  • YAML-syntaksin ja apuohjelmien YamlReference-toteutus
  • LibYAML: n yaml-kapselointi
  • SYCK: n HsSyck-liitäntä
  • json2yaml-muunnos

Java  :

  • Jackson
  • jvyaml perustuu Syck-sovellusliittymään ja innoittamana RbYAML
  • SnakeYAML, tukee YAML 1.1: tä

JavaScript  :

  • JS-YAML, PyYAML: n alkuperäinen kirjoitus. JS: n täydellisin YAML 1.1+ -analyysi
  • CommonJS js-yaml, YAML: n supistettu osajoukko
  • javascript-yaml-jäsennin
  • jsyaml, koodi pinonkulkuun

Lua  :

  • Lua-Syck
  • yaml, LibYAML: n kapselointi

.NET Framework  :

  • Yaml-kirjasto .NET: lle (C #)
  • YAML-jäsennin C #: ssä, melkein täydellinen YAML-toteutus. Kirjoitettu C #: ksi.
  • YAML for .NET, Visual Studio ja Powershell

OCaml  :

  • OCaml-Syck

Tavoite C  :

  • YAML.framework perustuu LibYAML: ään.
  • syck / ext / kaakao

Perl  :

  • YAML, käyttöliittymä useisiin YAML-jäsentäjiin.
  • YAML :: Tiny, toteuttaa YAML: n käyttökelpoisen osajoukon; pieni, puhtaassa Perlissä ja nopeampi kuin täydellinen toteutus
  • YAML :: Syck, SYCK C -kirjaston kapselointi, täydellinen ja nopea
  • YAML :: XS, LibYamlin kapselointi. Parempi YAML 1.1 -yhteensopivuus
  • YAML :: Any, tunnistaa parhaan YAML-toteutuksen ja kapseloi sen tavalliseen YAML-sovellusliittymään

PHP  :

  • Spyc, puhdas PHP-toteutus
  • PHP-Syck, SYCK-kirjaston kapselointi
  • Symfony YAML Component, Symfony- kehyksestä
  • PECL Yaml, LibYAML-kirjaston kapselointi

Python  :

  • PyYaml, erittäin täydellinen. Natiivi tai valinnainen Python käyttää LibYAML: ää.
  • PySyck, SYCK-kirjaston kapselointi.

Ruby  :

  • YAML on osa standardikirjastoa (gem Psych, kapselointiaine LibYAML)

A  :

  • CRAN YAML, LibYAML-kirjaston kapselointi

Ruoste  :

  • yaml-ruoste, YAML 1.2: n toteutus puhtaassa ruosteessa

Scala  :

  • scala-yaml

Tcl  :

  • Saatavana Tcl 8.4: ssä

XML  :

  • YAXML, ei viimeistelty

Huomautuksia ja viitteitä

  1. (in) "  Vielä yksi merkintäkieli (YAML) 1.0  "
  2. (in) "  YAML ei ole merkintäkielen (YAML ™) versio 1.1  "
  3. YAML Draft 0.1 , Clark Evans, 11. toukokuuta 2001, Yahoo! Tekniset ryhmät: sml-dev.
  4. http://docs.octoprint.org/en/master/configuration/yaml.html
  5. (in) Dataformat backends varten Jackson
  6. (en) SnakeYAML
  7. "  Ruby / psych  " on GitHub (näytetty on 1 st päivänä elokuuta 2020 mennessä ) .

Katso myös

Ulkoiset linkit