YAML по сравнению с XML

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


person Iguramu    schedule 20.08.2009    source источник
comment
Где ты это прочитал?   -  person Sean Bright    schedule 21.08.2009


Ответы (5)


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

Самая большая разница, однако, заключается в том, что XML предназначен для использования в качестве языка разметки, а YAML — в большей степени формат данных. Представление простых иерархических данных, как правило, более изящно выполняется в YAML, но настоящий размеченный текст неудобно представлять.

РЕДАКТИРОВАТЬ: Я хотел бы добавить для справки, что YAML по сути (хотя и не исторически) является «более чистой» версией JSON («Обозначение объекта Javascript»), которая в значительной степени устраняет воспринимаемый линейный шум последнего (скобки и фигурные скобки). Если вы не можете найти подходящую библиотеку YAML для конкретного проекта, JSON — более широко поддерживаемая альтернатива со многими преимуществами YAML.

person Thom Smith    schedule 20.08.2009
comment
Я знаю, что это старо, но -1, потому что это даже не пытается обосновать XML (например, схемы и запросы, которые являются всего лишь двумя преимуществами). - person ; 20.02.2013
comment
Я опубликовал его не для того, чтобы обосновать XML, а для того, чтобы в общих чертах объяснить их назначение. Любой, кто знает, что он хочет запускать XQuery, будет иметь гораздо более высокое понимание XML, чем может дать комментарий из трех абзацев, и любой, кто этого не знает, не должен выбирать форматы на основе этого. - person Thom Smith; 20.02.2013
comment
Так же, как небольшая педантичность RE JSON: YAML предназначен не быть таковым, он предшествует JSON на несколько лет и фактически является надмножеством языка. Сначала это произошло случайно, афаиу, всего с парой незначительных отличий, пока это не было замечено, после чего спецификации были совместно приведены в соответствие друг с другом. - person Elias Vasylenko; 28.05.2013
comment
JSON не поддерживает комментарии, что является большим недостатком. - person user1633272; 07.05.2017
comment
Почти каждое сравнение XML и JSON, которое я видел, упоминает отсутствие запросов. В настоящее время существует множество способов запроса JSON и других неструктурированных данных. Даже mysql делает это. - person abalter; 14.05.2018

YAML менее многословен, чем XML; однако YAML предназначен только для данных и технически не является языком разметки (YAML A'int Markup L язык).

person cakeforcerberus    schedule 20.08.2009
comment
если вы не воспользуетесь его первоначальным названием, которое называется «Еще один язык разметки» yaml.org/spec. /history/2001-08-01.html - person Matthew Whited; 16.11.2020
comment
@MatthewWhited, если вы не используете его настоящее имя, которое подразумевается в ответе yaml.org - person Дмитрий Кулешов; 28.02.2021

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

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

И варианты запроса данных:

  • XPath (в версии 2.x еще лучше)
  • XQuery (больше не представляет интереса)

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

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

person RobF    schedule 27.08.2012
comment
+1 Люди склонны забывать схемы и запросы, когда говорят о JSON/YAML. Я использую гибридный подход, при котором данные отображаются в виде JSON в моих WS, но внутри обрабатывается XML. Это работает довольно хорошо, если придерживаться некоторых правил согласованности. - person ; 20.02.2013
comment
Кроме того, не забывайте о XSLT — хотя версии 1.0/1.1 несколько скучны, а версия 2.0 не поддерживается Microsoft, они могут очень аккуратно измельчать XML-документы для дальнейшей обработки. - person ; 20.02.2013
comment
И что еще хуже, люди склонны забывать, что такие инструменты также существуют для JSON и YAML (хотя, согласно быстрому поиску в Google, кажется, что инструменты запросов для YAML находятся в зачаточном состоянии). Наличие хороших инструментов для работы с болезненным форматом может оправдать его использование только до тех пор, пока не появятся аналогичные инструменты для менее болезненных форматов. - person Andy; 09.08.2014
comment
Хороший вопрос, но я хотел бы отметить, что нет никаких причин, по которым yQuery и yPath нельзя было бы создать в какой-то момент, и если вы хотите создать yQuery или yPath, то тот факт, что они еще не существуют, скорее всего, будет большое преимущество. - person CommaToast; 14.11.2014

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

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

person EBGreen    schedule 20.08.2009

Я не очень уверен в том, что YAML — это будущее. Хотя я использовал его, и это WorksForMe™, у меня часто возникают жалобы на спецификацию. Последний из них: Почему мне не нравится YAML.

person Dominic Mitchell    schedule 21.08.2009