2009-08-20 4 views
40

Я читал, что через годы yaml будет использоваться вместо xml. Просьба сравнить относительные преимущества и недостатки каждой спецификации.YAML по сравнению с XML

+5

Где вы это читали? –

+0

В каком контексте? –

ответ

58

YAML намного меньше подробностей. Отношение сигнал-шум выше без всех скобок. Это делает его более легким для чтения и редактирования для многих людей. С другой стороны, немного (только немного) сложнее разобрать.

Главное отличие заключается в том, что XML предназначен для языка разметки, а YAML - это скорее формат данных. Представление простых, иерархических данных, как правило, более изящно сделано в YAML, но фактический помеченный текст неудобен для представления.

EDIT: Я хотел бы добавить для справки, что YAML по существу (хотя и не исторически) является «более чистой» версией JSON («Обозначение объекта Javascript»), которая в значительной степени устраняет воспринимаемый линейный шум последнего (скобки и брекеты). Если вы не можете найти подходящую библиотеку YAML для конкретного проекта, JSON является более широко используемой альтернативой со многими преимуществами YAML.

+6

Я знаю, что это старый, но -1, потому что этот * даже не пытается * сделать случай для XML (например, схемы и запросы, которые являются всего лишь двумя привилегиями). – 2013-02-19 22:34:14

+1

Я не публиковал его, чтобы «сделать дело для XML», но объяснить в общих чертах цели этих двух. Любой, кто знает, что они хотят запускать XQuery, будет иметь гораздо более глубокое понимание XML, чем комментарий с тремя абзацами, и любой, кто этого не делает, не должен выбирать форматы на основе этого. –

+5

Точно так же, как небольшое педантизм RE JSON: YAML * предназначен для того, чтобы не быть такой вещью, она предшествует * JSON на несколько лет и на самом деле является надмножеством языка. Это произошло изначально случайно, afaiu, только с несколькими незначительными отличиями, пока не было замечено, и в этот момент спецификации были согласованы друг с другом. –

24

YAML менее подробный, чем XML; однако, YAML предназначен только для данных и не является технически язык разметки (Y ПОД «Int М arkup л anguage).

+0

ссылка на это сообщение отключена –

7

Главным преимуществом, которое я вижу, является то, что он более легко читается человеком. Мне также нравится это немного лучше, чем XML, поскольку в нем уже встроена концепция определенных структур данных (словарей и массивов).

С другой стороны, поддержка библиотеки для разбора YAML нигде не близка к XML, поэтому его труднее использовать для выполнения одного из основных применений XML. Это взаимодействие между приложениями.

3

Я не настолько убежден в том, что YAML является будущим. Пока я использовал его, и это WorksForMe ™, я часто жалуюсь на спецификацию. Последний из которых - Why I Don't Like YAML.

6

Большой плюс для XML являются параметры проверки (мнения в скобках):

  • Schematron (очень мощный)
  • W3C XML Schema (твердый)
  • DTD (не так приятно (это даже не XML))
  • XSD (наиболее часто используемых)

и опции для запроса данных:

  • XPath (в версии 2.х даже лучше)
  • XQuery (в основном не интересует больше)

YAML, вероятно, самый простой для чтения для людей в большинстве случаев.

JSON достаточно прост в чтении, и именно так JavaScript хранит данные (исправьте меня, если не так). Мне очень нравится использовать JSON при написании собственных языков программирования стиля C для анализа значений.

+0

+1 Люди склонны забывать схемы и запросы, когда говорят о JSON/YAML. Я использую гибридный подход, где я обрабатываю данные как JSON в своих WS, но обрабатываю XML внутри себя. Он работает достаточно хорошо, если придерживаться некоторых правил согласованности. – 2013-02-19 22:33:41

+0

Кроме того, не забудьте XSLT - в то время как 1.0/1.1 являются своего рода отверстиями, а 2.0 не поддерживается Microsoft, они могут очень тщательно обрезать XML-документы для дальнейшей обработки. – 2013-02-19 22:38:09

+3

И что еще хуже, люди, как правило, забывают, что эти инструменты также существуют для JSON и YAML (хотя, согласно быстрому поиску Google, похоже, что инструменты запросов для YAML находятся в зачаточном состоянии). Наличие хороших инструментов для работы с болезненным форматом может только оправдать его использование до тех пор, пока не появятся аналогичные инструменты для менее болезненных форматов. – Andy