10.4.1 Порядок отображения налагается на высокоуровневые компоненты исходной схемы XSD, на которой выполняется отображение. Это применяется к определениям модельной группы, высокоуровневым сложным определениям типа, высокоуровневым простым определениям типа, высокоуровневым объявлениям атрибута и высокоуровневым объявлениям элемента.
Примечание - Другие высокоуровневые компоненты схемы не отображаются в АСН.1, а встроенные типы XSD отображаются особым способом.
10.4.2 Порядок описывается в трех следующих абзацах.
Высокоуровневые компоненты схемы сначала должны быть упорядочены по их целевым пространствам имен, с отсутствующим пространством имен, предшествующим всем именам пространства имен, определенным в схеме XSD, в возрастающем лексикографическом порядке.
Внутри каждого целевого пространства имен высокоуровневые компоненты схемы должны быть разделены на четыре набора, упорядоченные следующим образом:
а) объявления элемента;
b) объявления атрибута;
c) сложные определения типа и простые определения типа;
d) определения модельной группы.
Внутри каждого набора (см. 10.4.2.2), компоненты схемы должны быть упорядочены по имени в возрастающем лексикографическом порядке.
10.4.3 Два набора присвоений типа АСН.1 сформированы отображением:
a) одного набора присвоений типа АСН.1 (сформированного в соответствии с разделами 13, 14, 15, 17 и 20), соответствующих непосредственно высокоуровневым компонентам схемы, и их имен ссылок типов, полученных из имени компонента схемы без добавления суффикса;
b) другого набора присвоений типа АСН.1 (сформированного в соответствии с разделами 29, 30 и 31), соответствующих особым применениям высокоуровневых компонентов схемы, и их имен ссылок типов, полученных из имени компонента схемы, сопровождаемого суффиксом и (в некоторых случаях) постсуффиксом.
Примечание - Для каждого высокоуровневого компонента в исходной схеме XSD максимум может быть сформировано одно присвоение типа АСН.1 в наборе в 10.4.3 а), но могут быть сформированы многократные присвоения типа АСН.1 в наборе в 10.4.3 b).
10.4.4 Присвоения типа АСН.1 в наборе в 10.4.3 а) должны быть сформированы в порядке соответствующих компонентов схемы XSD (см. 10.4.1) и должны быть сформированы все, прежде чем сформируются любые присвоения типа в 10.4.3 b).
10.4.5 Присвоения типа АСН.1 в 10.4.3 b) должны быть сформированы в следующем порядке:
a) учитывая два высокоуровневых компонента схемы SC1 и SC2, где SC1 предшествует SC2 в порядке, определенном в 10.4.1, все присвоения типа АСН.1, соответствующие SC1 (если такие есть), должны быть сформированы, прежде чем сформируются любые присвоения типа, соответствующие SC2;
b) в пределах каждого набора присвоений типа, соответствующих любому предоставленному компоненту схемы, присвоения типа должны быть сформированы в порядке, основанном на суффиксе, указанном в 29-31, следующим образом:
1) суффикс "-nillable";
2) суффикс "-nillable-default-";
3) суффикс "-nillable-fixed-";
4) суффикс "-derivations";
5) суффикс "-deriv-default-";
6) суффикс "-deriv-fixed-";
7) суффикс "-deriv-nillable";
8) суффикс "-deriv-nillable-default-";
9) суффикс "-deriv-nillable-fixed-";
10) суффикс "-group";