29.1 Применение данного раздела является прямым запросом из других мест настоящего стандарта сформировать присвоение типа АСН.1, соответствующее высокоуровневому простому определению типа или сложному определению типа, используемому в качестве определения типа объявлений элемента, которые имеют заменяемое определение типа (см. 14.7) или обнуляемы.
29.2 Данный раздел формирует особое присвоение типа АСН.1 для данной комбинации из следующих условий и данных, предоставленных при инициировании данного раздела:
а) имеет ли объявление элемента заменяемое или незаменяемое определение типа (см. 14.7);
б) является ли объявление элемента обнуляемым или необнуляемым;
в) является ли определение типа простым определением типа или сложным определением типа;
г) имеет ли объявление элемента ограничение значения, и если да, то является ли значение в ограничении значения значением по умолчанию или фиксированным значением;
д) имя определения типа; и
е) значение в ограничении значения (если таковые имеются).
29.3 Только одно особое присвоение типа АСН.1 должно быть сформировано для каждой комбинации из вышеперечисленных элементов, что на самом деле происходит при одном или нескольких инициированиях данного пункта во время отображения исходной схемы XSD (но см. 29.4).
Примечание - Например, если два объявления элемента в большой XSD-схеме имеют одинаковые определения типа, оба обнуляемые и оба имеют ограничение значения, которое является значением по умолчанию и является тем же значением, что сформировало одиночное особое присвоение типа АСН.1. Имя ссылки типа этого присвоения типа появится в "Туре" в "TypeAssignment", соответствующем обоим объявлениям элемента.
29.4 Когда данный раздел запрашивается для простого определения типа или сложного определения типа, используемого в качестве определения типа объявления элемента, которое является обнуляемым и не имеет заменяемого определения типа, он формирует присвоение типа АСН.1 (используя суффикс "-nillable"), которое также может быть получено инициированием раздела 30 для того же простого определения типа или сложного определения типа. В таких случаях должно быть только одно такое присвоение типа АСН.1, сформированное либо с помощью данного пункта, либо с помощью раздела 30, в зависимости от того, какой пункт запрашивается первым.
29.5 Термин "связанное присвоение типа АСН.1" обозначает присвоение типа АСН.1, отображенное из простого определения типа или сложного определения типа, которое является определением типа объявления элемента, для которого сформировано особое присвоение типа АСН.1 применением, соответственно, раздела 13 или раздела 20.
Примечание - Любое особое присвоение типа АСН.1 имеет связанное присвоение типа АСН.1, так как этот раздел применяется только при определении типа объявления элемента, являющимся высокоуровневым простым определением типа или сложным определением типа. Все такие простые определения типа и сложные определения типа отображаются в присвоении типа АСН.1.
29.6 Для данного объявления элемента, "typereference" в "TypeAssignment" для особого присвоения типа АСН.1 должно быть сформировано добавлением суффикса (см. 29.7) и пост-суффикса (см. 29.7) к имени ссылки типа связанного присвоения типа АСН.1, и применения 10.3 к результирующей символьной строке, и "Туре" в "TypeAssignment" должно быть определением типа АСН.1, сформированным одним из разделов 24, 25, 26 или 27 (см. 29.7) к простому определению типа или сложному определению типа, которое является определением типа объявления элемента. Ограничение значения в объявлении элемента (если таковые имеются) должно быть предоставлено соответствующим разделом (24, 25, 26 или 27) и должно быть использовано при формировании определения типа АСН.1, как указано в соответствующем разделе.
29.7 Суффикс и соответствующий номер раздела должны быть получены из двух последних столбцов таблицы 7 после выбора строки таблицы, основанного на условиях, перечисленных в 29.2 а)-г). Если есть ограничение значения, пост-суффикс должен быть каноническим лексическим представлением (см. W3C XML-схема Часть 2, п.2.3.1) значения в ограничении значения, в противном случае там должна быть пустая строка.
Таблица 7 - Суффиксы и соответствующие номера пунктов для формирования особых присвоений типа АСН.1
Заменяемое | обнуляемое | простое/ | ограничение значения | Суффикс | Применяемый раздел |
Нет | Да | простое | Нет | -nillable | 26 |
простое | по умолчанию | -nillable-default- | |||
простое | фиксированное | -nillable-fixed- | |||
сложное | Нет | -nillable | 27 | ||
сложное | по умолчанию | -nillable-default- | |||
сложное | фиксированное | -nillable-fixed- | |||
Да | Нет | простое | Нет | -derivations | 24 |
простое | по умолчанию | -deriv-default- | |||
простое | фиксированное | -deriv-fixed- | |||
Да | простое | Нет | -deriv-nillable | 25 | |
простое | по умолчанию | -deriv-nillable-default- | |||
простое | фиксированное | -deriv-nillable-fixed- |