ГОСТ Р ИСО/МЭК 13250-6—2016
3.2 Десериализация
Данный подраздел определяет, как экземпляры СТМ синтаксиса десериализуются в экземпляры
моделиданных, определенной в ИСО/МЭК 13250-2. Сериализация определена неявно, но имплемента
ции должны производить СТМ сериализации, которые при десериализации в новый экземпляр модели
данных будут производитьтакой экземпляр модели данных, который имеетканонизацию, аналогичную
исходному экземпляру моделиданных, согласно ИСО/МЭК 13250-4.
Входнымиданнымидля процессадесериализации являются:
- опциональное наименование набора символов в соответствии с IANA-CHARSETS, что задает
кодировку СТМ экземпляра;
- байтовый поток, который преобразуется в символьный поток с помощью следующих шагов:
- еслиопциональное входноеназваниенаборасимволовпредоставлено, токодировкаустанавли
вается в указанное значение;
- еслипотокбайтовначинаетсяс EF ВВ BF (UTF-8 метка порядка байтов), то кодировка устанавли
вается как «UTF-8»;
- если кодировка уже установлена вдругое значение из-заопционального названия набор симво
лов. тоэто является ошибкой;
- если последующиебайты в потокесодержат последовательность25 656Е63 6F64 69 6Е 67 (про
центная кодировка ASCII), все последующие байты 09 или 20 пропускаются до первых считанных
22байт. Следующая байтоваяпоследовательностьдо следующего22байта(исключительно)интерпре
тируется какнаименование набора символов в соответствии с IANA-CHARSETS;
- если кодировка уже установлена в другое значение, то это является ошибкой;
- если предыдущие действия недают кодировку, она должна бытьустановлена как «UTF-8»;
- поток байтов преобразуется в зависимостиот кодировки в Unicode так. что опциональная байто
вая последовательность EF ВВ BF удаляется из начала байтового потока.
Такой символьный поток обрабатывается согласно грамматике, указанной в настоящем стан
дарте:
- абсолютный IRI. Это ИРИ, из которого считывается поток байтов, известный как документ IRI.
Такой IRI должен быть всегда предоставлен, так как это необходимодля того, чтобы назначить иденти
фикаторы элементов тематических элементов, созданных во времядесериализации. Если СТМ экзем
пляр не был считан из какого-либо конкретного IRI, приложение в ответе за предоставление
подходящего IRI;
- абсолютный IRI, который будетиспользоватьсядля разрешения подстановочныхзнаков против
3.3.8; и который называется «wildcard-iri». Если wildcard-iri не предоставлен, его значение берется из
документа IRI;
- неотрицательное целое число, называемое «wildcard-counter». Если wildcard-counter не предо
ставлен. то он устанавливается в начальное значение, равное 0.
Десериализация выполняется путем обработки каждого компонента СТМ источника в порядке
документов. Компоненты определяются в виде текста, соответствующего синтаксической переменной
EBNF. Для каждого встречающегося компонента выполняются операции, указанные в настоящем под
разделедля соответствующейсинтаксической переменной.
Всякий раз. когда создается новый информационный элемент, все его свойства, которые имеют
установленныезначения, устанавливаютсяв начальное значение ввидепустого множества, вседругие
свойства инициализируются в NULL.
3.3 Распространенные синтаксические конструкции
3.3.1 Пробол
Пробел (Whitespace) состоит из одного или более пробельных символов (#х20), разрывов строки,
переводовстроки или табуляции.
Пробельныйсимвол разрешен вездедля разделениятокенов (терминалов ине терминалов).
3.3.2 Комментарии
Комментарии являютсяфрагментами потокасимволов, которые игнорируются СТМ процессором.
Комментарии разрешены там. где разрешены пробельныесимволы.
Многострочные комментарии разграничиваютсяс помощью #( и )# имогут быть вложенными.
Однострочные комментарии начинаются со знака решетки (#) и продолжаются до конца текущей
строкилибо до конца символьного потока, в зависимости от того, что наступит раньше.
2