27.1 Применение данного раздела является прямым запросом из других мест настоящего стандарта сформировать определение типа АСН.1, соответствующее либо:
а) высокоуровневому, анонимному или XSD-встроенному сложному определению типа, используемому в качестве определения типа объявлений элемента, которые не имеют заменяемого определения типа (см. 14.7) и обнуляемы; либо
б) высокоуровневому сложному определению типа, которое является элементом иерархии развития определения типа объявлений элемента, которые имеют заменяемое определение типа (см. 14.7) и обнуляемы.
27.2 Использование XSD-встроенного сложного определения типа должно быть отображено в определении типа АСН.1 ("DefinedType"), как указано в разделе 11.
27.3 Использование высокоуровневого или анонимного сложного определения типа должно быть отображено в определение типа АСН.1, как указано в 27.4-27.12.
27.4 Определение типа АСН.1 должно быть типом последовательности АСН.1, и один или более компонентов должны быть добавлены к нему, как указано в 27.5-27.11.
27.5 Если тип содержимого сложного определения типа представляет собой смешанную модель содержимого, то компонент embed-values должен быть добавлен к типу последовательности АСН.1, как указано в 20.5.
27.6 Если тип содержимого сложного определения типа является частицей, термом которой является модельная группа с наборщиком всего, то компонент order должен быть добавлен к типу последовательности АСН.1, как указано в 20.6.
27.7 Если сложное определение типа имеет применения атрибута, то компоненты, отображенные из применений атрибута, должны быть добавлены к типу последовательности АСН.1, как указано в 20.7.
27.8 Если сложное определение типа имеет атрибут группового символа, то компонент, сформированный из атрибута группового символа, должен быть добавлен к типу последовательности АСН.1, как указано в 20.8.
27.9 Если тип содержимого сложного определения типа является частицей, то применяется один из трех следующих пунктов.
27.9.1 Если термом частицы является модельная группа с наборщиком последовательности, min occurs и max occurs которого оба равны единице, то компонент OPTIONAL должен быть добавлен в типу последовательности АСН.1. "Identifier" в "NamedType" компонента должен быть сформирован применением 10.3 к символьной строке "content", и "Туре" в "NamedType" должно быть типом последовательности АСН.1, сформированным следующим образом. Для каждой частицы модельной группы по порядку, список из нуля и более "NamedType" должно быть получен применением раздела 19 к частице в модельной группе, и эти "NamedType" должны быть добавлены к внутреннему типу последовательности АСН.1 в том же порядке.
27.9.2 Если термом частицы является модельная группа с наборщиком последовательности, оба min occurs и max occurs которого не равны единице, или модельная группа с наборщиком выбора, то компонент OPTIONAL должен быть добавлен к типу последовательности АСН.1. "Identifier" в "NamedType" компонента должен быть сформирован применением 10.3 к символьной строке "content", и "Туре" в "NamedType" должно быть типом последовательности АСН.1 с одним компонентом, который должен быть получен применением раздела 19 к частице в типе содержимого.
27.9.3 Если термом частицы является модельная группа с наборщиком всего, то компонент OPTIONAL должен быть добавлен к типу последовательности АСН.1. "Identifier" в "NamedType" компонента должен быть сформирован применением 10.3 к символьной строке "content", и "Туре" в "NamedType" должно быть типом последовательности АСН.1. Для каждой частицы модельной группы по порядку, компонент, полученный применением раздела 19 к частице модельной группы, должен быть добавлен к внутреннему типу последовательности АСН.1. Если частица в типе содержимого сложного определения типа имеет min occurs ноль, то каждая из частиц модельной группы с min occurs, равным единице, должна быть отображена, как если бы она имела min occurs ноль.
27.10 Если тип содержимого сложного определения типа является простым определением типа, то компонент OPTIONAL должен быть добавлен к типу последовательности АСН.1. "Identifier" в "NamedType" компонента должно быть сформировано применением 10.3 к символьной строке "content", и "Туре" в "NamedType" должно быть определением типа АСН.1, полученным применением раздела 23 к типу содержимого.
27.11 Если тип содержимого сложного определения типа пустой, то компонент OPTIONAL должен быть добавлен к типу последовательности АСН.1. "Identifier" в "NamedType" компонента должен быть сформирован применением 10.3 к символьной строке "content", и "Туре" в "NamedType" должно быть встроенным типом АСН.1 NULL.
27.12 Заключительная команда кодирования USE-NIL должна быть присвоена типу последовательности АСН.1.
27.13 Если ограничение значения было предоставлено при инициировании данного раздела, то заключительная команда кодирования DEFAULT-FOR-EMPTY должна быть присвоена типу последовательности АСН.1. Применяется один из двух следующих пунктов.
27.13.1 Если тип содержимого сложного определения типа является простым определением типа, "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY должен быть получен применением раздела 16 к значению в ограничении значения, рассматриваемому как значение в области значений простого определения типа.
27.13.2 Если тип содержимого сложного определения типа является смешанным типом содержимого, "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY должен быть получен применением раздела 16 к значению в ограничении значения, рассматриваемому как значение в области значений xsd:string с whiteSpace preserve.
27.14 Если ограничение значения было предоставлено при инициировании данного раздела и значение в ограничении значения является фиксированной величиной, то ограничение внутреннего подтипа АСН.1 должно быть добавлено к типу последовательности АСН.1. Ограничение внутреннего подтипа должно применить ключевое слово PRESENT к компоненту content. Применяется один из двух следующих пунктов.
27.14.1 Если тип содержимого сложного определения типа является простым определением типа, ограничение внутреннего подтипа должно применить к компоненту content одиночное ограничение значения АСН.1 с "Value", идентичным "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY.
27.14.2 Если тип содержимого сложного определения типа представляет собой смешанный тип содержимого, ограничение внутреннего подтипа должно применять к:
а) компоненту embed-values одиночное ограничение значения АСН.1 с "Value", состоящим в одиночном появлении "Value", идентичном "Value" в заключительной команде кодирования DEFAULT-FOR-EMPTY; и
б) компоненту content ключевое слово PRESENT.