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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24.8.2 Если альтернатива была присвоена заключительной команде кодирования DEFAULT-FOR-EMPTY в 24.7 и соответствует сложному определению типа, типом содержимого которого является простое определение типа, ограничение внутреннего подтипа должно применять к альтернативе другое ограничение внутреннего подтипа АСН.1, которое применяет к компоненту base одиночное ограничение значения с "Value", идентичным "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY.

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

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