# Walidator YAML

Sprawdź składnię YAML, zanim spowoduje błędy wdrożenia lub potoku CI. Walidator analizuje każdy dokument wejściowy za pomocą parsera YAML 1.2, odrzuca zduplikowane klucze, tabulatory używane do wcięć i niekontrolowane rozwijanie aliasów oraz zgłasza pierwszy błąd wraz z numerem dokumentu, wiersza i kolumny. Przy poprawnych danych wyświetla liczbę dokumentów, typ najwyższego poziomu każdego z nich oraz ostrzeżenia. Dla autorów konfiguracji Kubernetes i Compose Docker.

## Najczęściej zadawane pytania

### Co sprawdza walidator YAML?

Analizuje pełną składnię YAML: wcięcia, kolekcje blokowe i przepływowe, wartości skalarne w cudzysłowie i bez niego, kotwice, aliasy, znaczniki i dyrektywy. Traktuje też zduplikowane klucze w mapowaniu jako błąd. Wynikiem jest potwierdzenie z krótkim podsumowaniem albo pierwszy błąd wraz z jego pozycją i objaśnieniem.

### Jakiej wersji YAML używa?

Walidator używa podstawowego schematu YAML 1.2, czyli aktualnej wersji specyfikacji. W wersji 1.2 słowa takie jak yes, no, on i off są zwykłymi ciągami znaków, a nie wartościami logicznymi, więc nigdy nie powodują błędu. Dokumenty napisane z myślą o narzędziach YAML 1.1 są nadal akceptowane, o ile ich składnia jest poprawna.

### Dlaczego zduplikowane klucze są zgłaszane jako błędy?

Specyfikacja YAML wymaga, aby klucze w mapowaniu były unikatowe. Wiele parserów po cichu zachowuje ostatnią wartość, co ukrywa błędy konfiguracji, takie jak dwukrotne zdefiniowanie ustawienia. Walidator podaje numer wiersza i kolumny powtórzonego klucza, aby można było zdecydować, którą wartość zachować.

### Jak są liczone numery wierszy, kolumn i dokumentów?

Numeracja wierszy i kolumn zaczyna się od 1 na początku wklejonego tekstu. Dokumenty są liczone w kolejności występowania i oddzielone wierszami ---, więc pierwszy dokument ma numer 1. Wskazana pozycja pokazuje miejsce, w którym parser wykrył problem, co może być tuż za właściwym błędem.

### Czy mogę jednocześnie walidować kilka dokumentów YAML?

Tak. Oddziel dokumenty za pomocą ---, jak w manifeście Kubernetes z wieloma dokumentami, a każdy z nich zostanie przeanalizowany. Prawidłowy wynik pokazuje liczbę dokumentów i typ najwyższego poziomu każdego z nich.

### Co oznacza typ najwyższego poziomu?

Informuje, co zawiera każdy dokument na poziomie głównym: mapowanie kluczy i wartości, sekwencję elementów, pojedynczą wartość skalarną albo nic. Większość plików konfiguracyjnych to mapowania, a listy zasobów często są sekwencjami. Nieprawidłowy typ zwykle oznacza źle umieszczony myślnik lub wcięcie.

### Czym są ostrzeżenia?

Ostrzeżenia dotyczą problemów, które nie przerywają analizy, na przykład tagu nierozpoznawanego przez parser, który jest wtedy odczytywany jako zwykła wartość. Każde ostrzeżenie jest wyświetlane wraz z numerem wiersza i kolumny; pokazywanych jest maksymalnie 20 ostrzeżeń. Dokument z ostrzeżeniami nadal jest uznawany za prawidłowy.

### Dlaczego tabulatory są odrzucane?

YAML zabrania używania tabulatorów we wcięciach, ponieważ ich szerokość jest niejednoznaczna. Zastąp tabulatory na początku wskazanego wiersza spacjami i zachowaj wcięcia zgodne z sąsiednimi wierszami. Tabulatory wewnątrz wartości i ujętych w cudzysłów ciągów znaków są dozwolone.

### Czy narzędzie jest zabezpieczone przed bombami aliasów?

Tak. Aliasy mogą być rozwijane maksymalnie 100 razy, więc dokument zaprojektowany tak, by powielić aliasy do rozmiaru gigabajtów — atak często nazywany billion laughs — zostanie zgłoszony jako nieprawidłowy, zanim wyczerpie pamięć. Zwykłe używanie kotwic i aliasów do współdzielenia ustawień pozostaje daleko poniżej tego limitu.

### Czy narzędzie waliduje zgodność ze schematem, takim jak Kubernetes lub OpenAPI?

Nie, sprawdza tylko składnię i strukturę, a nie to, czy klucze i wartości pasują do konkretnego schematu. Dane wejściowe mogą mieć do 5 MiB. Aby przekonwertować prawidłowy YAML na JSON, TOML lub inny format, użyj konwertera formatów danych.

Twoja reklama tutaj?

[Napisz do nas](mailto:hi@dennn.is?subject=Reklama%20w%20OneClick%20Pro)

[Reklama Pakiet wtyczek gotowy do pracy z agentami dla WordPress.](https://sleekwp.com/?ref=oneclickpro)
