XML - labai griežtas, tačiau aiškus ir žmogui gana suprantamas formatas. Tačiau turi vieną didelį trūkumą - kaip ir dauguma amerikiečių - jis greitai tunka. Paskaičiuokime. Kiek elementų reikia, norint aprašyti vieną kintamąjį XML formatu? Keturių. O du? Šešių. Manote, jog nemoku skaičiuoti? Norint aprašyti vieną kintamąjį XML formatu reikia apibrėžti šakninį (angl. root) dokumento elementą bei elementą apibrėžiantį mūsų kintamąjį. Taigi, o jeigu norėsite aprašyti masyvų struktūras?
Atrodo laikas pradėti ieškoti alternatyvos.
Yaml - žmogui suprantamas duomenų saugojimo formatas, pristatytas 2001 metais. Pats pavadinimas yra “YAML Ain’t a Markup Language” žodžių trumpinys.
Yaml buvo sukurta stengiantis paimti geriausias savybes iš: XML, C, Python, Perl bei el. pašto specifikacijos.
Paprastas pavyzdys:
vartotojas:
kompiuteris : pc1
vardas: Vardenis
pavarde: Pavardenis
Telefonas: 8-65-89001
epastas:
- adresas: kopustai@sugrietine.lt
- adresas: burokeliu@siurba.lt
Šiuo pavyzdžiu mes aprašėme informaciją apie vartotoją, ar kas nors norėtų šį pavyzdį pabandyti užrašyti XML formatu?
Pagrindiniai elementai:
Sąrašai:
- Pirmas - Antras - Trečias
arba
[pirmas, antras, trečias]
Mišiniai (ang. Hashes)
miestas: Skuodas salis: Lietuva
arba
{miestas: Skuodas, salis: Lietuva}
Blokai
|
kažkoks ilgas tekstas kurio niekas neskaito
šita eilutė atitraukta nuo krašto
Dar viena eilutė atitraukta nuo krašto
O šita jau nebeatitraukta
Statmenas brūkšnys nėra privalomas, tačiau jis parodo, kad reikia išlaikyti teksto formatavimą ir atitraukimus nuo krašto.
Yaml palaiko pagrindinius duomenų tipus: skaičius(integer, float), eilutes(string), sąrašus(list), tačiau jais neapriboja vartotojo ir suteikia galimybę apsibrėžti savo tipus.
Jeigu pažvelgėte į pavyzdį, tai turbūt pastebėjote, jog Yaml kažką primena? Iš tiesų Yaml sintaksė labai artima JSON, apie kurį Pixel.lt irgi rašė. Tačiau vienas esminis skirtumas: Yaml kaip ir XML perduoda tik tekstą ir negali perduoti funkcijų, todėl jis yra daug saugesnis už JSON.
Jeigu jus sudomino šitas duomenų formatas pasiskaitykite daugiau:
Yaml specifikacija
Yaml sintaksės paruoštukė
Yaml Cookbook for Ruby
Using YAML With PHP and PECL
PHP, Meet YAML
wikipedia
2008-03-13 | 18:04
As visada kazkaip galvojau kad yaml’as labiau naudojamas configam saugot, o ne kazka perdavinet..
2008-08-14 | 15:59
insane -> gerai galvojai :)
yaml suparsint yra greiciau nei xml, ir jis yra lengviau skaitomas zmogui nei koks kitas standartas, todel labai patogu su juo saugoti configus