# YAML валидатор

Проверете YAML за синтактични грешки, преди да наруши внедряване или CI pipeline. Валидаторът анализира всеки документ във входните данни с парсер за YAML 1.2, отхвърля дублирани ключове, табулации за отстъп и неконтролирано разгръщане на псевдоними и показва първата грешка с документа, реда и колоната. При валиден вход се показват броят на документите, типът на най-горното ниво във всеки от тях и всички предупреждения. Създаден за Kubernetes, Docker Compose и автори на конфигурации.

## Често задавани въпроси

### Какво проверява валидаторът за YAML?

Той анализира целия синтаксис на YAML: отстъпи, блокови и поточни колекции, низове в кавички и без кавички, маркери, псевдоними, тагове и директиви. Също така третира дублираните ключове в съпоставяне като грешка. Резултатът е или потвърждение с кратко обобщение, или първата грешка с позицията ѝ и обяснение.

### Коя версия на YAML използва?

Валидаторът използва основната схема на YAML 1.2 — актуалната версия на спецификацията. Във версия 1.2 думи като yes, no, on и off са обикновени низове, а не булеви стойности, затова никога не предизвикват грешка. Документите, написани за инструменти за YAML 1.1, също се приемат, ако синтаксисът им е валиден.

### Защо дублираните ключове се посочват като грешки?

Спецификацията на YAML изисква ключовете в съпоставяне да са уникални. Много парсери запазват последната стойност без предупреждение, което скрива грешки в конфигурацията, като например настройка, зададена два пъти. Валидаторът показва реда и колоната на повторения ключ, за да можете да решите коя стойност да запазите.

### Как се броят редовете, колоните и документите?

Редовете и колоните започват от 1 в началото на поставения от вас вход. Документите се броят в реда, в който се появяват, като се разделят с редове с ---, така че първият документ е документ 1. Посочената позиция е мястото, на което парсерът е открил проблема, което може да е непосредствено след действителната грешка.

### Мога ли да валидирам няколко документа на YAML наведнъж?

Да. Разделете документите с ---, както в манифест на Kubernetes с няколко документа, и всеки документ ще бъде анализиран. При валиден резултат се показват броят на документите и типът на най-горното ниво във всеки от тях.

### Какво означава типът на най-горното ниво?

Той показва какво съдържа всеки документ в основата си: съпоставяне на ключове и стойности, последователност от елементи, единична скаларна стойност или нищо. Повечето конфигурационни файлове са съпоставяния, докато списъците с ресурси често са последователности. Грешен тип тук обикновено означава тире или отстъп на неправилно място.

### Какво представляват предупрежденията?

Предупрежденията са проблеми, които не спират анализа — например непознат за парсера таг, който след това се прочита като обикновена стойност. Всяко предупреждение се показва с реда и колоната си, до 20 предупреждения. Документ с предупреждения все пак се счита за валиден.

### Защо табулациите се отхвърлят?

YAML забранява знаците за табулация в отстъпите, защото ширината им е нееднозначна. Заменете табулациите в началото на посочения ред с интервали и използвайте еднакъв отстъп като в съседните редове. Таба в стойности и низове в кавички са позволени.

### Защитен ли е инструментът от атаки с бомби от псевдоними?

Да. Псевдонимите могат да се разгръщат най-много 100 пъти, затова документ, създаден така, че да умножава псевдоними до гигабайти данни (атака, често наричана „милиард смеха“), се отчита като невалиден, вместо да изчерпи паметта. Обичайната употреба на маркери и псевдоними за споделени настройки остава далеч под този лимит.

### Валидира ли се спрямо схема като Kubernetes или OpenAPI?

Не, проверяват се само синтаксисът и структурата, а не дали ключовете и стойностите съответстват на конкретна схема. Входните данни могат да са до 5 MiB. За да преобразувате валиден YAML в JSON, TOML или друг формат, използвайте преобразувателя на формати за данни.

Вашата реклама тук?

[Пишете ни](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%B2%20OneClick%20Pro)

[Реклама Комплект плъгини за агенти за WordPress.](https://sleekwp.com/?ref=oneclickpro)
