Краткий ответ
если вы ожидаете, что люди создадут / прочитают документ (файлы конфигурации, отчеты и т. Д.), То вы можете рассмотреть возможность использования YAML, в противном случае выберите XML (для связи между компьютерами).
Длинный ответ
Длина
И XML, и YAML примерно одинаковы. Хорошие библиотеки XML могут пропускать все пробелы, в то время как для YAML это требуется. Сложный YAML содержит много отступов (не используйте вкладки!)
Отказ сети
Часть документа YAML часто является действительным документом, поэтому, если документ YAML является неполным, не существует автоматического способа его обнаружения. Синтаксический анализатор XML всегда проверяет, правильно ли сформирован документ, и автоматически проверяет правильность схемы.
Поддержка языков
Многие основные языки программирования поддерживают YAML и XML.
Общие знания
Вам не нужно объяснять разработчику (даже младшему), что такое XML. YAML еще не так широко используется.
Схема
С помощью XML и производитель, и потребитель могут договориться о схеме для установления надежного формата обмена данными.
Синтаксис
XML очень богат: пространства имен, сущности, атрибуты.
Внешние зависимости
Java и Python имеют поддержку XML в стандартных библиотеках. YAML требует внешней зависимости для этих языков.
Зрелость
XML-спецификация более старая, и она надежна; в то время как YAML все еще находится в стадии строительства. YAML 1.1 содержит несоответствия (есть даже вики для ведения списка ошибок).
1043 * XSLT *
Если вам нужно преобразовать документ XML в другой формат (XML, HTML, YAML, PDF), вы можете использовать XSLT, в то время как для YAML вам нужно написать программу.