ДокументыИзображенияМедиаИнструменты PDF

Конвертер XML в YAML Online

Конвертируйте XML-конфигурацию в современный YAML. Бесплатно, в вашем браузере.

# // Invalid XML: DOMParser is not defined
Processed in your browser

Унаследованный XML в современный YAML

Миграция Spring/Java

Конвертируйте XML-бины Spring Framework в структурированный YAML как отправную точку для модернизации проекта.

CI/CD-пайплайны

Трансформируйте XML-конфигурации Maven/Ant в YAML для GitHub Actions, GitLab CI или CircleCI.

100% конфиденциально

Ваш XML никогда не покидает браузер. Без серверов, без регистрации, без ограничений.

В реальном времени

Конвертация происходит по мере ввода. Синтаксические ошибки XML выявляются мгновенно.

Три шага — никаких сложностей

1

Вставьте XML

Вставьте XML-содержимое в левый редактор. Поддерживается полный XML 1.0: атрибуты, пространства имён, CDATA и сущности.

2

Автоматическая конвертация

Конвертер анализирует структуру XML и генерирует чистый YAML 1.2 с правильными отступами. Весь процесс выполняется в браузере — ничего не загружается.

3

Скопируйте или скачайте YAML

Получите готовый YAML для использования в Docker Compose, GitHub Actions, Kubernetes, Ansible или любом современном инструменте.

Остались вопросы?

Наиболее распространённый сценарий — миграция конфигураций Java-фреймворков, использующих XML (applicationContext.xml в Spring Framework, дескрипторы сборки Maven, файлы сборки Ant), на современные YAML-инструменты: Spring Boot, GitHub Actions, GitLab CI, CircleCI, Kubernetes и Ansible. XML был доминирующим стандартом конфигурации примерно с 1998 по 2012 год; YAML 1.2 (опубликован в 2009 году) стал предпочтительным форматом конфигурации, читаемым человеком, в экосистеме DevOps. Конвертация типичных XML-конфигураций Spring в YAML сокращает объём файла на 30–50% и значительно улучшает читаемость.

У атрибутов XML нет прямого эквивалента в YAML. Широко принятая конвенция — отображать их как дочерние ключи с префиксом '@' (например, <bean id='myBean' class='com.example.MyClass'> превращается в объект YAML с ключами '@id' и '@class'). Текстовое содержимое элемента (#text) также отображается как отдельный ключ, если элемент имеет одновременно атрибуты и текст. Такое представление совместимо с js-yaml, PyYAML и SnakeYAML.

Да. Файлы ресурсов и макетов Android (res/layout/*.xml, res/values/*.xml) являются стандартным XML. Конвертер создаёт эквивалентный структурный YAML, полезный как промежуточный шаг при миграции на Kotlin DSL или Jetpack Compose, а также для автоматической обработки ресурсов с помощью скриптов Python или Ruby. Пространства имён Android (xmlns:android='http://schemas.android.com/apk/res/android') сохраняются как ключи в полученном YAML.

XML 1.0 был опубликован W3C в феврале 1998 года как упрощённое подмножество SGML, предназначенное прежде всего для обмена данными между разнородными системами. YAML 1.2 был опубликован в октябре 2009 года как редакция, сделавшая YAML строгим надмножеством JSON. XML требует явных открывающих и закрывающих тегов, использует атрибуты и дочерние элементы как два параллельных механизма представления данных и имеет встроенную поддержку пространств имён, DTD и XML Schema. YAML использует отступы для иерархии, различает скалярные значения, списки и словари с минимальным синтаксисом и не имеет собственной системы схем. Для конфигурации приложений YAML значительно более читаем и лаконичен.

Это одна из наиболее распространённых миграций в корпоративных Java-проектах. Spring Framework использовал XML для определения бинов (applicationContext.xml, beans.xml) до тех пор, пока Spring Boot не популяризировал application.yml начиная с первого стабильного релиза в апреле 2014 года. Прямое однозначное преобразование XML-бинов Spring в YAML нетривиально, поскольку они семантически различаются: XML Spring описывает граф объектов IoC-контейнера, тогда как application.yml хранит свойства конфигурации приложения. Однако конвертация XML в YAML является полезной отправной точкой для понимания структуры перед рефакторингом на Java-аннотации и конфигурацию через свойства.

Сгенерированный YAML синтаксически валиден согласно спецификации YAML 1.2 и может разбираться любой стандартной YAML-библиотекой. Однако семантическая корректность для Kubernetes (kubectl apply) или Ansible (ansible-playbook) зависит от того, представляет ли входной XML данные с правильной структурой для этих систем. Данный инструмент выполняет структурную конвертацию; если ваш XML уже корректно моделирует спецификацию Kubernetes или плейбук Ansible, полученный YAML станет хорошей отправной точкой, хотя ручные корректировки для типов, специфичных для каждой платформы, скорее всего, потребуются.

Конвертация XML в YAML: миграция унаследованной конфигурации в современный DevOps

XML (eXtensible Markup Language) был опубликован W3C в версии 1.0 в феврале 1998 года. В первое десятилетие 2000-х XML стал универсальным форматом конфигурации в корпоративной Java-экосистеме: Spring Framework использовал XML для определения контекста приложения и графа бинов (applicationContext.xml, web.xml, beans.xml), Maven принял XML для дескриптора проекта (pom.xml, остающегося XML по сей день), а Ant описывал задачи сборки в build.xml. За пределами Java Android использовал XML для макетов UI (res/layout/) и ресурсов (res/values/strings.xml, colors.xml), SOAP-сервисы применяли XML как протокол обмена сообщениями, а стандарты XHTML, SVG, MathML и RSS строились на XML 1.0. Многословность XML — обязательные открывающие и закрывающие теги, параллельные механизмы атрибутов и дочерних элементов — была приемлема, когда основными читателями файлов конфигурации были машины.

YAML 1.2, опубликованный в октябре 2009 года, изменил парадигму конфигурации, читаемой человеком. В отличие от XML, YAML использует отступы для выражения иерархии, различает словари (объекты), списки и скаляры с минимальным синтаксисом и является строгим надмножеством JSON, начиная с версии 1.2. Экосистема DevOps массово приняла YAML: Docker Compose использует docker-compose.yml с первого публичного релиза в декабре 2013 года, Kubernetes использует YAML для всех манифестов с момента запуска в июне 2014 года, Ansible применяет YAML для плейбуков и ролей, GitHub Actions использует YAML для воркфлоу (.github/workflows/*.yml), а Spring Boot принял application.yml как альтернативу application.properties с первого стабильного релиза в апреле 2014 года. Для типичных конфигураций инфраструктуры YAML-эквивалент XML-файла использует на 30–50% меньше символов при значительно лучшей читаемости.

Необходимость конвертировать XML в YAML часто возникает в проектах модернизации. Наиболее распространённый сценарий в Java-экосистеме — миграция классических приложений Spring Framework (Spring 2.x, 3.x, 4.x с XML-конфигурацией) на Spring Boot, где свойства конфигурации выражаются в application.yml. Хотя соответствие не является взаимно однозначным — XML-бины Spring описывают граф объектов IoC-контейнера, тогда как application.yml хранит свойства конфигурации — наличие XML, преобразованного в структурный YAML, значительно упрощает анализ и рефакторинг. Другой частый сценарий — миграция пайплайнов сборки Ant или Maven (использующих XML) на современные CI/CD-инструменты на базе YAML. Наконец, Android-проекты, обрабатывающие XML-ресурсы с помощью скриптов, могут воспользоваться представлением YAML для программных манипуляций. Convertir.ai выполняет конвертацию полностью в браузере с помощью стандартного JavaScript, не отправляя никаких данных на сервер.