YAML | |
---|---|
Rozšíření | .yamlnebo.yml |
MIME typ | application/x-yaml [1] [2] , text/yaml [3] [2] a text/x-yaml [4] |
Vývojář | Clark Evans [d] |
zveřejněno | 11. května 2001 [5] |
Poslední vydání | 1.2.2 (1. října 2021 ) |
Typ formátu | Výměna dat |
Rozšířeno z | XML , Perl a JSON |
otevřený formát ? | Ano |
webová stránka | yaml.org _ |
YAML ( zkratka anglicky "Yet Another Markup Language" - " Another Markup Language ", později - rekurzivní zkratka angličtina "YAML Ain't Markup Language" - "YAML - not a markup language") - "přátelský" formát serializace dat , koncepčně blízký na značkovací jazyky , ale zaměřil se na pohodlí I/O typických datových struktur mnoha programovacích jazyků .
Interpretace názvu odráží historii vývoje: v raných fázích YAML znamenal Yet Another Markup Language (“ Another Markup Language ”) a byl dokonce postaven jako konkurent XML , ale později byl přejmenován, aby se zaměřil na data , a není na označení dokumentu [6] .
Podle cílů uvedených Clarkem Evansem se YAML 1.0 zaměřuje na [7] :
Současnou revizí YAML (1.2) byly provedeny některé změny těchto cílů [8] :
Syntaxe YAML je minimalistická, zejména ve srovnání se syntaxí XML . Specifikace naznačuje, že velký vliv měla norma RFC 822 . Níže jsou ukázky různých značkovacích komponent. Je třeba poznamenat, že možnost jednořádkového formátu dělá z JSON platnou podmnožinu YAML.
Hlavní prvky YAML:
V některých projektech potřebujete uložit konfiguraci, která popisuje mapování ( anglické vazby ) příkazů IRC na funkce pomocí regulárních výrazů .
Zde je původní konfigurace uvedená v tabulce:
ircEvent | metoda | regulární výraz |
---|---|---|
PRIVMSG | newUri | "^http://.*" |
PRIVMSG | deleteUri | "^smazat.*" |
PRIVMSG | randomUri | "^náhodné.*" |
V YAML může být tato konfigurace reprezentována následovně:
vazby : - ircEvent : metoda PRIVMSG : newUri regexp : '^http://.*' - ircEvent : PRIVMSG metoda : deleteUri regexp : '^delete.*' - ircEvent : PRIVMSG metoda : randomUri regexp : '^random.*'nebo
vazby : - { ircEvent : PRIVMSG , metoda : newUri , regexp : '^http://.*' } - { ircEvent : PRIVMSG , metoda : deleteUri , regexp : '^delete.*' } - { ircEvent : PRIVMSG , metoda : randomUri , regulární výraz : '^random.*' }Pro srovnání, v reprezentaci XML může být tato konfigurace reprezentována následovně:
< bindings> <binding> <ircEvent> PRIVMSG </ircEvent> <method> newUri </method> <regexp> ^http://.* </regexp> </binding> <binding> <ircEvent> PRIVMSG </ircEvent > <method> deleteUri </method> <regexp> ^delete.* </regexp> </binding> <binding> <ircEvent> PRIVMSG </ircEvent> <method> randomUri </method> <regexp> ^random.* </regexp> </binding> </bindings>nebo
<vazby> <binding ircEvent= "PRIVMSG" method= "newUri" regexp= "^http://.*" /> <binding ircEvent= "PRIVMSG" method= "deleteUri" regexp= "^delete.*" /> <binding ircEvent= "PRIVMSG" method= "randomUri" regexp= "^random.*" /> </bindings>Vnořené XML elementy lze použít k zobrazení libovolných struktur a YAML je blíže zobrazení typických datových modelů z Ruby , Perlu , Pythonu , Java , což umožňuje popisovat volné kombinace sekvencí, mapování a skalárních typů – tedy blíže skutečnému datové struktury programovacích jazyků a nevyžaduje různé konvence DOM pro mapování datových struktur do dokumentů az dokumentů, jak vyžaduje XML .
YAML se používá hlavně jako formát pro konfigurační soubory pro Ruby on Rails , Docker Compose [9] , Dancer , Symfony , GAE framework , Google App Engine a Dart . Je to primární jazyk pro popis tříd, zdrojů a manifestů pro balíčky aplikací OpenStack Murano Project . a Swagger.io . Ve výchozím nastavení se také používá pro konfiguraci chytré domácnosti v systému Home Assistant .
Značkovací jazyky dokumentů | |
---|---|
kancelářské dokumenty | |
dobře známý | |
Méně známé |