YAML – uniwersalny język formalny przeznaczony do reprezentowania różnych danych w ustrukturyzowany sposób. YAML jest akronimem rekurencyjnym od słów . Na początku, skrót YAML miał oznaczać , jednak zmieniono tę koncepcję, aby położyć nacisk na cel, któremu język miał służyć, czyli opisowi zbioru danych. Jego pierwszą wersję zaproponował w 2001 roku Clark Evans we współpracy z Ingy döt Net oraz Oren Ben-Kiki.
Cechy języka Poszczególne elementy struktury danych są oddzielane znakami nowej linii, a ich hierarchia ustalana jest na podstawie wcięcia linii. Język wprowadza trzy podstawowe struktury danych, które mogą być wkomponowane w dokument: listy, słowniki i skalary. Obsługuje również referencje, które eliminują konieczność redundancji danych.
Wszystkie te cechy sprawiają, że dokumenty napisane w YAML-u są bardzo zwięzłe, czytelne dla człowieka, dają się też łatwo przetwarzać prostymi narzędziami, takimi jak grep, awk czy sed oraz przy pomocy języków skryptowych.
Cele stawiane przed językiem przez jego twórców są następujące: YAML ma być czytelny dla człowieka. YAML ma realizować struktury danych wbudowane w języki programowania. Dokumenty YAML mają być przenośne pomiędzy językami programowania. YAML ma być przyjazny dla typowych narzędzi do przetwarzania tekstu. Dokument YAML ma być przetwarzany przez narzędzia w pojedynczym przejściu. YAML ma mieć dużą siłę wyrazu i być łatwo rozszerzalny. YAML ma być prosty w użyciu.
Z powyższych powodów, jak utrzymują twórcy YAML-a, język ten nadaje się dobrze do zapisu konfiguracji systemowej, zapisywania logów, do wymiany komunikatów między procesami, wymiany danych między różnymi językami programowania, do trwałego zapisu obiektów () oraz debuggowania złożonych struktur danych.
Jak zauważają autorzy raportu porównującego różne języki zapisu danych, „czytelność YAML-a jest tak duża, że główna strona poświęcona językowi sama jest napisana w YAML-u”.
Przykładowy dokument
receipt: Oz-Ware Purchase Invoice date: 2007-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. ...
Przykłady użycia Przykładami oprogramowania z konfiguracją opartą na YAML są m.in. Ansible (zarządzanie aplikacjami), Kubernetes (zarządzanie aplikacjami), Home Assistant (konfigurowanie automatyki domowej), Spring (zarządzanie aplikacjami w Javie), IBM Cloud Manager with OpenStack (zarządzanie serwisami chmurowymi) czy specyfikacja (definiowanie API webowych).
YAML a XML XML jest najpopularniejszym obecnie uniwersalnym językiem przeznaczonym do reprezentowania danych.
Czytelność: składnia YAML-a jest bardziej przejrzysta niż XML, ponieważ struktura dokumentu określona jest niewidocznymi dla człowieka znakami niedrukowalnymi (znakami nowej linii i wcięciami). XML z kolei używa znaczników, które wizualnie się zlewają z istotną treścią dokumentu, co wpływa ujemnie na czytelność zapisu. Struktury danych: YAML, podobnie jak XML, ma strukturę drzewa uporządkowanego, ale ponadto obsługuje kolekcje już na poziomie języka. Format binarny: Żaden z tych formatów nie udostępnia bogatego mechanizmu reprezentacji dużych ilości danych w postaci binarnej.
Zobacz też JSON XML
Przypisy https://yaml.org.
YAML Ain’t Markup Language (YAML™) Version 1.2 Working Draft 2008-05-11 .
Linki zewnętrzne YAML.org Specyfikacja YAML-a Walidator YAML-a Konwerter YAML na tabelę.
Kategoria:Języki znaczników Kategoria:Pliki konfiguracyjne