Являются ли JSON и YAML языками разметки?

В меню загрузки я выбирал свой USB-накопитель. Я не видел, чтобы был другой вариант под названием «устаревший USB ». Выбор этой опции решил проблему.

-2
22.12.2020, 18:17
1 ответ

Если вы хотите узнать об обеих технологиях, я предлагаю прочитать их спецификации:

То, что сказал пользователь YAML, в целом правильно :это не столько язык разметки , сколько нотация для таких вещей, как объекты. Я думаю, что определение JSON говорит об этом лучше всего:

JSON (JavaScript Object Notation) is a lightweight data-interchange format.

Язык разметки используется, например, для разметки текста.

Тот факт, что языки разметки часто используются для определения всей структуры объекта, (такие как HTML или XML, )скрывает различие, но хотя такие вещи, как YAML и JSON, могут определять только полные структуры (, даже если это часть -более крупной коллекции, своего рода ), в то время как разметка может полностью отсутствовать в документе. Причина, по которой в таких вещах, как HTML, пустой документ все еще содержит некоторую структуру (, например <html> <head>... </head> <body>... </body> </html>, связана с ограничениями, добавленными позже. Технически обычный текстовый документ без тегов также является допустимым HTML.

Другим интересным подходом являются такие вещи, как Markdown , который, очевидно, является языком разметки и редко используется для определения объектных -подобных структур для обмена информацией. С другой стороны, у вас есть TOML("Собственный язык разметки Тома" ), который называет себя языком разметки, но явно им не является.

Я еще не видел, чтобы JSON использовался в качестве языка разметки, то же самое для TOML. YAML технически можно использовать в качестве языка разметки, но в этом нет необходимости, потому что есть решения получше. Множество языков разметки создают более или менее хорошие языки определения объектов (, такие как XML ), но использование языка определения данных для разметки обычно ужасно. Но есть случаи, когда различие в целом исключительно размыто -, поэтому у нас есть куча языков разметки , которые вроде как делают оба (как HTML ). В какой-то степени это зависит от варианта использования.Является ли язык в основном используемым для аннотаций, будь то рендеринг, сетевое общение и т. д., но основное внимание здесь уделяется аннотированному содержимому un -, тогда это язык разметки.

Если вместо этого фактический контент рассматривается только как данные, а не как «документ», то это язык определения данных и т. д. Если разметка отсутствует в документе, это не разрушает документ, содержимое все еще там, просто, возможно, менее организованное и менее читабельное или способное -к синтаксическому анализу.

В языках определения данных, таких как JSON, набор данных на самом деле не существует, если такая структура, как JSON, отсутствует, а остается только содержимое (, такое как обычный текст )-, который больше не будет JSON.

На мой взгляд, XML — это неправильное название. В его названии говорится, что это язык разметки, но он почти никогда не используется как таковой, вместо этого он используется только для сериализации данных. Следовательно, я думаю, что термин «язык разметки» в именах часто используется неправильно. Причиной может быть (я полагаю, я не знаю наверняка )первоначальное намерение. Первоначально XML задумывался как «расширяемый язык разметки», но в итоге он использовался только для сериализации данных, нотации объектов и т. д. Другой причиной может быть маркетинг и т. д.

Наконец, я хотел бы процитировать эту аннотацию из спецификации YAML(некоторые слова, выделенные мной):

1.3. Relation to JSON

Both JSON and YAML aim to be human readable data interchange formats. However, JSON and YAML have different priorities. JSON’s foremost design goal is simplicity and universality. Thus, JSON is trivial to generate and parse, at the cost of reduced human readability. It also uses a lowest common denominator information model, ensuring any JSON data can be easily processed by every modern programming environment.

In contrast, YAML’s foremost design goals are human readability and support for serializing arbitrary native data structures. Thus, YAML allows for extremely readable files, but is more complex to generate and parse. In addition, YAML ventures beyond the lowest common denominator data types, requiring more complex processing when crossing between different programming environments.

YAML can therefore be viewed as a natural superset of JSON, offering improved human readability and a more complete information model. This is also the case in practice; every JSON file is also a valid YAML file. This makes it easy to migrate from JSON to YAML if/when the additional features are required.

[…]

It may be useful to define a intermediate format between YAML and JSON. Such a format would be trivial to parse (but not very human readable), like JSON. At the same time, it would allow for serializing arbitrary native data structures, like YAML. Such a format might also serve as YAML’s "canonical format". Defining such a “YSON” format (YSON is a Serialized Object Notation) can be done either by enhancing the JSON specification or by restricting the YAML specification. Such a definition is beyond the scope of this specification.

Обратите внимание на отсутствие термина «язык разметки» в этом абзаце. Вместо этого упоминается, что это формат обмена и предназначен для сериализации данных. В последней части они обсуждают создание промежуточного формата, который может быть лучше использован для любых заявленных требований. Это еще раз иллюстрирует тот факт, что грань между «языком разметки» и «нет» неясна, и существует своего рода определение «серой зоны».


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

И если ваша книга противоречит тому, что разработчик говорит о своей технологии или продукте, :учебники могут быть неправильными, но также и то, что определяет разработчик или автор, может не иметь смысла, поэтому не принимайте и то, и другое как истину. Если вы сомневаетесь, узнайте об обеих технологиях и посмотрите, насколько они соответствуют тому, что они говорят о себе или тому, что написано в учебнике. Некоторые авторы учебников также просто принимают определение разработчика и т. д.

.

Обычно вы всегда можете обратиться к нему, используя несколько более широкое определение. XML и JSON, безусловно, являются объектными нотациями и могут использоваться в качестве языков определений. Такие вещи, как OGDL , просто называют себя "языком определения упорядоченного графа", что было бы правильным описанием для таких вещей, как XML или почти любого языка, использующего древовидные -подобные структуры, включая JSON.

3
18.03.2021, 22:41

Теги

Похожие вопросы