Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-5-2013 Информационная технология (ИТ). Правила кодирования AСН.1. Часть 5. Отображение определений W3C схемы XML в AСН.1

     19 Отображение частиц

19.1 Применение данного раздела является прямым запросом из других мест настоящего стандарта сформировать упорядоченный список из нуля или более "NamedType" АСН.1, соответствующих частице.

Примечания

1 Этот раздел не запрашивается для всех частиц. Например, (самая важная) частица типа содержимого (content type) сложного определения типа отображается особым образом, если ее термом (term) является модельная группа с наборщиком последовательности или всего (см. 20.8).

2 В большинстве случаев этот пункт формирует один "NamedType". Он может сформировать ноль "NamedType" или два и более "NamedType" только тогда, когда частица модельной группы последовательности содержит другую частицу модельной группы последовательности с min occurs и max occurs, равными одному, в этом случае частицы внутренней модельной группы последовательности отображаются в АСН.1, как если бы они были частицами внешней модельной группы последовательности.

19.2 Следующие три пункта определяют термины, которые используются в оставшейся части раздела 19.

19.2.1 Если и min occurs, и max occurs частицы равно единице, то:

а) если термом частицы является модельная группа с наборщиком последовательности, не связанным с определением модельной группы, и сама частица принадлежит модельной группе с наборщиком последовательности, частицу называют "частицей бессмысленной последовательности (pointless sequence particle)";

б) иначе частицу называют "частицей обязательного присутствия (mandatory presence particle)".

19.2.2 Если min occurs равно нулю, a max occurs равно единице, то:

а) если отображение частицы существует для формирования компонента типа последовательности АСН.1, частица называется "частицей необязательного присутствия (optional presence particle)";

б) иначе частица называется "частицей необязательного одиночного появления (optional singleoccurrence particle)".

19.2.3 Если max occurs равно двум и более, частица называется "частицей многократного появления (multiple-occurrence particle)".

19.3 "Частица бессмысленной последовательности" должна быть отображена в упорядоченный список (L, например) из нуля или более "NamedType" следующим образом. Список L должен быть изначально пустой. Для каждой частицы (Р, например) в модельной группе, которая является термом частицы по порядку, упорядоченный список из нуля и более "NamedType" должен быть получен рекурсивным применением раздела 19 к частице Р, и эти "NamedType" должны быть добавлены в список L в том же порядке.

19.4 "Частица обязательного присутствия" или "частица необязательного присутствия" должна быть отображена в "NamedType", как указано далее.

19.4.1 "identifier" в "NamedType" должен быть сформирован применением 10.3 к символьной строке, указанной в 19.6, и "Туре" в "NamedType" должен быть сформирован с применением 19.7 к терму частицы.

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

19.5 "Частица необязательного одиночного появления" или "Частица многократного появления" должна быть отображена в "NamedType", как указано далее.

19.5.1 "identifier" в "NamedType" должен быть сформирован с применением 10.3 к символьной строке, полученной добавлением суффикса "-list" к символьной строке, указанной в 19.6. "Туре" в "NamedType" должен быть типом последовательности.

19.5.2 Не считая того, когда min occurs равно нулю и max occurs неограниченно (unbounded), ограничение размера должно быть добавлено к типу последовательности в соответствии с таблицей 6.

Таблица 6 - АСН.1 ограничение размера соответствующее min occurs и max occurs

min occurs и max occurs

Ограничение размера АСН.1

min occurs=n max occurs=n

n2

SIZE (n)

min occurs=min max occurs=max

max>min и max2

SIZE (min..max)

min occurs=0 max occurs=1

SIZE (0..1)

min occurs=min max occurs=неограниченно

min1

SIZE (min..MAX)

19.5.3 Если термом частицы является объявление элемента, то компонент типа последовательности должен быть "NamedType". "identifier" в этом "NamedType" должен быть сформирован с применением 10.3 к имени объявления элемента, и "Туре" в этом "NamedType" должно быть сформирован с применением 19.7 к терму частицы.

19.5.4 Если термом частицы является групповой символ, то компонент типа последовательности должен быть "NamedType". "identifier" в этом "NamedType" должен быть elem, и "Туре" в этом "NamedType" должен быть сформирован с применением 19.7 к терму частицы.

19.5.5 Если термом частицы является модельная группа, то компонент типа последовательности должен быть "Туре" и должен быть сформирован с применением 19.7 к терму частицы.

19.5.6 Заключительная команда кодирования UNTAGGED должна быть присвоена к типу последовательности.