Если YAML не является языком разметки, что это такое?

Я не вижу, что делает YAML менее разметочным языком, чем XML. Цель языка разметки - определить структуру документа, и YAML делает именно это. (YAML означает, что Yaml не является языком разметки.)

Вместо этого YAML должен обозначать еще один язык разметки.

Ответ 1

Таким образом, язык разметки предполагает базовый текст, обычно читаемый человеком, а затем специальные индикаторы или "разметку", которые непосредственно обрабатывают. Идея исходит от редактора, который возьмет печатную версию рукописи кого-то и отметит ее, чтобы показать, куда должны идти новые строки, редактировать и т.д.

Таким образом, SGML является метаязыком для объявления языков разметки, а HTML - языком разметки. В 1996-7, когда XML появился на сцене, он был продан как упрощенный метаязык SGML для создания языков разметки. В XML (и SGML) у вас есть элементы, чтобы "маркировать" часть текста, а затем атрибуты, которые изменяют маркировку. Со временем XML был использован гораздо больше, чем разметка документа, хотя люди использовали его для сериализации данных - даже если он никогда не был предназначен для такой работы. Конечно, это была большая проблема для решения.

YAML и JSON появились на сцене и сосредоточились на сериализации данных, а не на разметке документа. На этих языках просто нет текста основного документа.
Следовательно, YAML не является языком разметки, является довольно точным отличием от XML.

Ответ 2

Вот настоящая история...:)

Кларк, Орен и я начали работать над YAML в апреле 2001 года. Орен и Кларк были частью списка рассылки SML, который пытался упростить XML. Я только что написал язык сериализации данных для Perl, называемый Data:: Denter. Кларк связался со мной, чтобы рассказать мне об идее, которую они назвали YAML, которая похожа на синтаксис Data:: Denter. Кларк уже приобрел yaml.org.

После нескольких месяцев совместной работы я отметил, что YAML (который определенно стоял за еще один язык разметки) на данный момент не был языком разметки (отмечая различные элементы текстовый документ), но язык сериализации (текстовое представление типизированных/циклических графиков данных). Нам всем понравилось имя YAML, поэтому мы отбросили его на YAML - это не язык разметки.

http://yaml.org/spec/ начинается с:

YAML ™ (рифмы с "верблюдом" ) - это дружественный к человеку язык с перекрестными языками, основанный на Unicode язык сериализации данных, разработанный вокруг общих исходных структур данных гибких языков программирования.

Я не мог бы сказать это лучше себя...:

Ответ 3

Здесь цитата из страница о YAML:

Я полагаю, что самый первый вопрос в умах читателей должен быть "почему имя YAML?" Существует ряд инструментов, которые были приняты акронимы формы "YA *", означающие "Еще один XXX". В объятиях расы с открытым исходным кодом, YAML избегает своего подразумеваемого акронима, вместо этого оседание на рекурсивном "ЯМЛ - это не язык разметки". Eсть определенный смысл для этого, однако: YAML делает то, что языки разметки делают, но не требуя каких-либо, ну, разметки.

Название было выбрано потому, что оно требует гораздо меньшей разметки, чем другие традиционные языки, такие как XML. Он отличает его как ориентированный на данные, а не ориентированный на разметку.

Ответ 4

XML унаследовал часть "ML" своего имени от HTML и SGML, которые являются языками "разметки" в том смысле, что они описывают поток простого текста вместе с инструкциями разметки, такими как "этот фрагмент текста должен быть полужирным" или " этот фрагмент текста является заголовком ". То есть эти конкретные части текста отмечены как жирный шрифт или заголовок.

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

YAML не является языком разметки, потому что его модель данных содержит только древовидную структуру, без понятия базового линейного текста, к которому применяется древовидная структура. Там нечего размечать или, иначе говоря, данные, представленные потоком YAML, не являются разметкой. Напротив, данные, представленные тегом XML, являются разметкой или, по крайней мере, согласно некоторым точкам зрения. (В обоих случаях представление указанных данных содержит некоторую разметку, такую как двоеточия и отступы в YAML или '=' и кавычки в XML, но это не главное).

Ответ 5

Я не вижу, что делает YAML меньше, чем язык разметки, чем XML.

Есть несколько преимуществ использования YAML вместо XML. Прежде всего, это более человечно читаемый. Не так, как структура данных XML, мы должны определить и дать имя тега для каждого элемента данных. Разработчики будут чувствовать себя громоздкими для XML-кода, и пользователям довольно сложно понять XML-документы. Фактически, XML предназначен для машинного обмена машиной, а не для связи между пользователями и машиной. Поскольку YAML любезно понятен для человека, вы можете обработать его для пользователей, чтобы читать/изменять источник данных и использовать его для связи с компьютерной программой.

Вот пример, показывающий, как их структуры отличаются.

XML Examples:
<busNo>101
    <busStop>ABC
           <busFee>5.4</busFee>
    </busStop>
    <busStop>CUHK
           <busFee>5.4</busFee>
    </busStop>
    <busStop>HKU
           <busFee>5.4</busFee>
    </busStop>
    <busStop>XYZ
           <busFee>5.4</busFee>
    </busStop>
</busNo>

YAML Examples:
--- #bus no
101  : [ABC:5.4, HKU:5.4, CUHK:5.4, XYZ:5.4]

Лучший пример использования YAML используется для файла конфигурации программы. Конечно, вы можете проанализировать свой собственный формат файла конфигурации в XML и передать его в свою программу. Но вместо этого вы можете использовать YAML. Кроме того, у вас может быть более быстрое развитие, особенно в веб-разработке. YAML разработан с использованием языков сценариев, таких как Python, Perl, Ruby.etc. YAML предназначен для простого перевода на структурные решения, которые являются общими для различных языков, указанных выше.

В заключение, YAML предназначен для чтения человеком, что делает менее язык разметки, чем XML.