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

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

YAML должен вместо этого стоять за is,еще один язык разметки.

5 ответов


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

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

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


вот цитата из страница О YAML:

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

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


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

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

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


Я не вижу, что делает 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.так далее. YAML предназначен для легкого перевода на структуры, которые являются общими для различных языков, указанных выше.

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