YAML Nedir? // LSD25

Liserjik

Kıdemli Üye
11 Ağu 2018
2,180
7
6
YAML nedir?

YAML, XML, JSON vb. alternatiflerine kıyasla daha insan diline yakın ve daha kolay anlaşılabilinen bir markup dilidir. YAML dili ile hazırlanmış bir markup pek çok yapıyı içinde barındırır ve pek çok dilde pek çok kütüphane ile kolayca işlenebilir ve okunabilir.

Sık kullanılan dillerde YAML işleme kütüphaneleri


C/C++ için yaml-cpp (https://github.com/jbeder/yaml-cpp)
C# için YamlDotNet (https://github.com/aaubry/YamlDotNet)
Python için pyyaml (https://pyyaml.org/wiki/PyYAML********ation)
Ruby için yaml (https://ruby-doc.org/stdlib-2.5.1/libdoc/yaml/rdoc/YAML.html)
Perl için YAML (https://****cpan.org/pod/YAML)
PHP için yaml_parse (https://www.php.net/manual/tr/function.yaml-parse.php)

YAML'a başlangıç

YAML dosyası oluşturma ve yorum satırı


YAML dosya standardı *.yaml uzantulu olmalıdır. Örnek olarak lsddata.yaml adında bir YAML dosyayı oluşturalım.

Kod:
[COLOR="Silver"]#Bu bir yorum satırıdır
#Merhaba Dünya[/COLOR]

YAML'da yorum satırları # ile başlar ve tüm satırı kapsar.

Veri tanılama ve bloklar


YAML formatında boşluklar ve bazı semboller ile sentaks sağlanır örnek olarak bir küme oluşturalım.

Kod:
[COLOR="Silver"]#Bu bir yorum satırıdır
#Merhaba Dünya

[/COLOR][COLOR="Orange"]dunya:[/COLOR]
[COLOR="Yellow"]  -asya
  -avrupa
  -latin amerika[/COLOR]

[COLOR="Orange"]ay:[/COLOR]
[COLOR="Yellow"]  -Mons Hadley Deltası
  -Tsiolkvoskiy Krateri[/COLOR]

dünya ve ay isminde ":" sembolü ile grup oluşturup "-" sembolü ile elemanları tanımladık.

Kod:
[COLOR="Silver"]#Bu bir yorum satırıdır
#Merhaba Dünya

[/COLOR][COLOR="Orange"]dunya:[/COLOR]
[COLOR="Yellow"]  -asya : 1
  -avrupa : 2
  -latin amerika : 3[/COLOR]

[COLOR="Orange"]ay:[/COLOR]
[COLOR="Yellow"]  -Mons Hadley Deltası
  -Tsiolkvoskiy Krateri[/COLOR]

Ardından tekrar ":" işaretleri ile değer tanımladık. Şimdi biraz da listeler giriş yapıp onlara göz atalım. Listeler "[" ve "]" karakterleri arasına virgül ile ayrılarak tanımlanır. Sıfırdan bir tane *yaml dosyayı oluşturup listelere geçelim.

Kod:
[COLOR="Orange"]---[/COLOR]
[COLOR="orange"]-meyve : [/COLOR]['[COLOR="Yellow"]elma[/COLOR]', '[COLOR="yellow"]armut[/COLOR], '[COLOR="yellow"]portakal[/COLOR]']

[COLOR="orange"]---[/COLOR]

[COLOR="orange"]-sebze : [/COLOR]['[COLOR="yellow"]pırasa[/COLOR]', '[COLOR="yellow"]lahana[/COLOR]', '[COLOR="yellow"]kebap[/COLOR]']

Meyve ve sebze adında 2 tane liste oluşturup tekrar ':' karakteri ile içerisine tanımladık. --- karakterleri ile ise 2 tane grubu birbirinden ayırdık.

Özel karakterler


YAML'da işlem yapacağımız belli karakterler vardır. Yukarıdaki örnekte verildiği gibi ',' ':' '-' vb. Şimdi diğerlerini inceleyelim.

? -> Eşleme anahtarı
* -> Takma ad (alias) belirleme
& -> Düğüm bağlantısı oluşturma
{ ve } -> Harita yapısı
[ ve ] -> Küme yapısı
% -> Yönergeyi belirtme
# -> Yorum satırı ifadesi

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.