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

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

     25 Отображение особых применений простых и сложных определений типа (заменяемых, обнуляемых)

25.1 Применение данного раздела является прямым запросом из других мест настоящего стандарта сформировать определение типа АСН.1, соответствующее высокоуровневому простому определению типа или сложному определению типа, используемому в качестве определения типа объявлений элемента, которые имеют заменяемое определение типа (см. 14.7) и обнуляемы.

25.2 Использование простого определения типа (STD, например) или сложного определения типа (CTD, например) должно быть отображено в тип выбора АСН.1.

25.3 Одна из альтернатив должна быть добавлена к типу выбора АСН.1 для STD или CTD и одна альтернатива должна быть добавлена для каждого высокоуровневого простого определения типа и сложного определения типа в исходной схеме XSD, которая получается ограничением или расширением (непосредственно или косвенно) STD или CTD.

25.4 Для каждой альтернативы "identifier" в "NamedType" должен быть сформирован применением 10.3 к имени простого определения типа или сложного определения типа, соответствующему альтернативе, и "Туре" в "NamedType" должно быть определением типа АСН.1 ("DefinedType"), полученным применением 10.2 к присвоению типа АСН.1, полученному применением раздела 30 к простому определению типа или сложному определению типа.

25.5 Первой альтернативой, добавленной к типу выбора, должна быть альтернатива, соответствующая STD или CTD. Последующие альтернативы должны быть добавлены к типу выбора в порядке, основанном на целевом пространстве имен и имени простого определения типа и сложного определения типа. Определения типа должны быть сначала отсортированы по целевому пространству именотсутствующим пространством имен, предшествующим всем именам пространства имен, отсортированным по возрастанию в лексикографическом порядке), а затем - по имени (также в лексикографическом порядке возрастания) внутри каждого целевого пространства имен.

25.6 Заключительная команда кодирования USE-TYPE должна быть присвоена типу выбора АСН.1.

25.7 Если ограничение значения было предоставлено при инициировании данного пункта, то заключительная команда кодирования DEFAULT-FOR-EMPTY должна быть присвоена каждой альтернативе типа выбора АСН.1, соответствующего простому или сложному определению типа, что проверит гипотетический элемент, содержащий каноническое лексическое представление значения в ограничении значения, но не другим альтернативам (если таковые имеются). Применяется один из трех следующих пунктов.

25.7.1 Если альтернатива соответствует простому определению типа, "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY должно быть получено применением раздела 16 к значению в ограничении значения, рассматриваемому как значение в области значений простого определения типа.

25.7.2 Если альтернатива соответствует сложному определению типа, тип содержимого которого является простым определением типа, "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY должно быть получено применением раздела 16 к значению в ограничении значения, рассматриваемому как значение в области значений простого определения типа.

25.7.3 Если альтернатива соответствует сложному определению типа со смешанным типом содержимого, "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY должно быть получено применением раздела 16 к значению в ограничении значения, рассматриваемому как значение в области значений xsd:string с whiteSpace preserve.

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

25.8.1 Если альтернатива была присвоена заключительной команде кодирования DEFAULT-FOR-EMPTY в 25.7 и соответствует простому определению типа, ограничение внутреннего подтипа должно применить к альтернативе (которой является тип последовательности АСН.1 с заключительной командой кодирования USE-NIL) другое ограничение внутреннего подтипа АСН.1, которое, в свою очередь, должно применить к компоненту content ключевое слово PRESENT и одиночное ограничение значения АСН.1 с "Value", идентичным "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY.

25.8.2 Если альтернатива была присвоена заключительной команде кодирования DEFAULT-FOR-EMPTY в 25.7 и соответствует сложному определению типа, тип содержимого которого является простым определением типа, ограничение внутреннего подтипа должно применять к альтернативе (которой является тип последовательности АСН.1 с заключительной командой кодирования USE-NIL) другое ограничение внутреннего подтипа АСН.1, которое применяет к компоненту content ключевое слово PRESENT и одиночное ограничение значения АСН.1 с "Value", идентичным "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY.

25.8.3 Если альтернатива была присвоена заключительной команде кодирования DEFAULT-FOR-EMPTY в 25.7 и соответствует сложному определению типа со смешанным типом содержания, ограничение внутреннего подтипа должно применить к альтернативе (которой является тип последовательности АСН.1 с заключительной командой кодирования USE-NIL) другое ограничение внутреннего подтипа АСН.1, которое применяет к:

а) компоненту embed-values одиночное ограничение значения АСН.1 с "Value", состоящем в одиночном появлении "Value", идентичном "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY; и

б) компоненту content ключевое слово PRESENT.

25.8.4 Если альтернатива не была присвоена заключительной команде кодирования DEFAULT-FOR-EMPTY в 25.7, ограничение внутреннего подтипа должно применить ограничение присутствия ABSENT к альтернативе.