почему --- (3 тире / дефис) в файле yaml? - PullRequest
0 голосов
/ 11 июня 2018

Так что я только начал использовать YAML файл вместо application.properties, так как он более читабелен.Я вижу в YAML файлах, они начинаются с ---.Я гуглил и нашел следующее объяснение.

YAML использует три черты («---») для отделения директив от содержимого документа.Это также служит сигналом для начала документа, если директивы отсутствуют.

Кроме того, я попробовал образец без --- и понял, что их не обязательно иметь.

Думаю, у меня нет четкого понимания directive и document.Может кто-нибудь объяснить, пожалуйста, на простом примере?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Как вы уже узнали, три черточки --- используются для оповещения о начале документа , то есть:

  1. Для обозначения начала документа после директив , т.е. %YAML или %TAG строк в соответствии с текущей спецификацией.Например:

    %YAML 1.2
    %TAG !foo! !foo-types/
    ---
    myKey: myValue
    
  2. Чтобы сообщить о начале документа, когда у вас есть несколько документов yaml в одном потоке , например, файл yaml:

    doc 1
    ---
    doc 2
    

    Если в doc 2 есть несколько предшествующих директив, то мы должны использовать три точки ..., чтобы указать конец doc 1 (и начало потенциальных директив, предшествующих doc 2) парсеру.Например:

    doc 1
    ...
    %TAG !bar! !bar-types/
    ---
    doc 2
    

Спецификация хороша для реализации парсера yaml.Тем не менее, эта статья легче читать с точки зрения пользователя.

0 голосов
/ 11 июня 2018

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

Давайте посмотрим на документацию

3.2.3.4.Директивы

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

Один пример этого также можно найти в документации для директивы YAML

%YAML 1.2 # Attempt parsing
           # with a warning
---
"foo"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...