Я читал, что через несколько лет вместо xml будет использоваться yaml. Пожалуйста, сравните относительные преимущества и недостатки каждой спецификации.
YAML по сравнению с XML
Ответы (5)
YAML гораздо менее многословен. Соотношение сигнал/шум выше без всех скобок. Это субъективно облегчает чтение и редактирование для многих людей. С другой стороны, его немного (только немного) сложнее разобрать.
Самая большая разница, однако, заключается в том, что XML предназначен для использования в качестве языка разметки, а YAML — в большей степени формат данных. Представление простых иерархических данных, как правило, более изящно выполняется в YAML, но настоящий размеченный текст неудобно представлять.
РЕДАКТИРОВАТЬ: Я хотел бы добавить для справки, что YAML по сути (хотя и не исторически) является «более чистой» версией JSON («Обозначение объекта Javascript»), которая в значительной степени устраняет воспринимаемый линейный шум последнего (скобки и фигурные скобки). Если вы не можете найти подходящую библиотеку YAML для конкретного проекта, JSON — более широко поддерживаемая альтернатива со многими преимуществами YAML.
YAML менее многословен, чем XML; однако YAML предназначен только для данных и технически не является языком разметки (YAML A'int Markup L сильный > язык).
Большим плюсом для xml являются варианты проверки (мнения в скобках):
- Схематрон (чрезвычайно мощный)
- XML-схема W3C (твердая)
- DTD (не очень приятно (это даже не xml))
- XSD (наиболее часто используемый)
И варианты запроса данных:
- XPath (в версии 2.x еще лучше)
- XQuery (больше не представляет интереса)
YAML, вероятно, легче всего читать людям в большинстве случаев.
JSON довольно легко читается, и именно так JavaScript хранит данные (поправьте меня, если я ошибаюсь). Мне очень нравится использовать JSON при написании собственных языков программирования в стиле C для анализа значений.
Основное преимущество, которое я вижу, заключается в том, что он легче читается человеком. Мне он также нравится немного больше, чем XML, потому что в нем уже заложена концепция определенных структур данных (словарей и массивов).
С другой стороны, библиотечная поддержка синтаксического анализа YAML не имеет ничего общего с поддержкой XML, поэтому ее сложнее использовать для выполнения одного из основных применений XML. Это взаимодействие между приложениями.
Я не очень уверен в том, что YAML — это будущее. Хотя я использовал его, и это WorksForMe™, у меня часто возникают жалобы на спецификацию. Последний из них: Почему мне не нравится YAML.