7.1 Схема XSD является источником отображения и состоит из набора компонентов схемы (см. Часть 1, 2.2 W3C XML-схемы). Компоненты схемы или наборы компонентов схем не требуют какого-либо определенного представления или предполагаемого отображения, при этом ожидается, что исходная схема XSD будет представлена одним или несколькими документами XML-схемы (см. Часть 1, 3.15.2 W3C XML-схемы).
Примечания
1 Компоненты схемы, представленные в множестве документов XML-схемы, становятся частью такой же схемы XSD при помощью элементов информации: xsd:include, xsd:redefine и xsd:import.
2 Поскольку отображение описывается с позиции компонентов схемы (а не с точки зрения их XML-представления), на это не влияют детали XML-представления, такие как использование множества документов схемы, соединенных частями информации об элементе xsd:include и xsd:redefine, размещение частей информации об элементе в одной или другой схеме документа, порядок частей информации об элементе xsd:attribute в пределах части информации об элементе xsd:complexType, и т.д.
3 Два набора документов схемы, которые отличаются по многим аспектам, но представляют тот же самый набор компонентов схемы, формируют тот же самый набор присвоений типа АСН.1, с теми же самыми конечными командами кодирования, присвоенными им и их компонентам на всех уровнях детализации.
7.2 Исходная схема XSD встречает ряд ограничений, наложенных спецификацией XSD. Если исходная схема XSD представлена (целиком или частично) как ряд документов XML-схемы, то каждый документ схемы должен быть корректным согласно схеме XSD для схем (см. Часть 1 W3C XML-схемы, Приложение А).
7.3 Для исходной схемы XSD должны быть сформированы один или более модулей АСН.1. Число сформированных модулей АСН.1 зависит от реализации. Каждый модуль АСН.1 должен содержать нуль или больше присвоений типа, соответствующих высокоуровневым компонентам схемы (см. 7.6), и нуль или больше особых присвоений типа АСН.1 (см. 29, 30 и 31). Физический порядок присвоений типа в пределах каждого модуля АСН.1 зависит от реализации. Когда несколько модулей АСН.1 сформированы, способ, которым сформированные присвоения типа распределяются через модули АСН.1, также является опцией реализации.
Примечания
1 Включение в тот же самый модуль АСН.1 присвоений типа, сформированных из компонентов схемы XSD с различными целевыми пространствами имен (target namespaces), разрешено данным подпунктом, но не рекомендуется. Если имеется возможность, предпочтительно формирование одного модуля АСН.1 на пространство имен. Также рекомендуется, чтобы каждое особое присвоение типа АСН.1 находилось внутри того же самого модуля АСН.1, что и связанное с ним присвоение типа АСН.1 (см. 29.5, 30.4 и 31.4).
2 Формирование присвоений типа АСН.1 (см. 7.6 и 10.4) не оказывает влияния на число полученных модулей АСН.1 (за исключением возможного применения "ExternalTypeReference", как описано в 10.2.2), ни по тому, как сформированные присвоения типа распределяются через те модули, ни согласно физическому порядку присвоений типа в пределах каждого модуля. В частности, имена ссылок типов указанных присвоений типа будут те же самые независимо от того, какой стиль отображения используется реализацией.
3 Полное описание отношений между концепцией пространства имен в XML W3C-пространстве имен и именования в АСН.1 осуществляется в Рек. МСЭ-Т Х.683 (2008) (ИСО/МЭК 8824-4:2008), 16. Имена ссылок типов и идентификаторы, определенные в модуле АСН.1, присваиваются пространству имен посредством команд кодирования NAMESPACE, а в противном случае не имеют пространства имен. Отображение формирует команды кодирования NAMESPACE там, где это необходимо.
7.4 Все сформированные отображением модули АСН.1 должны содержать (в секции контроля кодирования XER) команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS и команды кодирования GLOBAL-DEFAULTS CONTROL-NAMESPACE, определяющие пространство имен XSI.
7.5 Исходная схема XSD должна быть обработана следующим образом:
а) для каждого высокоуровневого объявления элемента (element declaration) присвоение типа АСН.1 должно быть сформировано применением раздела 14 к объявлению элемента;
b) для каждого высокоуровневого объявления атрибута (attribute declaration) присвоение типа АСН.1 должно быть сформировано применением раздела 15 к объявлению атрибута;
c) для каждого высокоуровневого простого определения типа (simple type definition) присвоение типа АСН.1 должно быть сформировано применением раздела 13 к простому определению типа;
d) для каждого высокоуровневого сложного определение типа (complex type definition) присвоение типа АСН.1 должно быть сформировано применением раздела 20 к сложному определению типа;
e) для каждого определения модельной группы (model group definition), у модельной группы (model group) которого есть наборщик (compositor) последовательности (sequence) или выбора (choice), присвоение типа АСН.1 должно быть сформировано применением раздела 17 к определению модельной группы.
Примечания
1 Оставшиеся компоненты исходной XSD-схемы будут обработаны в результате отображения этих компонентов.
2 Порядок, в котором должны быть отображены компоненты схемы, описан в 10.4. Порядок элементов, указанных ранее, не имеет никакого значения для отображения.
7.6 В первом столбце таблицы 1 перечисляются компоненты схемы. Во втором столбце дается ссылка на пункт в W3C XML-схеме, в котором описывается компонент схемы. В третьем столбце перечисляются пункты, в которых описывается отображение соответствующих компонентов схемы в АСН.1.
Таблица 1 - Отображение компонентов схемы XSD
Компонент схемы XSD | Ссылка на W3C | Отображение описано в разделе |
объявление атрибута | Часть 1, 3.2 | 15 |
объявление элемента | Часть 1, 3.3 | 14 |
сложное определение типа | Часть 1, 3.4 | 20 |
применение атрибута | Часть 1, 3.5 | 22 |
определение группы атрибутов | Часть 1, 3.6 | Не отображается |
определение модельной группы | Часть 1, 3.7 | 17 |
модельная группа | Часть 1, 3.8 | 18 |
частица | Часть 1, 3.9 | 19 |
групповой символ | Часть 1, 3.10 | 21 |
определение ограничения идентичности | Часть 1, 3.11 | Игнорируется |
объявление обозначения | Часть 1, 3.12 | Игнорируется |
примечание | Часть 1, 3.13 | Игнорируется |
простое определение типа | Часть 1, 3.14 | 11, 13 |
схема | Часть 1, 3.15 | 9 |
упорядоченные | Часть 2, 4.2.2.1 | Игнорируется |
ограниченные | Часть 2, 4.2.3.1 | Игнорируется |
количество элементов | Часть 2, 4.2.4.1 | Игнорируется |
числовые | Часть 2, 4.2.5.1 | Игнорируется |
length | Часть 2, 4.3.1.1 | 12 |
minLength | Часть 2, 4.3.2.1 | 12 |
maxLength | Часть 2, 4.3.3.1 | 12 |
pattern | Часть 2, 4.3.4.1 | 12 |
enumeration | Часть 2, 4.3.5.1 | 12 |
whiteSpace | Часть 2, 4.3.6.1 | 12 |
maxlnclusive | Часть 2, 4.3.7.1 | 12 |
maxExclusive | Часть 2, 4.3.8.1 | 12 |
minExclusive | Часть 2, 4.3.9.1 | 12 |
minlnclusive | Часть 2, 4.3.10.1 | 12 |
totalDigits | Часть 2, 4.3.11.1 | 12 |
fractionDigits | Часть 2, 4.3.12.1 | 12 |