ГОСТ Р ИСО/МЭК 8825-4-2009

ID38470
Обозначение заменяющего(не задано)
Вид стандартаОсновополагающие стандарты
СтатусДействует
ОбозначениеГОСТ Р ИСО/МЭК 8825-4-2009
Заглавие на русском языкеИнформационная технология. Правила кодирования АСН.1. Часть 4. Правила XML кодирования (XER)
Заглавие на английском языкеInformation technology. АСН.1 encoding rules. Part 4. XML encoding rules (XER)
Ключевые словакодирование; обработка данных; информационный обмен; сетевое взаимодействие; взаимосвязь открытых систем; преобразование данных; XML; коммуникационная процедура; правила (инструкции)
ОКС35.100.60
Нормативные ссылки на: ГОСТ(не задано)
Код ОКП501300
Код КГСП80
Код ОКСТУ
Индекс рубрикатора ГРНТИ
Аннотация (область применения)Настоящий стандарт устанавливает набор базовых правил XML кодирования (BASIC-XER), которые могут быть использованы с целью получения синтаксиса перехода для значений типов, определенных в ИСО/МЭК 8824-1 и ИСО/МЭК 8824-2. Настоящий стандарт определяет также набор канонических правил XML кодирования (CXER), которые предусматривают ограничения на базовые правила XML кодирования и позволяют производить уникальное кодирование для любого данного значения АСН.1. Настоящий стандарт специфицирует набор расширенных правил XML кодирования (EXTENDED-XER), добавляющий дополнительные опции кодера и позволяющий спецификатору АСН.1 варьировать кодирование, которое должно быть произведено в соответствии с BASIC-XER. Спецификация данных правил кодирования предусматривает возможность использовать их для декодирования. Правила кодирования, специфицированные в настоящем стандарте: - используются во время связи; - предназначены для использования в тех случаях, когда отображение и/или обработка значений при помощи доступных XML средств (типа браузеров) являются определяющими в выборе правил кодирования; - позволяют расширить абстрактный синтаксис путём добавления дополнительных значений для всех форм расширяемости, описанных в ИСО/МЭК 8824-1. Настоящий стандарт устанавливает также синтаксис и семантику команд XER кодирования и правила для их назначения и сочетания. Команды XER кодирования могут быть использованы для управления расширенными правилами XML кодирования (EXTENDED-XER) для конкретных типов АСН.1
Дата введения в действие01.01.2011
Дата огр. срока действия01.01.1970
Дата обновления27.01.2017 16:33:00
Файлы для скачивания: PDF WORD



ФЕДЕРАЛЬНОЕ АГЕНТСТВО

ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

Информационная технология ПРАВИЛА КОДИРОВАНИЯ АСН.1

Правила XML кодирования (XER)

ИСО/МЭК 8825-4:2002

Information technology — АСН.1 encoding rules. Part 4: XML Encoding Rules (XER)

(IDT)

НАЦИОНАЛЬНЫМ

СТАНДАРТ

РОССИЙСКОЙ

ФЕДЕРАЦИИ

ГОСТ Р ИСО/МЭК 8825-4—

2009

Часть 4

Издание официальное

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Предисловие

Цели и принципы стандартизации е Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. No 184-ФЗ «О техническом регулировании», а правила применения национальных стандартов Российской Федерации—ГОСТ Р1.0—2004 «Стандартизация в Российской Федерации. Основные положения»

Сведения о стандарте

1    РАЗРАБОТАН Государственным образовательным учреждением высшего профессионального образования Московским государственным технологическим университетом «Станкин» на основе собственного аутентичного перевода стандарта, указанного в разделе 4

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 461 «Информационно-коммуникационные технологии в образовании (ИКТО)ь

3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 15 декабря 2009 г. № 969-ст

4    Настоящий стандарт идентичен международному стандарту ИСО/МЭК 8825-4:2002 «Информационная технология. Правила кодирования АСН.1. Часть 4. Правила XML кодирования (XER)» (ISO/IEC 8825-4:2002 «Informationtechnology—АСН.1 encoding rules. Part4: XML Encoding Rules (XER))», включая Изменение 1. EXTENDED-XER (Amendment 1: EXTENDED-XER).

Изменение к указанному международному стандарту, принятое после его официальной публикации, внесено в текст настоящегостандарта, а информация о его учете приведена в дополнительном приложении ГА.

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ГБ

5    ВЗАМЕН ГОСТ Р ИСО/МЭК8825-4:2006 Информационная технология. Правила кодирования АСН.1. Часть4. Правила XML кодирования (XER)

Информация об изменениях к настоящему стандарту публикуется е ежегодно издаеаемом указателе «Национальные стандарты», а текст изменений и поправок—в ежемесячно избегаемых информационных указателях «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соотеетстеующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет.

© Стандартинформ. 2011

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения национального органа Российской Федерации по стандартизации.

я

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Содержание

1    Область применения....................................... 1

2    Нормативные ссылки..................................... 1

2.1    Идентичные стандарты................................... 1

2.2    Дополнительные ссылки................................... 2

3    Определения.......................................... 2

3.1    Базовые правила кодирования АСН.1 (BER)......................... 2

3.2    Дополнительные определения................................ 3

4    Сокращения........................................... 5

5    Правила кодирования...................................... 5

6    Соответствие.......................................... 6

7    Базовые правила XML кодирования............................... 6

7.1    Продукционные правила голного BASIC-XER кодирования.................. 6

7.2    XML пролог........................................ 6

7.3    Элемент XML документа................................... 7

7.4    Кодирование типа EXTERNAL................................ 7

7.5    Кодирование открытого типа................................. 7

7.6    Декодирование типов с маркерами расширения....................... 7

8    Канонические правила XML кодирования............................ 8

8.1    Общие правила для канонического XER........................... 8

8.2    Действительные значения.................................. 8

8.3    Значение «битовая строка».................................. 8

8.4    Значение строки октетов (octetstring)............................. 8

8.5    Значение «последовательность»............................... 9

8.6    Значение «множество».................................... 9

8.7    Значение «множество-из».................................. 9

8.8    Значение «идентификатор объекта»............................. 9

8.9    Значение «относительный идентификатор объекта»...................... 9

8.10    Обобщенное время.................................... 9

8.11    Универсальное синхронизированное время......................... 10

8.12    Значение открытого типа.................................. 10

9    Правила расширенного XML кодирования............................ 10

9.1    Общие положения..................................... 10

9.2    Соответствие EXTENDED XER................................ 11

9.3    Структура результата расширенного XML кодирования.................... 13

10    Нотация, набор символов и лвк:ичесхие единицы, использованные в командах XML кодирования 14

11    Ключевые слова......................................... 14

12    Назначение команды XML кодирования типу АСН.1 с использованием префикса типа......    15

13    Назначение команды кодирования XER с использованием управляющих разделов кодирования 19

13.1    Перечень назначений команд кодирования......................... 19

13.2    Идентификация целей для команды XML кодирования с использованием перечня целей . .    19

14    Множественное назначение команд кодирования XER...................... 25

14.1    Порядок, в котором рассматривается множественное назначение.............. 25

14.2    Эффект назначения команды кодирования отрицания.................... 25

14.3    Множественное назначение команд кодирования с множественными категориями ....    26

14.4    Множественное назначение команд кодирования XER той же категории........... 26

14.5    Разрешенные комбинации окончательных команд кодирования............... 27

15    Поддержка команд кодирования XER для пространства имен и уточненных имен XML...... 29

16    Спецификации кодирования EXTENDED-XER........................... 30

16.1    Элемент XML документа.................................. 30

16.2    Продукционное правило TypeNameOrModifiedTypeName".................. 31

16.3    Продукционное правило “AttributeList"........................... 31

16.4    Продукционное правило‘ExtendedXMLVaJue*........................ 31

16.5    Продукционное правило ‘ExtendedXMLChoiceValue"..................... 32

si

ГОСТ Р ИСО/МЭК 8825-4 — 2009

16.6    Продукционные правила ExtendedXMLSequenceValue’H'ExtendedXMLSetValue"......    33

16.7    Продукционные правила 'ExtendedXMLSequenceOfValue" и 'ExtendedXMLSetOfValue" ...    34

16.8    Продукционное правило "ModifiedXMLIntegerValue"..................... 35

16.9    Продукционное правило "ModifiedXMLRealValue’...................... 35

17    Команда кодирования ANY-ATRIBUTE............................. 36

17.1    Общие положения..................................... 36

17.2    Ограничения........................................ 36

17.3    Действие на результат кодирования............................. 37

18    Команда кодирования ANY-ELEMENT.............................. 38

18.1    Общие положения..................................... 38

18.2    Ограничения........................................ 38

18.3    Действие на результат кодирования............................. 39

19    Команда кодирования ATTRIBUTE................................ 39

19.1    Общие положения..................................... 39

19.2    Ограничения........................................ 39

19.3    Действие на результат кодирования............................. 40

20    Команда кодирования BASE64................................. 41

20.1    Общие положения..................................... 41

20.2    Ограничения........................................ 42

20.3    Действие на результат кодирования............................. 42

21    Команда кодирования DECIMAL................................. 42

21.1    Общие положения..................................... 42

21.2    Ограничения........................................ 43

21.3    Действие на результат кодирования............................. 43

22    Команда кодирования DEFAULT-FOR-EMPTY.......................... 43

22.1    Общие положения..................................... 43

22.2    Ограничения........................................ 44

22.3    Действие на результат кодирования............................. 45

23    Команда кодирования ELEMENT................................ 46

23.1    Общие положения..................................... 46

23.2    Ограничения........................................ 46

23.3    Действие на результат кодирования............................. 46

24    Команда кодирования EMBED-VALUES............................. 46

24.1    Общие положения..................................... 46

24.2    Ограничения........................................ 46

24.3    Дейыние на резулыа) кодировании............................. 47

25    Команда кодирования GLOBAL-DEFAULTS............................ 48

25.1    Общие положения..................................... 48

25.2    Ограничения........................................ 48

25.3    Действие на результат кодирования............................. 48

26    Команда кодирования LIST................................... 48

26.1    Общие положения..................................... 48

26.2    Ограничения........................................ 49

26.3    Действие на результат кодирования............................. 49

27    Команда кодирования NAME.................................. 49

27.1    Общие положения..................................... 49

27.2    Ограничения........................................ 50

27.3    Действие на результат кодирования............................. 51

28    Команда кодирования NAMESPACE.............................. 51

28.1    Общие положения..................................... 51

28.2    Ограничения........................................ 52

28.3    Действие на результат кодирования............................. 52

29    Команда кодирования PI-OR-COMMENT............................. 53

29.1    Общие положения..................................... 53

29.2    Ограничения........................................ 53

29.3    Действие на результат кодирования............................. 53

IV

ГОСТ Р ИСО/МЭК 8825-4 — 2009

30    Команда кодирования TEXT................................... 54

30.1    Общие положения..................................... 54

30.2    Ограничения....................................... 54

30.3    Действие на результат кодирования............................. 55

31    Команда кодирования UNTAG3ED................................ 56

31.1    Общие положения..................................... 56

31.2    Ограничения........................................ 56

31.3    Действие на результат кодирования............................. 57

32    Команда кодирования USE-NI.................................. 57

32.1    Общие положения..................................... 57

32.2    Ограничения........................................ 58

32.3    Действие на результат кодирования............................. 58

33    Команда кодирования USE-NUM8ER.............................. 59

33.1    Общие положения..................................... 59

33.2    Ограничения........................................ 59

33.3    Действие на результат кодирования............................. 59

34    Команда кодирования USE-ORDER............................... 59

34.1    Общие положения..................................... 59

34.2    Ограничения........................................ 60

34.3    Действие на результат кодирования............................. 61

35    Команда кодирования USE-QNAME............................... 61

35.1    Общие положения..................................... 61

35.2    Ограничения........................................ 61

35.3    Действие на результат кодирования............................. 62

36    Команда кодирования USE-TYPE................................ 62

36.1    Общие положения..................................... 62

36.2    Ограничения........................................ 62

36.3    Действие на результат кодирования............................. 62

37    Команда кодирования USE-UNION................................ 63

37.1    Общие положения..................................... 63

37.2    Ограничения........................................ 63

37.3    Действие на результат кодирования............................. 64

38    Команда кодирования WHITESPACE.............................. 65

38.1    Общие положения..................................... 65

38.2    Ограничения........................................ 65

38.3    Действие на результат кодирования............................. 65

39    Значения идентификатора объекта, ссылающиеся на правила кодирования........... 66

Приложение А (справочное) Примеры кодирования BASIC-XER и CXER.............. 67

Приложение Б (справочное) Частичное XML содержание и детерминированные кодирования ....    69

Приложение В (справочное) Примеры EXTENDED-XER кодирования с использованием команд кодирования XER............................. 72

Приложение ГА (справочное) Сведения об учете в тексте стандарта Изменения 1 .EXTENDED-XER .    75

Приложение ГБ (справочное) Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации...... 85

V

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Введение

Перспективы создания информационного общества и масштабы развития единой образовательной информационной среды (ЕОИС) обусловили необходимость разработки комплекса национальных стандартов по информационно-коммуникационным технологиям в образовании (ИКТО). Разработку комплекса национальных стандартов по ИКТО осуществляет ТК461 по шести направлениям:

•    общесистемные и основополагающие нормативные документы по стандартизации ИКТО:

•    взаимосвязь открытых систем в образовании:

-    автоматизированные инфоэмационные системы управления отраслью и образовательными учреждениями:

-    образовательные среды и информационные ресурсы.

-    обеспечение функциональной безопасности ИКТО:

•    обеспечение качества электронного обучения.

Разрабатываемый ТК461 комплекс национальных стандартов соответствует международным стандартам в области менеджмента качества (ISOTC176) и информационных технологий (ИСО/МЭКJTC1). в том числе:

-    системной и программной инженерии (ИСО/МЭК JTC1 SC7);

•    телекоммуникаций и информационного обмена между системами(ИСО/МЭК JTC1 SC6):

-управления и обмена данными (ИСО/МЭК JTC1 SC32);

-описания документов и языков обработки (ИСО/МЭК JTC1 SC34);

•    информационных технологий в обучении, образовании и подготовке (ISO/IES JTC1 SC36).

Данный национальный стандарт аутентичен международному стандарту ИСО/МЭК 8825-4:2002. устанавливающему правила кодирования, которые могут быть применены к значениям типов АСН.1, принятым в нотации, определенной в ИСО/МЭК 8824-1 и ИСО/МЭК 8824-2. Международные стандарты ИСО/МЭК 8824 (части 1-4) и ИСО/МЭК 8825(части 1*5) определяют требования к информационному обмену между равноправными приложениями. На их основе должны разрабатываться требования к информационным средам и системам для образования, науки, госсектора, промышленности и других сфер деятельности, они также включают аутентичный перевод Изменения 1. EXTENDED-XER к указанному стандарту.

Абстрактная Синтаксическая Нотация версии 1 (АСН.1), используемая для формирования сообщений при информационном обмене между равноправными приложениями, определяется рядом национальных стандартов: ИСО/МЭК 8824-1. ИСЭ/МЭК 8824-2. ИСО/МЭК 8824-3. ИСО/МЭК 8824-4.

При использовании приведенных вдакных стандартах правил кодирования создается синтаксис передачи сообщений. В спецификации этих правил кодирования подразумевается, что они также могут использоваться для декодирования.

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

Существует несколько наборов правил кодирования, которые могут быть применены к значениям типов АСН.1. Настоящий стандар* определяет три набора правил кодирования, которые используют Расширяемый Язык Разметки (XML). На основе любого из этих правил кодирования создаются XML документы, соответствующие Рекомендации W3C XML1.0. Первый набор называется «Базовые правила XML кодирования (BASIC-XER)». Второй набор называется «Канонические правила XML кодирования (CANONICAL-XER или CXER)». так как существует только один способ кодирования значений АСН.1 с использованием этих правил. (Канонические правила кодирования обычно применяются для приложений. имеющих особенности, связанные с безопасностью, например, использующие цифровую подпись). Третий набор называется «Расширенные правила XML кодирования (EXTENDED-XER)». допускающие дополнительные опции кодера и учитывающие команды кодирования, которые определяют вариации Базовых правил кодирования (BASIC-XER), чтобы осуществить поддержку специфических стилей XML документов (см. ниже). Эти «Расширенные правила кодирования» не являются каноническими.

Существует много аспектов XML представления данных (таких как использование XML атрибутов вместо дочерних элементов или перечней пробелов с разделителями), использование которых определяется стилем и выбором XML дизайнера. Если тип, определенный в спецификации АСН.1. закодирован по правилам BASIC-XER или CXER. то для XML представления применяется единственный фиксированный стиль без управления стилистическими особенностями пользователем. Настоящий стандарт специфициру

VI

ГОСТ Р ИСО/МЭК 8825-4 — 2009

ет синтаксис и семантику команд XER кодирования, которые определяют стилистические особенности XML е EXTENDED-XER кодировании. Ксманды XER кодирования могут также быть использованы для определения возможного включения команд XML обработки е EXTENDED-XER кодирование. Команды XER кодирования игнорируются правилами BASIC-XER и CXER. но используются EXTENDED-XER.

Примечание — «Стилистические особенности», такие ках атрибуты или перечни пробелов с разделителями. могут также влиять на размер закодированного материала и сложность его обработки, поэтому использование таких особенностей это не только вопрос стиля. Если такие вопросы существенны, можно отдать предпочтение EXTENDED-XER перед BASIC-XER ww CXER.

В разделах 1—4 приводятся описание области применения стандарта, нормативные ссылки, определения терминов и сокращения.

Раздел 5 содержит перечень наборов правил кодирования, определяемых в данном стандарте.

В разделе 6 указывается, в каких последующих разделах специфицируется динамическое соответствие различных правил кодирования, декларируется статическое соответствие, а также разъясняются варианты разрешения (запрещения) альтернативного кодирования.

В разделе 7 специфицируется BASIC-XER кодирование типов АСН.1.

В разделе 8 специфицируется CXER кодирование типов АСН.1.

В разделе 9 специфицируется EXTENDED-XER кодирование типов АСН.1. с использованием ссылок на более поздние разделы, которые определяют команды XER кодирования.

В разделах с 10-го по 13-й перечисляются и классифицируются команды XER кодирования и специфицируется синтаксис для их назначения типам или компонентам АСН.1. с использованием либо префикс типа XER (см. ИСО/МЭК 8824-1.30.3). либо управляющей секции XER кодирования.

В разделе 14 определяется горядок предшествования, если команды XER кодирования присутствуют и в префиксе типа XER. и в управляющей секции XER кодирования.

В разделе 15 специфицируется поддержка команд XER кодирования для пространства имен XML при использовании EXTENDED-XER.

В разделе 16 специфицируется EXTENDED-XER кодирование.

В разделах с 17 ло 39 специфицируются:

а)    синтаксис каждой команды XER кодирования, используемой е префиксе типа или управляющей секции кодирования:

б)    ограничения команд XER солирования, которые могут быть ассоциированы с конкретным типом АСН.1 (следствие наследования и множественных назначений);

в)    модификации правил XER солирования, которые необходимы в EXTENDED-XER кодировании, когда применяются команды XER кодирования.

Приложение А информативно и содержит примеры BASIC-XER и CXER кодирования.

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

Приложение В информативно и содержит примеры команд XER кодирования и соответствующих результатов EXTENDED-XER кодирования.

Приложение ГА справочное и содержит сведения об учете е тексте стандарта Изменения 1. EXTENDED-XER.

Приложение ГБ справочное л содержит сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации. *

* Данное введение не является частью настоящего стандарта

VII

ГОСТ Р ИСО/МЭК 8825-4 — 2009

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Информационная технология

ПРАВИЛА КОДИРОВАНИЯ АСН.1 Часть 4

Правила XML кодирования (XER)

Information technology. АСН.1 encoding rules. Part 4. XML encoding rules (XER)

Дата введения — 2011 — 01 — 01

1 Область применения

Настоящий стандарт устанасливает набор базовых правил XML кодирования (BASIC-XER). которые могут быть использованы с цепью получения синтаксиса перехода для значений типов, определенных в ИСО/МЭК 8824-1 и ИСО/МЭК 8824-2. Настоящий стандарт определяет также набор канонических правил XML кодирования (CXER). которые предусматривают ограничения на базовые правила XML кодирования и позволяют производить уникальное кодирование для любого данного значения АСН.1. Настоящий стандарт специфицирует набор расширенных правил XML кодирования (EXTENDED-XER). добавляющий дополнительные опции кодера и позволяющий спецификатору АСН.1 варьировать кодирование, которое должно быть произведено в соответствии с BASIC-XER. Спецификация данных правил кодирования предусматривает возможность использовать их для декодирования.

Правила кодирования, специфицированные в настоящем стандарте:

•    используются во время связи;

•    предназначены для испогьэования в тех случаях, когда отображение и/или обработка значений при помощи доступных XML средств (типа браузеров) являются определяющими в выборе правил кодирования;

-позволяют расширить абстрактный синтаксис путем добавления дополнительных значений для всех форм расширяемости, описанных в ИСО/МЭК 8824-1.

1    (астоящий стандарт устанавливает также синтаксис и семантику команд XER кодирования и правила для их назначения и сочетания Команды XER кодирования могут быть использованы для управления расширенными правилами XML кодирования (EXTENDED-XER) для конкретных типов АСН.1.

2    Нормативные ссылки

Настоящий стандарт содержит положения, имеющие ссылки на нижеследующие рекомендации и международные стандарты, которые действовали во время издания. Все рекомендации и международные стандарты допускаются к пересмотру, и пользователи имеют возможность применять самые последние издания рекомендаций и стандартов. Члены МЭК и ИСО утверждают реестр действующих международных стандартов.

Бюро телекоммуникационной стандартизации, международного союза по телекоммуникациям поддерживает список действующих в -гастоящее время рекомендаций МСЭ-Т.

2.1 Идентичные стандарть

ИСО/МЭК 8824-1:2002. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация базовой нотации.

Издание официальное

1

ГОСТ Р ИСО/МЭК 8825-4 — 2009

ИСО/МЭК 8824-1:2002/Amd.1:2003. Информационные технологии—Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация базовой нотации — Изменение 1: Поддержка расширенных правил XML кодирования (EXTENDEO-XER).

ИСО/МЭК 8824-2:2002. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация информационного объекта.

ИСО/МЭК 8824-2:2002/Amd.1:2003. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1)-» Изменение 1: Спецификация информационного объекта — Поддержка расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8824-3:2002. Информационные технологии—Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация ограничены.

ИСО/МЭК 8824-4:2002. Информационные технологии—Абстрактная Синтаксическая Нотация Один (АСН.1): Параметризация спецификаций АСН.1.

ИСО/МЭК8825-12002. Информационные технологии — Правила кодирования АСН.1: Спецификация Базовых правил кодирования (BER). Канонических правил кодирования (CER) и Отличительных правил кодирования (DER).

ИСО/МЭК 8825-1:2002/Amd.1:2003. Информационные технологии — Правила кодирования АСН.1: Спецификация базовых правил кодирования (BER), Канонических правил кодирования (CER) и Отличительных правил кодирования (DER) — Изменение 1: Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК8825-2:2002. Информационные технологии — Правила кодирования АСН. 1: Спецификация Правил уплотненного кодирования (PER).

ИСО/МЭК 8825-2:2002/Amd.1:2003. Информационные технологии—Правила кодирования АСН.1: Спецификация Правил уплотненного кодирования (PER) — Изменение 1: Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8825-3:2002. Информационные технологии — Правила кодирования АСН.1: Спецификация Управляющей нотации кодирования (ECN).

2.2 Дополнительные ссылки

IETF RFC 2045(1996) Многоцелевые расширения Интернет-почты (MIME). Часть 1: Формат Совокупности Интернет-сообщений.

IETF RFC 2141 (1997) СинтаюисУнифицированного имени ресурса (URN).

IETF RFC 2396 (1998) Унифидированные идентификаторы ресурса (URI): Типовой синтаксис.

IETF RFC 3061 (2001). Пространство имен URN объектных идентификаторов.

ИСО/МЭК 10646-1:2000. Информационные технологии — Универсальный многооктетный набор кодированных символов (UCS)—Часть 1: Архитектура и базовая многоязычная матрица.

The Unicode Standard. Version 3.2.0, Консорциум Юникода.

Примечание — Графические символы (и их коды), определенные в выше указанием стандарте идентичны тем. которые определены стандартом ИСО/МЭК 10646-1, но вышеуказанный стандарт включен в перечень, поскольку он также специфицирует лмена управляющих символов.

W3C XML 1.0:2000, Расширяемый Язык Разметки (XML) 1.0 (Второе издание). Рекомендация W3C. Copyright © (6 октября 2000 г] World Wide Web Consortium. (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University). .

W3C XML Namespaces:1999. Пространство имен в XML. Рекомендация W3C. Copyright © [14 января 1999 г.) World Wide Web Consortium. (Massachusetts Institute of Technology. Institut National de Recherche en Informatique eten Automatique. Keio University). .

Примечание — Ссылка не документ из настоящего стандарта не дает ему. как автономному документу, статус международного стандарта.

3 Определения

Для настоящего стандарта применимы определения ИСО/МЭК 8824-1.атакже следующие определения.

3.1 Базовые правила кодирования АСН.1 (BER)

В настоящем стандарте применяют следующие термины по ИСО/МЭК 8825-1:

а)    значение данных:

б)    динамическое соответствие:

2

ГОСТ Р ИСО/МЭК 8825-4 — 2009

в)    кодирование (значений данных);

г) получатель;

д) отправитель;

е)    статическое соответствие.

3.2 Дополнительные определения

В настоящем стандарте применяют следующие дополнительные термины с соответствующими определениями.

3.2.1    АСН.1 схема (АСН.1 schema): Описание содержания и структуры данных, использующее определение типов АСН.1.

Примечание — АСН.1 схема дает возможность применять правила кодирования для двоичного кодирования значений типа АСН.1 или кодирование, использующее XML.

3.2.1.1    связанный тег пустого элемента (associated empty-element tag): Тег пустого элемента XML. который может заменить предшествующий тег и связанный последующий тег. если таковые присутствуют.

Примечание — Некоторые команды кодирования удаляют связанны© теги "XMLValue'.

3.2.1.2    связанные команды кодирования (для типа) (associated encoding instructions (for a type)): Набор инструкций XER кодирования, связанных стипом.

3.2.1.3    связанный последующий тег (associated following tag): Концевой тег XML. следующий за "XMLValue* типа, в отсутствие команды кодирования, которые удаляют связанные теги.

3.2.1.4    связанный предшествующий тег (associated preceding tag): Начальный тег XML. предшествующий "XMLValue" типа, в отсутствие команды кодирования, которые удаляют связанные теги.

3.2.2 канонический действительный XML документ (для АСН.1 схемы) (canonical valid XML document (for an ACH.1 schema)): XML документ, который правильно построен (см. W3C XML 1.0) и чье содержание соответствует спецификации CXER для кодирования типа АСН.1. определвнмогоАСН.1 схемой.

3.2.2.1    посимвольно кодируемый тип (character-encodable type): Тип АСН.1. к которому может быть применена команда кодирования ATTRIBUTE (см. 19.2.1).

3.2.2.2    управляющее пространство имен (control namespace): Пространство имен, используемое для идентификации атрибутов, которые выполняют функции или переносят значения, предназначенные для управления кодированием в соответствии с расширенными правилами EXTENDEO-XER.

Примечание 1 — Примером мажет быть атрибут идентификации типа. Управляющее пространство имен по умолчанию приравнивается < пространству имен АСН.1. определенному в 16.9. но может быть изменено командой кодирования GLOBAL-DEFAULTS.

Примечание2 — Управляющее пространство имен может также содержать имена для атрибутов, ■«вторые могут присутотоооать. но которые игнорируются декодерами EXTENDED XER {ом. 0.2.10). Примером такого имени атрибута может быть schemaLocation.

3.2.2.3    включенный тип АСН.1 (enclosed (АСН.1) type): Тип АСН.1. чье XML значение — "XMLValue* при кодировании в соответствии с базовыми правилами кодирования (BASIC-XER) включено непосредственно в "XMLValue* типа АСН.1 (включающий тип).

Примечание — Все типы в BAS1C-XER и EXTENDED-XER кодировании являются включенными типами, если только они не используются ка>; корневые типы (см. 9.3.1 б) в коде.

3.2.2.4    включающий элемент (типа АСН.1) (enclosing element (of an ACH.1 type)): Элемент "ExtendedXMLTypedValue". "ExtendedXMLChoiceValue". "ExtendedXMLNamedValue" или "ExtendedXMLDelimitedttem*. который имеет "ExtendedXMLValue". кодирующий тип. в качестве своего "ExtendedXMLValue" (см. 16.1.16.5.16.6 и 16.7).

3.2.2.5    включающий тип (типа АСН.1) (enclosing type (of an ACH.1 type)): Тип ACH.1. чье XML значение — "XMLValue" при кодирование в соответствии с базовыми правилами кодирования (BASIC-XER) включает непосредственно "XMLValue" *ила АСН.1 (включенный тип).

Примечание — Включающий тип может быть типом последовательности, типом множества, типом выбора, типом последоватегъности-из. типом множества-из. открытым типом, типом строки октетов или строки битое (с CONTAINING и без ENCODED BY).

3.2.2.6    окончательная команда кодирования (для типа) (final encoding instructions (for a type)): Набор команд XER кодирования, связанных с типом как результат законченной спецификации АСН.1 и применимый в продуцировании кода этого типа.

3

ГОСТ Р ИСО/МЭК 8825-4 — 2009

3.2.2.7    унаследованные команды кодирования (inherited encoding instructions): Команды XER кодирования, которые связаны с типом, идентифицируемым ссылкой на тип.

3.2.2.8    имя в пространстве имен ограниченного использования (namespace-qualified name): Имя в XML документе, которое имеет префикс пространства имен XML или является именем XML элемента в пределах объявленного пространства имен XML по умолчанию.

Примечание — Декларации пространства имен XML по умолчанию действуют только на имена элементов XML. но не на имена атрибутов. Префикс пространства имен может быть применен как к именам элементов, так и атрибутов.

3.2.2.9    атрибут идентификации nil (пустое множество) (nil identification attribute): Атрибут XML. который может появляться в любом элементе с целью идентификации контента с значением nil (см. раздел 32).

3.2.2.10    частичный контент элемента XML (partial XML element content): Дочерние элементы XML определяются типом АСН.1 UNTA3GE0. который обеспечивает часть контента элемента XML. сгенерированную включающим типом.

Примечание — Если включающий тип сам есть UNTAGGED. то этот включающий тип мажет быть также сгенерирован только частичным контентом элемента XML.

3.2.2.11    команды кодирования с префиксами (prefixed encoding instructions): Команды XER кодирования. которые назначаются с использованием префикса типа.

Примечание — Команды кодирования с префиксами могут удалять или заменять связанные команды кодирования типа, в также делать добавления к связанным командам кодирования типа.

3.2.2.12    уточняющая информация (qualifying information): Информация, предоставленная какчасть спецификации цели для назначения команды кодирования, которая идентифицирует конкретные значения целевого типа.

3.2.2.13    целевые команды кодирования (targeted encoding instructions): Команды XER кодирования. которые назначаются с испогъзованием целевого перечня в управляющем разделе XER кодирования.

Примечание — Целевые команды кодирования могут удалять или заменять связанные команды кодирования типа, в также делать добавления к связанным командам кодирования типа.

3.2.2.14    атрибут идентификации типа (type identification attribute): XML атрибут, который может появиться у любого элемента, чтобы идентифицировать тип этого элемента (см. раздел 36).

3.2.2.15    унифицированный идентификатор ресурса (URI) (Uniform Resource Identifier (URI)): Глобально однозначный идентификатор, назначаемый в соответствии с любой из URI схем, используемый для обеспечения идентификации пространства имен е EXTENDEO-XER кодировании.

Примечание — URI схема, применяемая по умолчанию для АСН.1. дает возможность испогъзовэтъ значение объектного идентификатора АСН.1 для идентификации пространства имен (см. 15.9 и 28.1.5).

3.2.3 действительный XML документ (для АСН.1 схемы) (valid XML document (for an ACH.1 schema)): XML документ, который правильно построен (см. W3C XML 1.0) и чье содержание соответствует спецификации BASIC-XER, CXER или EXTENDED-XER для кодирования типа АСН.1. заданного АСН.1 схемой, возможно включая команды XER кодирования.

3.2.3.1    команды XER кодиэования (XER encoding instructions): Команды кодирования, которые сеяэаныстипомАСН.1 (или с комтонентом типа АСН.1) путем назначения этого типа (или компонента) а префикс типа XER (см. ИСО/МЭК 8824-1.30.3) или в управляющий раздел XER кодирования (см. ИСО/МЭК 8824-1. раздел 50).

3.2.3.2    атрибут XML (XML attribute): Часть кода EXTENDED-XER. состоящая из ’XMLVaiue*. заключенная в кавычки или апострофы, которой предшествует имя (атрибута) и знак равенства.

3.2.3.3    элемент XML (XML element): Часть XML документа, определенная а W3C XML1.0.

Примечание — Элемент XML — это либо тег пустого элемента, либо начинается с начального тега и заканчивается конечным тегом. Начальный тег и тег пустого элемента могут содержать кодирования атрибутов.

3.2.3.4имя элемента XML (XML element name): Лексическая единица, сопровождаемая "<"или И<Г лексической единицей в связанных тегах.

3.2.4 XML документ (XML document): Последовательность символов, соответствующая определению документа в W3C XML 1.0.

4

ГОСТ Р ИСО/МЭК 8825-4 — 2009

3.2.5    команда XML обработки (XML processing instruction): Часть XML документа, которая содержит информацию относительно обработки части или всего этого документа (см. W3C XML1.0).

Примечание — Команда обработки определяет тип обработки, для которого она применима и игнорируется другой обработкой. Это может быть использовано для идентификации таблицы стилей, которая должна быть применена, если документ предназначен для просмотра пользователем.

3.2.6    XML пролог (XMLprolog): Начальная часть XML документа (которая не содержит информации о значении типа АСН.1. который закодирован).

4 Сокращения

В настоящем стандарте применяют следующие сокращения:

ASN.1 (АСН.1) — абстракт>ая синтаксическая нотация версии 1;

CXER    — канонические правила XML кодирования;

PDU    — единица обмена данными в соответствии с протоколом:

UCS    —    универсальный миогоокгетный набор кодированных символов:

UR1    —    универсальный идентификатор ресурса:

UTC    — универсальное глобальное время (по Гринвичу):

UTF-8    — UCS формат преобразования. 8-битовая форма;

XER    —    правила XML кодирования;

ХМ.    —    расширяемый язык разметки.

5 Правила кодирования

5.1    Настоящий стандарт определяет три набора правил кодирования:

•    базовые правила XML кодирования (BASIC-XER);

- канонические правила XML кодирования (CXER);

•    расширенные правила XML кодирования (EXTENDED-XER).

5.2    Базовый набор правил кодирования BASIC-XER в общем случае не производит канонического кодирования и не обеспечивает любого пользователя управлением стилем XML. который он продуцирует.

5.3    Второй набор правил кодирования CXER производит каноническое кодирование. Данный набор правил кодирования определяется как ограничение возможности выбора, зависящего от реализации в BASIC-XER кодировании.

Примечание 1—Любая реализация, соответствующая CXER для кодирования, совместима с BASIC-XER для кодирования. Любая реализация, соответствующая BASIC-XER для декодирования, совместима с CXER для декодирования. Следовательно, кодирование, произведенное в соответствии с CXER. есть кодирование, разрешенное BASIC-XER.

Примечание 2 — CXER производит кодирование при необходимости проверки достоверности абстрактного значения.

5.4    Третий набор правил кодирования, установленный в настоящем стандарте. — расширенные правила кодирования (EXTENDED-XER). Он определяется как вариации базовых правил кодирования 8ASIC-XER, установленные командами XER кодирования (см. 5.6), связанными с типом АСН.1. В отсутствие команд XER кодирования кодирование по расширенным правилам (EXTENDED-XER) отличается от кодирования по базовым правилам 8ASIC-XER только тем, что оно обеспечивает больше опций кодера.

5.5    Если тип, закодированный по CXER, содержит тилы EMBEDDED PDV. EXTERNAL или CHARACTER STRING, внешнее кодирование перестает быть каноническим, если только кодирование для всех типов EMBEDDED PDV, EXTERNAL и CHARACTER STRING не было каноническим.

5.6    В настоящем стандарте установлены четыре команды кодирования

5.6.1    Настоящий стандарт устанавливает синтаксис и семантику команд XER кодирования (см. разделы 10—38). Команды XER кодирования влияют только на кодирование по расширенным правилам (EXTENDED-XER).

5.6.2    АСН.1 формирует базовую нотацию XML схемы. АСН.1 схема применяется, чтобы определить содержание и структуру данных, использующих АСН.1 и правила кодирования BASIC-XER (и CXER). Она может быть использована без команд XER кодирования.

5.6.3    Команды XER кодирования обеспечивают более широкую гибкость XML документов, чем она может быть изначально установлена в них.

5

ГОСТ Р ИСО/МЭК 8825-4 — 2009

5.6.4 Команды XER кодирования назначаются определениям типов АСН.1 или ссылкам на типы с использованием префиксов типа XER (см. ИСО/МЭК 8824-1.30.3) или управляющего раздела XER кодирования (см. ИСО/МЭК 8824-1,50). И1и и тому, и другому. Если команды кодирования связаны солределени* ем типа, они передают») с типом АСН.1 (через ссылку на этот тип) в другие определения типа и другие модули АСН.1 .Когда по расширенным правилам EXTENOED-XER кодируется тип. который имеет команды XER кодирования, связанные с некоторыми или всеми его частями, применяются эти окончательные команды кодирования и модифицируют результаты кодирования EXTENOEO-XER.

Примечание — Окончательные команды кодирования также используются, когда выполняется подтверждение правильности и/или декодирование результатов кодирования EXTENDED-XER.

6 Соответствие

6.1    Динамическое соответствие для базовых правил XML кодирования специфицируется в разделе 7, динамическое соответствие для канонических правил XML кодирования специфицируется в разделе 8 и динамическое соответствие для расширенных правил XML кодирования специфицируется в разделе 9.

6.2    Статическое соответствие точно определено настоящим стандартом, предписывающим использование одного или более правил кодирования.

6.3    Альтернативное кодирование разрешается базовыми правилами XML кодирования и расширенными правилами XML кодирования как опция кодера. Декодеры, соответствующие BASIC-XER. должны поддерживать все альтернативы кодирования BASIC-XER. Декодеры, соответствующие EXTENDED-XER. должны поддерживать все альтернативы кодирования EXTENDED-XER.

Примечание — Этот раздел применяется независимо or наличия (или отсутствия) каких-либо окончательных команд кодирования.

6.4    Канонические правила XML кодирования не разрешают альтернативного кодирования для кодирования АСН.1 значений.

7 Базовые правила XML кодирования

7.1    Продукционные правила полного BASIC-XER кодирования

7.1.1    Соответствующий результат BASIC-XER кодирования — правильный XML документ, состоящий из:

а)    XML пролога (который может быть пустым), как определено в 7.2;

б)    элемента XML документа, который является законченным результатом кодирования значения единственного типа АСН.1. как определено в Сб.

7.1.2    Спецификация в подразделах 7.2 — 7.6 полностью определяет BASIC-XER кодирование.

Примечание — Другие структурные компоненты, такие как команды XML обработки, не разрешены этими подразделами, и они нжогда не создаются кодерами, соответствующими BASIC-XER.

7.1.3    XML документ должен быть кодирован с использованием UTF-8 для получения "строки октетов", которая формирует кодирование в соответствии с настоящим стандартом. Идентификатор объекта АСН.1 для этих правил кодирования определен в разделе 39.

7.1.4    Если в настоящем стандарте используется термин "пробел" ("white-space"), подразумевается один или несколько следующих символов стандарта Unicode: HORIZONTAL TABULATION (9). LINE FEED (10). CARRIAGE RETURN (13), SPACE (32). Цифры e круглых скобках —десятичные значения символов стандарта Unicode. Количество и выбор символов, которые составляют пробел — опция кодера.

7.1.5    Если настоящий стандарт использует термин "пробел с переходом" ("white-space with escapes"),

подразумевается один или несколько символов, перечисленных в 7.1.4 с опцией кодера представляющей любые из этих символов с управляющей последовательностью в виде    или "&#хп;"

(см. ИСО/МЭК 8824-1.11.15.8).

7.2 XML пролог

7.2.1 XML пролог должен:

а)    быть пустым:

б)    состоять из следующих последовательностей символов, расположенных по порядку, и. как опция кодера, последовательность может быть завершена разделителем (см. 7.1.4):

б

ГОСТ Р ИСО/МЭК 8825-4 — 2009

<?xml

version=‘1.0“

eocoding=*UTF-8*?>

7.2.2 Последовательности символов е 7.2.1 не должны содержать разделитель, но должны быть разделены одним символом SPACE (32).

7.3 Элемент XML документа

7.3.1    Элементом XML документа будет "XMLTypedValue". как определено в ИСО/МЭК 8824-1. пункт 15.2, с изменениями и ограничениями, установленными в последующих подразделах раздела 7.3.

7.3.1.1    Все появления “ExtemalTypeReference" в "XMLTypedValue" должны быть заменены "typereference" в этом “ExtemalTypeReference".

7.3.2    Лексический элемент АСН.1 "comment" (см. ИСО/МЭК 8824-1. пункт 11.6) не должен присутствовать. Если XER кодирование содержит пару смежных дефисов 7** или "7". это должно интерпретироваться как часть данных, а не как разделители комментариев АСН.1.

7.3.3    Если ИСО/МЭК 8824-1.11.1.4,11.11 и 11.13 разрешают использование пробелов АСН.1 между лексическими единицами в "xmlbslring" или в "xmlhstring". использованные символы должны быть ограничены до "разделителей", определенных в 7.1.4.

7.3.3.1    "XMLBooleanVatue". определенный в ИСО/МЭК 8824-1 17.3. должен быть только "EmptyElementBoolean”. a "XMLSequenceOfValue" и "XMLSetOfValue" с компонентом булевского типа должен быть "ValueList".

7.3.4    "XMLIntegerValue". определенный в ИСО/МЭК 8824-1. 18.9. должен быть только "XMLSignedNumber".

7.3.4.1    "XMLEnumeratedValue". определенный в ИСО/МЭК 8824-1. 19.8. должен быть только "EmptyEJementEnumerated", a "XMLSequenceOfValue" с "XMLSetOfValue" с компонентом перечислимого типа должен быть "ValueList".

7.3.4.2    "XMLSpecialReaJValuB", определенный в ИСО/МЭК 8824*1. 20.6. должен быть только "EmptyElementReal".

7.3.5    Значение "XMLBitStringValue". определенное в ИСО/МЭК 8824-1. 21.9. не должно быть "XMLIdentifierUst*.

7.3.6    Значение "XMLExtemalValue". определенное ИСО/МЭК 8824-1.34. должно быть заменено на "XMLExtemaiVafue" по 8.4.

7.4 Кодирование типа EXTERNAL

7.4.1    Получение значения "XMLExtemalValue". используемого для XER кодирования внешнего типа, должно быть значением "XMLVaue" для кодирования типов "последовательности", определенных в ИСО/МЭК 8825-2.26.1. оо значением, определенным в 26.2—26.4 указанного стандарта.

Примечание — XER кодирование типа "EXTERNAL" неэквивалентно XML нотации значений, определенной в ИСО/МЭК 0824-1.

7.4.2    Допускается применять ИСО/МЭК 8825-2.26.5 - 26.8. но пункт 26.6 должен быть заменен на

7.4.3 настоящего стандарта.

7.4.3    Если значение данных — значение типа "single ASN. 1 type" и кодирующие правила для значения этих данных определены е настоящем стандарте, то реализация сообщений должна использовать выбранный тип "single ASN. 1 type".

7.4.4    Допускается применять ИСО/МЭК 8825-2.26.9 — 26.11. но пункт 26.6 должен быть заменен на

7.4.5 настоящего стандарта. Примечание по 26.9 ИСО/МЭК 8825-2 применимо.

7.4.5    Если выбирают тип кодирования “single-ASN.1 -type", то тип АСН.1 должен быть "XMLTypedValue" типа кодирования "EXTERNAL” со значением, эквивалентным значению данных, которые будут кодированы.

7.5    Кодирование открытого типа

Могут быть использованы обе альтернативы "XMLOpenTypeFtetdVar (см. ИСО/МЭК 8824-2. пункт 14.6)

Примечание — Использование альтернативы "xmlhstring" в общем случае не рекомендуется, гак как не существует механизмов идентификации правил кодирования, используемых для создания "xmftstring" в отдельном случае кодирования. Примерами, где такая альтернатива может быть удобной — случаи, когда сообщение, кодируемое в XER (например, для целей вывода на дисплей), является результатом предыдущего двоичного кодирования и полностью не двкодиэовано игм когда имеется двустороннее соглашение.

7.6    Декодирование типов с маркерами расширения

7.6.1 Декодер BASIC-XER будет воспринимать как правильный XML документ результат 8ASIC-XER кодирования типовс маркерами расширения, в которых имеются неизвестные расширения.

7

ГОСТ Р ИСО/МЭК 8825-4 — 2009

7.6.2    Неизвестные расширения в последовательности или тиле набора приводят к меожидаемым элементам XML с именами, отличными от имен следующего ожидаемого элемента XML.

7.6.3    Неизвестные расширения в типе выбора приводят кединствемному неожидаемому элементу XML вместо элемента, соответствующего одному из известных выборов. Он всегда будет иметь имя элемента XML . отличное от имени гюбого элемента XML. который кодирует известную альтернативу типа выбора.

7.6.4    Неиэвестные расширения в перечислимом типе приводят «элементу XML с неожидаемым содержанием. но без неожидаемых элементов XML.

7.6.5    Неиэвестные расширения, возникающие при смягчении ограничений на подтип, приводят к кодированию. которое может быть правильным кодированием любого типа, не имеющего ограничений. Такое кодирование может продуцировать неожидаемое содержание, но без неожид аемых элементов XML.

8 Канонические правила XML кодирования

В случае если "XMLTypedValue" содержит возможности выбора, настоящий раздел допускает определение строго одного варианта выбора для получения уникального кодирования. Условия настоящего раздела определяют канонические правила XML кодирования.

8.1    Общие правила для канонического XER

8.1.1    XML пролог должен быть пустым (см. 7.2.1).

8.1.2    Все лексические единицы, формирующие "XMLTypedValue". не должны иметь пробел ("white-space") между ними (см.7.3.3).

Примечание — Эго пргвило гарантирует, что цифровая подпись документа может быть легко сгенерирована без учета любой возможной вставки разделителя между лексическими элементами "XMLTypedValue".

8.1.3    ESC-последовательности. описанные в ИСО/МЭК8824-1.11.15.8. не используют.

8.1.4    Если нотация XML значений разрешает использовать пустой XMLTer(CM. ИСО/МЭК 8824-1, 15.5,16.8). то должен испольэова~ься этот пустой тег.

8.2 Действительные значения

8.2.1    Действительное значение нуля должно быть кодировано как "О".

8.2.2    Для всех других действительных значений ограничения, применяемые к "realnumber" (см. ИСО/МЭК 8824-1.11.9), определяют следующие подпункты.

8.2.3    Значение "Realnumbet" должно быть нормализовано так, чтобы его целая часть состояла из одной цифры, отличной от нуля. Десятичная точка должна присутствовать и должна сопровождаться дробной частью, содержащей как минимум одну цифру (может быть нулем). Дробная часть не должна содержать замыкающие нули, следующие после первой цифры.

8.2.4    Дробная часть значения "Realnumber"должна сопровождаться *Е'(не "е") и показателем степени (может быть нулем).

Примечание — Использование ведущих нулей в показателе степени запрещено ИСО/МЭК 8824-1.11.9.

8.2.5    Знак "+" не должен присутствовать ни перед целой частью значения "Realnumber’'. ни перед показателем степени.

8.3    Значение "битовая строка”

8.3.1    Если альтернатива "XMLTypedValue" для "XMLBitStringVaiue" (см. ИСО/МЭК 8824-1. 21.9) может быть использована (как определено е ИСО/МЭК 8824-1,21.10). то она должна быть использована. 8 противном случае должна быть использована альтернатива "xmlbstring" со всеми удаленными пробелами "while-space" (см. 7.3.3).

8.3.2    Если тип битовой строки — "NamedBitList”. то не должно быть битов с замыкающими нулями (см. ИСО/МЭК 8824-1, 21.7).

8.4    Значение строки октетов {octetstring)

Если альтернатива “XMLTypedValue" для "XMLOctetStringValue" (см. ИСО/МЭК 8824-1.22.3) может быть использована (как определено в ИСО/МЭК 8824-1.22.4), то она должна быть использована. 8 противном случае должна быть использована альтернатива "xmlbstring" со всеми удаленными пробелами "white-space” (см. 7.3.3) и все буквы должны быть заглавными.

8

ГОСТ Р ИСО/МЭК 8825-4 — 2009

8.5    Значение “последовательность"

Все компоненты последовательности, имеющие значение "по умолчанию” и набор абстрактных значений к значениям "по умолчанию* должны иметь кодированные значения "по умолчанию", представленные в виде текста. Эти компоненты всегда кодируются.

8.6    Значение “множество"

8.6.1    Тип набора будет иметь элементы в его "RootComponentTypeList". отсортированном в каноническом порядке, определенном в кСО/МЭК 8824-1.8.6. и дополнительно с тегом АСН.1 для целей определения порядка, в котором компоненты закодированы, когда один или более компонентов является типом выбора. Каждый такой тип выбора расположен по порядку так. как если бы он имел тег. равный наименьшему тегу в “RootAltemativeTypeList" того типа выбора или любого такого типа выбора, который встроен в него.

8.6.2    Элементы типа "множество", встречающиеся в "RootComponentTypeList”. кодируют в порядке окончательной сортировки. После кодирования элементов из "RootComponentTypeList* {если имеются) элементы множества, входящие в "ExtensionAdditionLisr. должны быть кодированы в порядке, в котором они определены (пример такого упорядочения элементов представлен в ИСО/МЭК 8825-2,20).

8.6.3    Все компоненты множества, имеющие значение ”по умолчанию" и набор абстрактных значений к значениям "по умолчанию", должны иметь кодированные значения "по умолчанию”, представленные в виде текста. Эти компоненты всегда кодируются.

8.7    Значение "множество-из”

8.7.1    Порядок элементов "XVILSetOfVaiue" (см. ИСО/МЭК 8824-1.27.3) будет определяться сортировкой строк символов, которую обеспечивает CXER кодирование для каждого элемента, как определено в 8.7.2 и 8.7.3.

8.7.2    Порядок сортировки дгя символьных строк определен использованием 32-битного значения символов (по ИСО/МЭК 106461). гричем символы с меньшим кодовым значением предшествуют символам с большим кодовым значением.

8.7.3    Условный символ-заполнитель используют для определения порядка сортировки. Этот символ предшествует воем другим симвогам. При определении, какую из строк. ”А" или ”В”. ставить ранее, ставят более короткую строку, дополняя ее условным символом-заполнителем в конце строки (если необходимо). Строку "А” ставят ранее строки "В”, только если символ в строке ”А” превосходит (см. 8.7.2) соответствующий символ в строке "В”, причем сравнивают значения первых символов, с которых эти строки начинают различаться.

8.8    Значение "идентификатор объекта"

Значение "XMLObjtdComponent” (см. ИСО/МЭК 8824-1.31.3) должно быть "XMLNumberForm”.

8.9    Значение “относительный идентификатор объекта"

Значение "XMLRetativcOIDCcmDonom" (см. ИСО/МЭК 8824-1.32.3) должно быть *XMLNumberForm".

8.10    Обобщенное время

8.10.1    Кодирование значения типа "GeneratizedTime” должно заканчиваться символом "2" (см. ИСО/МЭК 8824-1.42.3).

8.10.2    Строка, отображающая секунды, должна присутствовать всегда.

8.10.3    Если присутствует строка, отображающая доли секунды, то в ней пропускают завершающие нули. Если дробная часть соответствует ”0”, то ее пропускают вместе с десятичной точкой.

Например, секунды, представленные строкой "26.000”. кодируют как ”26". Секунды, представленные строкой “26.5200”. кодируют как "26.52".

8.10.4    Если имеется десятичная точка, она должна быть представлена в виде

8.10.5    Полночь (GMT) кодируют как строку вида:

"YYYYMMDD000000Z".

где ‘YYYYMMDD' отображают день, следующий за полночью.

Например, следующие кодирования являются правильными:

"19920S21000000Z*

"19920622123421Z*

"19920722132100.3Z"

Следующие кодирования являются неправильными:

"19920520240000Z* (полночь представлена некорректно)

”19920622123421.0Z* (ложныз замыкающие нули)

"19920722132100.3GZ" (ложные замыкающие нули)

9

ГОСТ Р ИСО/МЭК 8825-4 — 2009

8.11    Универсальное синхронизированное время

8.11.1    Кодирование типа "UTCTime" должно заканчиваться символом "Z” (см. ИСО/МЭК 8824-1. 43.3).

8.11.2    Строка, отображающая секунда, должна присутствовать всегда.

8.11.3    Полночь (GMT) кодируют как строку вида:

*YYMMDD0000002".

где "YYMMDD" представляют день, следующий за полночью.

Например, следующие кодирования являются правильными:

•920521000000Z-

•920622123421Z-

*9207221321002-

Следующие кодирования являются неправильными:

*920520240000Z* (полночь представлена некорректно)

'9207221321Z" (секунды "ОО’пропущены)

8.12    Значение открытого типа

Альтернатива "xmPhslring" дгя "XMLOpenTypeFieldVal" не будет использоваться (см. 7.5).

9 Правила расширенного XML кодирования

9.1    Общие положения

9.1.1    Расширенные правила XML кодирования (EXTENDED-XER) дополняют и модифицируют базовые правила BASIC-XER. Они предоставляют возможность АСН.1 определять форму и содержание значительно более широкого диапазоне XML документов.

9.1.2    EXTENDED-XER расширяют возможности BASIC-XER в трехосновных направлениях:

а)    обеспечение дополките/ъных опций кодера (например, для вставки команд обработки XML или комментариев XML и для использования идентификаторов для наименования битов в значении строки битов):

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

в)    проигнорирование неизвестных атрибутов из управляющего пространства имен (например -schemaLocationn) при отсутствие команд кодирования, для чего необходимы декодеры или некоторые известные атрибуты, которые могут быть вставлены другими инструментами XML. причем значения последних могут отличаться от значений, вставленных соответствующими кодерами, например атрибут идентификации типа (см. 9.2.10).

9.1.3    Если спецификация АСН.1 не содержит никаких команд XER кодирования, то каждое 8ASIC-XER кодирование любого абстрактного значения типа АСН.1 будет также EXTENDED-XER кодированием того же самого абстрактного значения этого типа.

Примечание — Обрати» — не справедливо. Даже при отсутствии команд XER кодирования EXTENDED-XER кодирование не всегда будет соответствовать BASIC-XER кодированию (см. 9.1.2 а и 9.1.2 в).

9.1.4    Все появления нотации "Туре" АСН.1 имеют связанный набор (возможно, пустой) команд XER кодирования (окончательные связанные команды кодирования). Команды кодирования ассоциированы с"Туре"через:

а)    унаследованные команды кодирования — присутствие связанных команд кодирования в *Туре*. применяемом в определении "typereference". используемом как Type*;

б)    целевые команды кодирования —- назначение одной или нескольких команд XER кодирования появлению "Туре" с использованием управляющего раздела XER кодирования (см. ИСО/МЭК 8824-1.50);

Примечание — МодугьАСН.1 может содержать только один управляющий раздел XER кодирования и. следовательно, только одж перечень “EncodinglnstrucbooAssignmentUsr (см. ИСО/МЭК 8824-1, 50.2)

в)    команды кодирования с префиксом — назначение одной или нескольких команд XER кодирования появлению Туре* с использованием префиксов типа XER (см. ИСО/МЭК 8824-1. 50):

г)    команды кодирования из перечня импортируемых —назначение одной или нескольких команд XER кодирования ссылкам всех типов, импортируемых из идентифицированного АСН.1 модуля.

10

ГОСТ Р ИСО/МЭК 8825*4 — 2009

9.1.5    Действием назначения команды XER кодирования является добавление, удаление или замещение связанных команд кодирования (см. раздел 14 для правил, применяемых для множественного назначения команд XER кодирования).

9.1.6    Порядок (или метод), вкотором команды кодирования становятся частью (или удаляются из) набора связанных команд кодирования, не является существенным в применении окончательных команд кодирования.

9.1.7    Окончательные команды кодирования влияют на EXTENDED-XER кодирование типов. Никакого другого влияния они не оказывают и. в частности, не являются связанными ни с какими либо ссылками на значения, определенными при использовании типа, не влияют на отображения значений и на другие правила кодирования.

Примечание — Имеются однако, требования к однозначности имен, на которую влияют присутствие окончательного имени (NAME), пространства имен (NAMESPACE) или нетегироеанной (UNTAGGED) команды кодирования. Эти требования могут интерпретироваться либо как ограничения способа, которым типы с такими окончательными командами кодирования могут использоваться, либо как ограничения использования этих команд кодирования.

9.2 Соответствие EXTENDED-XER

9.2.1    Если по спецификации АСН.1 инструкции XER кодирования назначаются в соответствии с разделами 10—16, так что тип или компонент АСН.1 имеют окончательные команды кодирования, которые нарушают ограничения, определенные в разделах 17 и последующих, то зта спецификация АСН.1 не согласуется с данным Международным стандартом, даже если (без команд XER кодирования) ока соответствует всем требованиям ИСО/МЭК 8824-1.

Примечание — Назначение команды кодирования 'Туре* может быть только случайно неуточнен-ным. так как она может быть сделаю недействительной (удаленной из набора связанных команд кодирования) последующим назначением. Обычно окончательная команда кодирования определяет соответствие спецификации. В некоторых случаях окончательная команда кодирования, не применимая к типу, к которому ее пытаются применить, игнорируется. Если разаелы, определяющие синтаксис и применение команд кодирования, идентифицируют обстоятельства, при готорых команда кодирования игнорируется в применении окончательных команд кодирования, то разделы, специфицирующие кодирование, обычно не упоминают возможное наличие этой окончатегъной команды кодирования.

9.2.2    Соответствующее EXTENDED-XER кодирование типа АСН.1 без окончательных команд кодирования будет кодированием, произееденным по Базовым правилам XML кодирования (BASIC-XER). специфицированным в разделе 8 с дополнительными опциями кодера, определенными в 9.2.5 и 9.2.6.

Примечание — Чтобы принять и обработать декларацию типа документа W3C XML. требуется наличие декодеров EXTENOED-XER (см. 9.2.4). но они не генерируются соответствующими кодерами и не составляют части EXTENDED-XER кодирования.

9.2.3    EXTENDED-XER кодирование типа АСН.1 с окончательными командами кодирования или с компонентами (на любой глубине и после разрешения всех ссылок на типы), которые имеют связанные команды кодирования, будет кодированием, специфицированным в разделе 16.

Примечание — Окончательные команды кодирования применяются в EXTENDED-XER кодировании и также используются декодерами и средствами проверки достоверности EXTENDED-XER кодирования.

9.2.4    Декодеры EXTENDED-XER (при использовании команды MODIFIED-ENCODINGS — см. 25) будут обрабатывать декларацию любого типа документа (см. W3C XML1.0.2.8). которая присутствует е соответствии с требованиями XWL процессора, не осуществляющего подтверждение правильности (см. W3C XML 1.0.5.1). Такая обработка будет выполняться (концептуально) до применения всех других требований декодирования в этом Международном стандарте. Кодеры EXTENDED-XER не будут включать декларацию типа документа.

9.2.5    Кодер EXTENDED-XER может (в качестве опции кодера) вставлять команды обработки XML или комментарии XML(e дополнение клюбым. которые могут потребоваться в соответствии с разделом 29) е элемент документа XML или пролог XML в любую позицию, разрешенную W3C XML1.0. Синтаксическая форма и семантика команд обработки XML определены в W3C XML1.0,2.6. Синтаксическая форма и семантика комментариев XML определены в W3C XML 1.0.2.5.

9.2.6    Если команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS отсутствует (см. 25) в управляющем разделе XER кодирования, то:

a) "XMLIntegerValue" (см. ИСО/МЭК 8824-1, 18.9) может быть либо "XMLSignePNumber". либо "EmptyElementlnteger” как опция ксдера:

11

ГОСТ Р ИСО/МЭК 8825-4 — 2009

6) "ХМ LB itString Value" (см. ИСО/МЭК 8824-1.21.9) может быть любой альтернативой этого продукционного правила как опция кодера. Если используется "XMLIdentifierLtsf. то это "EmptyElementList".

9.2.7    Если в управляющем разделе XER кодирования имеется команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS (см. раздел 25). то:

а) "XMLBooleanValue’(CM. ИСО/МЭК 8824-1.17.3)должно быть "TextBoolean";

б)    "ExtendedXMLIntegerValue" (см. 16.4) должно быть альтернативой "ModifiedXMLIntegerValue". определенной в 16.8:

Примечание — Это разрешает использование текстового значения для 'NamedNumber’' целого типа, как опцию кодера, но также модифицирует синтаксис для численного кодирования целого значения.

в)    "ExtendedXMLEnumeratedValue" (см. 33.3) не должно быть "EmptyElementEnumerated";

Примечание — В отсутствие команды GLOBAL-DEFAULTS ключевого слова MODIFIED-ENCODINGS "ExtendedXMLEnumeratedValue" не может быть TextEnumerated" (см. 7.3.4.1 и 33.3).

г)    "ExtendedXMLRealValue" (см. 16.4) должно быть альтернативой "ModifiedXMLRealValue". определенной в 16.9:

д)    "XMLSpecialRealValue" (см. ИСО/МЭК 6824-1.20.6) должно быть альтернативой TextReal":

е)    альтернативой "XMLIdentfierList" в "XMLBitStringValue" (см. ИСО/МЭК 8824-1. 21.9) должно быть "TextList" (см. 9.2.8 б):

ж)    "XMLSequenceOfValue" п "XMLSetOfVatue" (см. ИСО/МЭК 8824-1, 24.3 и 26.3) должно быть "XMLDelimitedltem" для всех типов компонентов, причем Таблица S не учитывается (см. ИСО/МЭК 8824-1. 25.5);

з)    "xmlhstring" (см. ИСО/МЭК 8824-1.11.13) не должно содержать пробелов (см. 7.1.4);

и)    все появления пробелов, юторые либо вне XML тегов, либо внутри значений XML атрибутов, могут быть пробелом с переходом (см. 7.1.5) как опция кодера.

Примечание — Существует несколько команд кодирования (таких как UNTAGGED). которые не могут быть использованы, за исключением команды GLOBAL-DEFAULTS ключевого слова MODIFIED-ENCODINGS.

9.2.8    Если команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS (см. 25) присутствует в управляющем разделе XER кодирования, то EXTENDED-XER кодер может (в качестве опций кодера):

а)    использовать альтернативу "Textlnteger" для "ModiftedXMLIntegerVaiue" (см. 16.8). при условии, что существует “NamedNumber" для целого значения в определении типа (см. также 9.2.7 б);

Примечание — Использование этого вида кодирования с поименованными значениями, который был добавлен в более позднюю версию, может сделать абстрактные значения нечитаемыми при внедрении более ранней версии спецификации.

б)    использовать "XMLIdentifiertjsf* (см. ИСО/МЭК8824-1,21.9) для “XMLBitStringValue". при условии, что значение битовой строки, которая должна быть закодирована, не содержит непоименованных битов (см. также 9.2.7 е);

Примечание — Использование этого вида кодирования с поименованными битами, который был добавлен в более позднюю версию, может сделать абстрактное значение невидимым более ранней версией спецификации.

9.2.9    Разрешенные в EXTENDED-XER кодировании опции кодера будут полностью восприняты соответствующими декодерами и средствами проверки достоверности.

9.2.10    Соответствующие декодеры и средства проверки достоверности должны воспринимать, но могут и проигнорировать наличие атрибута из управляющего пространства имен в любом XML элементе кодирования, если его наличие и использование не определены в разделах 36 и 37. Кодеры не должны генерировать такие атрибуты, ест и это не определено в разделах 36 и 37.

Примечание — Другие XML инструменты могут вставлять такие атрибуты. В общем случае декодер EXTENDED-XER не может легко определить разрешенное значение и смысл некоторых атрибутов из управляющего пространства имен. Их наличие и значение могут быть использованы в некотором приложении, если, например. присутствуют непредвиденные дочерние элементы XML. которые скорее передаются приложению (как опция декодера), чем игнорируются иги продуцируют фататъную ошибку декодера.

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

12

ГОСТ Р ИСО/МЭК 8825*4 — 2009

Примечание 1— Ассоциация не может зависеть от контента элемента XML. или его атрибутов, иг» от любого последующего элемента XML

Примечание 2 — Это условие всегда удовлетворяется, когда нет команд XER кодирования, но неправильное применение UNTAGGED дгя уничтожения связанных тегов вокруг, например повторений. (последовательное! ь-из или набор-из) и альтернатив (выбор) и неправильное использование NAME может привести к неправомочным спецификациям.

Применен и еЗ — В 9.2.11 приведено необходимое условие правильного кодирования, но принято считать, что. в общем случае, невозможно для инструментов АСН.1 (или автора) проверить правомочность на основании этого единственного оператора высокого уровня. В Приложении В приведена модель эффекта применения UNTAGGED и правила, которые могут обеспечить правомочность спецификации, определенной в 9.2.11.

9.2.12 Если спецификация АСН.1 содержит типы "ObjectClassFieldType". являющиеся открытыми типами (см. ИСО/МЭК 8824-2.14.2), с табличными ограничениями или ограничениями типов, такие ограничения будут игнорироваться при использовании условия, приведенного в 9.2.11.

9.3 Структура результата расширенного XML кодирования

9.3.1    Законченное расширенное XML кодирование продуцирует хорошо сформированный XML документ, состоящий из:

a) XML пролога (может быть пустым какопция кодера), как определено в 7.2;

6} элемента XML документа, являющегося результатом законченного кодирования значения единственного типа АСН.1. называемого корневым типом, как определено в разделе 16.

9.3.2    Результаты кодирования ’XML Value", используемые для базового XML кодирование, модифицированы для расширенного XML кодирования путем применения окончательных команд кодирования для типов (Туре"), которые они кодируют, и окончательных команд кодирования для их компонентов (до любой глубины) вместе с любыми командами кодирования GLOBAL-DEFAULTS.

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

9.3.3    Элемент XML документа при расширенном XER кодировании состоит из единственного XML элемента, который должен быть "ExtendedXMLTypedValue" для кодируемого типа (корневой тип). Он может включать атрибуты е стартовом теге или в теге пустого элемента и может иметь контент, который включает и дочерние элементы (см. W3C XML). и нетегированный текст. Дочерние элементы сами могут иметь свои дочерние элементы и нетегированный текст.

9.3.4    Абстрактные значения компонентов включающего типа кодируются как значения ••ExtendedXMLVaiue" (см. 16.4). возможно модифицированные командами кодирования, примененными к ним или к их собственным компонентам. Эти значения "ExtendedXMLVaiue":

а)    могут быть охвачены тегами XML стартовым и конечным (называемыми ассоциативными тегами), чтобы сформировать элемент в пределах "ExtendedXMLVaiue" включающего типа;

б)    могут (путем использования команды кодирования UNTAGGED для типа, который не является посимвольно-кодируемым) формировать частичный контент XML элемента для значения "ExtendedXMLVaiue* включающего типа:

Примечание — Приложение В описывает результат применения команды UNTAGGED как продукционных правил для контента частичного XML элемента, который может сочетаться с другими результатами кодирования для того, чтобы сформировать контент XML элемента, чей тип не является UNTAGGED.

в)    могут (путем использования команды кодирования UNTAGGED для посимвольно-кодируемого типа) формировать полное значение "ExtendedXMLVaiue’ компонента:

г)    могут (путем использования команды кодирования ATTRIBUTE для посим вольно-кодируемого типа) формировать значение "CharacterEncodableValue" в "QuotedVatue" атрибута "Attribute" (см. 19.3.3).

9.3.5    Если значение "ExtendedXMLVaiue" — пусто и его ассоциированные теги не удалены путем использования команды кодирования UNTAGGED. то ассоциированные предшествующий и последующий теги (какопция кодера) могут бытьзаменены пустым от элементов тегом XML (см. ИСО/МЭК 8824-1.16.8). Он называется ассоциированным пустым от элементов тегом.

9.3.6    Преобразование, определенное в 9.3.5, выполняется концептуально после завершения полного процесса кодирования и может быть предотвращено командой кодирования PI-OR-COMMENT

13

ГОСТ Р ИСО/МЭК 8825-4 — 2009

(см. раздел 29). продуцирующей одну или более команд обработки XML или один или несколько элементов комментария XML между стартовым и конечным тегами.

9.3.7 Ассоциированный предшествующий тег. ассоциированный последующий тег и ассоциированный пустой от элементов тег в совокупности называются ассоциированными тегами. Имена XML элементов в ассоциированных тегах называются именами ассоциированных тегов и (в отсутствие окончательных команд кодирования NAME и NAMESPACE) являются идентификаторами, референтными именами типов или именами типов "xmlasnltypename" (см. ИСО/МЭК 8824-1.11.25).

10    Нотация, набор символов и лексические единицы, использованные в командах XML кодирования

10.1    Нотация, используемая три спецификации синтаксиса команды кодирования "Encodinglnstrucbon" в префиксе типа XER (см. раздел 12) и в перечне "EncodinglnstructionAssignmentList" в управляющем разделе XER кодирования (см. раздел 13). определена ИСО/МЭК 8824-1.5.

10.2    ИСО/МЭК 8824-1. 10 применяется к "Encodinglnstruction" XER и к “Encodinglnstruction-AssignmentList" XER.

Примечание — В частности, символы пробела АСН.1 могут произвольно появиться между лексическими единицами в обеих зтих синтаксических конструкциях, если только не используется нотация “&* (см. ИСО/МЭК 8824-1. 5.4).

Ю.ЗОбщие правила, определенные в ИСО/МЭК8824-1, 11.1, также применяются к "Encodinglnstruction' XER и к "Encoding!nstructionAssignmentListHXER.

Примечание — В частности, комментарий АСН.1 может быть использован везде, где разрешены пробелы АСН.1. и требования для вставки пробелов и комментариев, которые в других обстоятельствах могли бы быть неправильно восприняты, специфицированы в ИСО/МЭК 6824-1.

10.4 Следующие лексические единицы используются в настоящем стандарте:

comment(CM. ИСО/МЭК8824-1.11.6);

cstring (см. ИСО/МЭК 8824-1.11.14);

identifier (см. ИСО/МЭК 8824-1.11.3);

modulereference (см. ИСО/МЭК 8824-1, 11.5);

number (см. ИСО/МЭК 8824-1. 11.8):

typereference (см. ИСО/МЭК8824-1. 11.2):

Т(см. ИСО/МЭК8824-1. Г.26);

У (см. ИСО/МЭК 8824-1. 11.26);

V (см. ИСО/МЭК 8824-1. 11.28);

У (см. ИСО/МЭК 8824-1. 11.26);

*."(см. ИСО/МЭК 8824-1. 11.26);

У (см. ИСО/МЭК 8824-1. 11.26);

“"(см. ИСО/МЭК 8824-1. 11.26);

""(см. ИСО/МЭК8824-1. 11.26);

(см. ИСО/МЭК 8824-1. 11.16);

(см. ИСО/МЭК 8824-1, Г.26);

'>" (см. ИСО/МЭК 8824-1. V .26);

-<Г (см. ИСО/МЭК 8824-1. 11.21);

7>“ (см. ИСО/МЭК 8824-1. 11.22).

Дополнительные лексические единицы (’ModifiedXMLNumber” и "ModifiedXMLRealNumbeO определены и использованы в 18.8.3 и 16.S.

11    Ключевые слова

11.1 Слова, специфицированные ниже е 11.3 и 11.4. используются в одной из двух или а каждой конструкции "Encodinglnstruction' п XER "EncodinglnstructionAssignmentLisr (в дополнение к некоторым зарезервированным словам АСН.1 )и могут появляться в этих синтаксических конструкциях только со значением. присвоенным им в последующих разделах этого Международного стандарта. Исключения определены в 11.2.

14

ГОСТ Р ИСО/МЭК 8825-4 — 2009

11.2Ключееые слова не являются зарезервированными, но если typereference" АСН.1.который совладает с ключевым словом, приведенным в 11.3, требуется в XER 'Enoodinglnstruction" или XER "EncodinglnstructionAssignmentList", то должны быть применены продукционные правила "ModuleAndTypeReference”.

11.3    Ключевыми словами являются:

AFTER-TAG

AFTER-VALUE

ANY-ATTRJBUTES

ANY-ELEMENT

AS

ATTRIBUTE

BASE64

BEFORE-TAG

BEFORE-VALUE

CAPITALIZED

COLLAPSE

CONTROL-NAMESPACE

DECIMAL

DEFAULT-FOR-EMPTY

ELEMENT

EMBED-VALUES

GLOBAL-DEFAULTS

IN

UST

LOWERCASED

MODIFIED-ENCODINGS

NAME

NAMESPACE

NOT

PI-OR-COMMENT

PREFIX

REPLACE

TEXT

UNCAPfTAUZED

UNTAGGED

UPPERCASED

USE-NIL

USE-NUMBER

USE-ORDER

USE-ONAME

USE-TYPE

USE-UNION

WHITESPACE

11.4    Дополнительные ключевые слова используются в продукционном правиле "BuiltlnTypeName' (см. 13.2.3). но все они являют» зарезервированными словами АСН.1 (см. ИСО/МЭК 8824-1.11.27) и никогда не могут быть использованы в АСН.1 как "typereference'.

12 Назначение команды XML кодирования типу АСН.1 с использованием префикса типа

12.1 Окончательные команды кодирования для типа могут:

а) требовать использование альтернатив "ExtendedXMLValue", которые не являются альтернативами "XMLValue" для этого типа;

Примечание — Альтернативы продукционного правила ’ExtendedXMLValue" включают и (неизмененные) альтернативы продукционного правила ’XMLValue". используемого в BASIC-XER. и альтернативные продукционные правила, выбранные командами XER кодирования.

15

ГОСТ Р ИСО/МЭК 8825-4 — 2009

б)    изменить имя ассоциативного тега. ’AttributeName" или значение атрибута идентификатора типа для кодирования этого типа;

в)    послужить причиной того что "ExtendedXMLValue" компонента типа АСН.1 будет вставлено как "CharacterEncodableVatue" в "QuotedValue" атрибута ("Attribute*) (см. 19.3.3);

г)    определить имя пространства имен XML для референтных имен типа и идентификаторов, определенных в модуле АСН.1. и рекомендовать префикс пространства имен для использования с этим пространством имен;

д)    определить, когда имя. ограниченное пространством имен (вместо неограниченного имени) должно быть использовано в XML элементе или как имя XML атрибута;

в) определить удаление связанных тегов, имеющее обычно результатом либо нетегированный текст, либо контент частичного XML элемента (которому может предшествовать или за которым может следовать другой контент частичного XML элемента — см. приложение В);

ж) определить вставку одно* или более команд обработки XML или одного или более комментария XML (см. раздел 29):

•    перед связанным предшествующим тегом или связанным пустым от элемента тегом;

•    между связанным предшествующим тегом и "ExtendedXMLValue";

Примечание1 — Это препятствует использованию ассоциированного пустого от элемента тега.

•    между "ExtendedXMLVciue” и связанным последующим тегом;

Г1римечание2 — Это препятствует использованию ассоциированного пустого от элемента тега.

•    после ассоциированного последующего тега.

ПримечанивЗ — Все четыре варианта вставки препятствуют использованию UNTAGGED при удалении ассоциированных тегов (си. 29.2.2).

12.2    Команды XER кодирования могут быть назначены типам АСН.1 с использованием либо продукционного правила "Encodnglnstruction" в префиксе типа XER. либо продукционного правила “EncodinglnstrucbonAssignmentLis:" в управляющем разделе кодирования XER. Назначение с использованием префикса типа определено в этом разделе. Назначение с использованием управляющего раздела копирования XER описано в разделе 13.

Примечание — Действие множественных назначений команд кодирования той же самой категории описано в разделе 14.

12.3    Продукционным правилом команды кодирования XER "Encodinglnstruction’flBnflfleTCfl: Encodinglnstrucbon::=

Positive Instruction | Negatinglnstruction Positive Instruction::=

AnyAttributelnstruction | AnyElementinstruction j Attributelnstruction | Base64lnstruction j DecimaSInstruction | DefauttForEmptylnstruction j EmbedValuesInstruction j GlobalDefauttsInstruction | Listlnstruction j Namelnstruction | Namespacetnstruction j PlOrCommentlnstruction |Textlnstruction j Untaggedlnstruction | UseNillnstruction j UseNumberlnstruction j UseOrderlnstruction | UseQNamelnstruction j UseTypelnstruction

16

ГОСТ Р ИСО/МЭК 8825-4 — 2009

| UseUnionlnstrucfon

| Whitespacelnstruction Negatinglnstruction::=

NOT Positivelnstruction

|Elementlnstruction

12.4    "Elementlnstruction" (см. раздел 19) является строгим синонимом для NOT UNTAGGED и не обсуждается в этом разделе.

Примечание 1 — Синоним ELEMENT предоставляется, чтобы избежать двойного отрицания и для лучшего понимания текста. Обычно он будет использоваться (в противоположность команде кодирования ATTRIBUTE), для того чтобы различать природу типов высшего уровня в модуле АСН.1. Типы высшего уровня, которые не имеют окончательных команд кодирования ELEMENT и ATTRIBUTE, будут поддерживаться типами, которые прямо не соответствуют XML атрибутам или элементам и обычно бывают UNTAGGED.

Примечание 2 — Для команды кодирования ELEMENT не существует команды отрицания. ELEMENT может быть отменен последующей командой кодирования UNTAGGED. но такой прием не рекомендуется.

12.5    Каждое использование команды "Positivelnstruction" в префиксе типа XER или в управляющем разделе кодирования назначает эту команду кодирования XER соответствующему типу "Туре".

12.6    Если "Туре" в TypeAssignment" (см. ИСО/МЭК 8824-1,15.1) имеет окончательные команды кодирования. все применения "typereference" (в модуле, содержащем "TypeAssignment" или в некотором другом модуле) наследуют его окончательные ассоциированные команды кодирования, за исключением окончательных команд кодирования NAME и NAMESPACE (они не наследуются).

Примечание — Эти две команды кодирования влияют на имена XML. используемые вместо референтных имен типе». Если референтное имя типа используется для определения типа в назначении типа или типа компонента. наследоЕание команд кодирования. По его определению, неуместно.

12.7    Команда кодирования в префиксе типа или в управляющем разделе кодирования может быть позитивной командой, используемой для того, чтобы добавить или заменить команду кодирования (использование "Positivelnstruction"), игм негативной командой, используемой для отмены (использование "Negatinglnstruction") одной или более команд кодирования.

12.8    Команды кодирования XER состоят из четырех частей (некоторые из которых могут быть пустыми):

а)    NOT — показывает отрицание или удаление команд кодирования данной категории;

Примечание 1 — Эта часть присутствует для негативных команд (за исключением "Elementinstruction") и отсутствует для позитивных команд.

б)    ключевое слово, идентифицирующее категорию команды кодирования;

Примечание 2 — Эта часп» всегда присутствует.

в)    идентификация целевого перечня назначений команд кодирования (возможно, с информацией для квалификации, ограничивающей его применение к подмножеству значений некоторого типа):

Примечание 3 — При использовании в префиксе типа целевой перечень всегда является "пустым" продукционным правилом, так как цель назначения — это всегда тип. ассоциированный с префиксом типа (см. 12.12). Целевой лист таюкв всегда пустой для команды кодирования GLOBAL-DEFAULTS.

г)    синтаксис, специфический для каждой категории команд кодирования, обеспечивающий детали кодирования в этой категории.

Примечание 4 — При использовании в негативной команде это воегда "пустое" продукционное правило. Эта часть всегда отсутствует е командах кодирования, для которых ключевое слово является достаточно обоснованным определением.

12.9    Некоторые команды кодирования XER требуют спецификации абстрактного значения типа. Эта спецификация использует продукционное правило "Value" (см. ИСО/МЭК 8824-1. 16.7). Если "valuereference" используется как "Value", то "valuereference" должно быть определено в (или импортировано в) модуле АСН.1. содержащем команду кодировании XER.

Примечание — Это отначаег. что значение может быть определено или непосредственно с применением базовой нотации значений АСН.1 или нотации значений XML.

12.10    В таблице 1 перечислены в первом столбце альтернативы в продукционных правилах "Positivelnstruction". Второй столбец содержит номера разделов, в которых определены требования для

17

ГОСТ Р ИСО/МЭК 8825-4 — 2009

применения тех команд кодирования, которые они продуцируют. В третьем столбце показаны категории каждой команды кодирования.

Примечание — Эти категории вводятся в таком порядке, чтобы обеспечить ясные утверждения о результате множественных назначений команд кодирования из той же самой категории.

Таблица 1 — Команды кодирования, разделы, где они определяются, и категории

Команда кодирования

Раздел определения

Категория

AnyAttributestnstruction

Раздел 17

Команда AnyAttributes

AnyElementtnstruclion

Раздел 18

Команда AnyEtemant

Attnbutelnstnjcbon

Раздел 19

Команда Attribute

Base 641 nstruction

Раздел 20

Команда Base64

Decimallnstruction

Раздел 21

Команда Decimal

DefaultForEmptylnstruction

Раздел 22

Команда DefaultForEmpty

Elementlnstruction

Раздал 23

Команда Element

EmbedValuestnstrucUon

Раздал 24

Команда EmbedValues

GtobalDefaultsInstruction

Раздал 25

Команда GlobalDefaiits (но см. 14.3}

Listlnstruction

Раздел 26

Команда List

Namelnstaiction

Раздал 27

Команда Name (но см. 14.3)

Namespacelnstruclion

Раздел 28

Команда Namespace

PiOrCommentlnslruction

Раздел 29

Команда PiOrComment (но см. 14.3)

Textlnstruction

Раздел 30

Команда Text (но см. 14.3)

Unlaggedtnstruction

Раздал 31

Команда Untagged

UseNiHnslruclion

Раздел 32

Команда UseNil

UseNumberlnstruction

Раздел 33

Команда UseNumber

UseOrderlnstruction

Раздел 34

Команда UseOrder

UseQNamelnstructkKi

Раздел 35

Команда UseGName

UseTypelnslruction

Раздел 36

Команда UseType

UseUnionlnstruction

Раздел 37

Команда UseUnion

Whitespacelnstruction

Раздел 38

Команда Whitespace

12.11    Каждая из альтернатиз для продукционного правила "Positivelnstruction" находится в определенной категории команды кодирования (или в некоторых случаях охватывает множественные категории). Категория каждой команды кодирования определена в столбце 3 таблицы 1 (ноем, также 14.3 для команд кодирования, которые охватывают множественные категории).

Примечание — Категории команд кодирования используются в 14.4. чтобы определить эффект многократного назначения команд годироеания.

12.12    ‘TargetList" во всех конструкциях "Encodinglnstruction". которые появляются в префиксе типа, будет “пуст", и адресатом должен 5ыть ’Type", связанный с префиксом типа.

12.13Команда отрицания т-аходится в той же категории, что и соответствующая положительная команда.

12.14 Тип АСН.1 никогда не мог связывать с этим больше чем одну команду кодирования XER данной категории (см. 14.3 и 14.4), независимо от того, как они назначены. Результат множественных назначений команды кодирования XER данной категории определен в разделе 14.

18

ГОСТ Р ИСО/МЭК 8825-4 — 2009

13 Назначение команды кодирования XER с использованием управляющих

разделов кодирования

13.1    Перечень назначений команд кодирования

13.1.1    Команды кодирований XER могут быть назначены типам АСН.1 с использованием либо продукционного правила "EncodingInstruction" в префиксе типа XER. либо продукционного правила "EncodinglnstructionAssignmentLis:” в разделе управления кодированием XER. Назначения, использующие префикс типа, определены в разделе 12. Назначения, использующие раздел управления кодированием XER. определены в этом разделе.

13.1.2    XER "Encodinglnstruction" продукционное правило:

EncodinglnstructionAssignmentList: ;=

Encodinglnstruction

EncodinglnstructionAssignmentList?

13.1.3    Продукционное правило "Encodinglnstruction” определено в 13.3.

13.1.4    Каждое использованиэ "Encodinglnstruction" в разделе управления кодированием назначает эту команду кодирования XER появлению "Туре", идентифицированному в команде кодирования 'TargetLisf. или ссылкам на тип в перечне импорта. Продукционное правило "TargetLisf и цели, которые идентифицируются перечнем, определены в 13.2.

13.1.5    Подразделы 12.4 и 12.14 также применяются к командам кодирования в разделе управления кодированием. Разделы, определяющие детализированный синтаксис для каждой категории команды кодирования. перечислены в таблице 1. Категории команд кодирования XER также перечислены в таблице 1.

13.2 Идентификация целей для команды XML кодирования с использованием перечня целей

13.2.1    Общие правила приведены ниже.

13.2.1.1    Альтернативы "Encodinglnstruction" определяют команду кодирования XER. которая назначается. и цель (цели) для назначения в пределах модуля АСН.1. Все цели — появления продукционных правил Type" в пределах модуля АСН.1.

Примечание — Могут быть определен множественные цели в тех же самых или е разгмчных назначениях типа АСН.1. Цель, которая является полным модулем, или всеми появлениями в пределах модуля встроенного типа или конструктора, также может быть определена. Таким образом, (при использовании раздела управления XER кодирования) единственная "Encodinglnstruction" может использоваться для назначения коме-ретной команды XER кодирования всем типам в модуле АСН.1. которым необходимо назначить эту команду кодирования.

13.2.1.2    При идентификации цели (целей) для назначения команды XER кодирования используется продукционное правило "TargetLis-. Это определено е следующих подразделах.

Примечание 1 — На продукционное правило "TargetList" ссылаются в разделе 19.

Примечание 2 — Продукционное правило "TargetList" имеет "пустую" альтернативу Это — единственная разрешенная альтернатива, если 'Encodinglnstruction" используется в префиксе типа (см. 12.12). В 13.2 рассматривается только использование TargetList" в управляющем разделе кодирования.

13.2.1.3    Продукционное правило TargetLisf:

TargetList::*

Targets""*

| empty Targets::=

Type Identification | BuittlnTypeldentification j Identifiers InContext | ImportedTypesWentification

13.2.1.4    Если ’TargetLisf — перечень одного или более продукционных правил Targets”, то каждое из "Targets’ идентифицирует одну или более целей (типы — Туре", которым назначена команда кодирования), но оно может также обеспечить уточняющую информацию для команды кодирования, ограничивая ее применение кодированием с использованием конкретного идентификатора в определении целевого типа, или с использованием тегов пустых элементов для управляющих символов, определенных в ИСО/МЭК 8824-1.11.15.5.

19

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Примечание — Уточняющая информация присутствует только в том случае, если цегъ является определением одного из спвдукхци> типов: булевский, строка битов, перечислимый, целочисленный или ограниченная строка символов (см. 13.2.2.5).

13.2.1.5    "TargetList" "пустых* разрешается только в префиксе типа {когда это — единственная разрешенная альтернатива) и в команде кодирования GLOBAL-DEFAULTS. В префиксе типа он идентифицирует тип. связанный с префиксом. В команде кодирования GLOBAL-DEFAULTS он идентифицирует весь Туре" в модуле.

13.2.1.6    Команда кодирования XER (возможно, со связанной уточняющей информацией) назначена всем типам, идентифицированным TargetList". как определено в 13.2.1.10» 13.2.1.16.

Примечание — Это было бы необычным, но правомочным для данного Туре", который будет идентифицирован не раз в целевом перечне. В таких случаях применяется раздел 14.

13.2.1.7    Идентификация цели (целей) (и. возможно, уточняющей информации) продукционным правилом Targets" использует одну из пяти базовых форм:

а)    использование ссылки на тип ("typereference". см. 13.2.2). возможно, сопровождаемой перечнем разделенных точкой идентификаторов, с распознаванием также:

1)    "Туре" в назначении типа (идентификаторы отсутствуют);

2)    ’Туре” в компоненте определения типов (который может включать компоненты верхнего уровня, введенные конструкцией COMPONENTS OF — см. 13.2.1.12):

3)    один из Туре"—(1) или (2). плюс конечный идентификатор, перед которым стоит двоеточие (не точка) для идентификатора, используемого в определении целевого типа, обеспечивает уточняющую информацию;

б)    использование ALL как последнего идентификатора в форме (а), идентифицируя все. что типы (Types’) дословно представляют в определении типов (что идентифицировано предшествующей ссылкой на тип и перечнем идентификаторов, разделенных точками), или использование уточняющей информации (которой предшествует двоеточие, не точка), распознающей вое идентификаторы, используемые для значений определений типов: булевс<их. строк битое, перечислимых, или целочисленных (которые идентифицированы предыдущей ссылкой на тип и списком идентификаторов, разделенных точками), или идентифицирующей все использования тегсв пустого элемента XML. обычно представляющих некоторые управляющие символы (см. ИСО/МЭК 8824-1.11.15.5):

в)    использование "BuiltlnTypeName" (см. 13.2.3). идентифицирующего все типы ("Type’s) в модуле, которые определены при помощи соответствующего встроенного названия типа или конструктора, возможно только в случае типов BOOLEAN. BIT STRING. ENUMERATED. INTEGER и ограниченной строки, в сопровождении уточняющей информацией:

i) использование списка "идеи 1Ификспиров". со1»ровождаеми1о1ГЧ(ит ALL сопровождаемо! и IN. или COMPONENTS, сопровождаемых IN) и формой (а), (см. также 13.2.4). идентифицирующего:

1) "Туре" идентифицированных компонентов формы (а);

2)    все Types’, которые текстуально встречаются в пределах Туре", идентифицированного формой (а) (использование ALL);

3)    все (Type’s), которые являются компонентами верхнего уровня Туре", идентифицированного формой (а) (использование COMPONENTS):

д) использование "ImportecTypesIdentification” (см. 13.2.5) идентифицирует все ссылки на типы ftypereference’s) в списке IMPORTS, которые импортированы из специфицированного модуля.

Примечание 1 — Термин “определение типов", используемый в формах (а) и (б) подчеркивает, что только дословно представленные идентификаторы могут использоваться. Идвнтифмсаторы не могут использоваться. если Туре" — ссылка на тип

Примечание 2 — В общэм случае на компонент можно сослаться при помощи форм (а) или (г). Если нужно сослаться больше нем на один компонент типа, то предпочтительнее вариант (г), так как это менее многословно. при других критериях надо сгдагь предпочтение форме (а). Это — вопрос стиля.

13.2.1.8    Тип строка битов или строка октетов с ограничением контента, который содержит тип. будет обработан как тип с единственным компонентом, с использованием как составляющего идентификатора для назначения целевой команды типу ("Туре") в ограничении содержания.

13.2.1.90пределение типов, которые являются последовательностью-изилинабором-из,должно быть обработано как тип с единственным компонентом, с использованием как составляющего

20

ГОСТ Р ИСО/МЭК 8825-4 — 2009

идентификатора для назначения целевой команды типу ("Туре"), который является компонентом послвдова-тельности-иэ или набора-иэ.

Примечание — Также возможно идентифицировать этот единственный компонент, используя составляющий идентификатор (если предсаелен).

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

Примечание t — Если параметризованный тип экспортирован, окончательные команды кодирования для его фиктивных параметров выполняются с ним.

Примечание 2 — Нет никаких механизмов, обеспечивающих назначение команды кодирования непосредственно типу ('Туре") фактического параметра в реализации параметризованного типа.

13.2.1.11    Если цель—"SelectonType". она наследует окончательные команды кодирования выбранной альтернативы типа выбора, на который ссылается тип выбора, после которого назначаются команды кодирования, предназначенные типу "SelectionType”.

13.2.1.12    Если цель — компонент, произведенный в результате COMPONENTS OF преобразования, она наследует окончательные команды кодирования компонента типа, на который ссылаются COMPONENTS OF. После преобразования назначаются команды кодирования, которые были назначены компонентам, произведенным COMPONENTS OF. Любые команды кодирования для типа "Туре", из которого извлечены компоненты, игнорируются.

13.2.1.13    Если продукционное правило "Targets"—Typeldentification". то идентифицируемые цели определены в 13.2.2.

13.2.1.14    Если продукционное правило 'Targets’ — "BuiltlnTypeldentification". то идентифицируемые цели определены в 13.2.3.

13.2.1.15    Если продукционное правило "Targets"—"IdentifiersInContext". то идентифицируемые цели определены е 13.2.4.

13.2.1.16    Если продукционное правило Targets"— "ImportedTypesIdentification*. то идентифицируемые цели определены в 13.2.5.

13.2.1.17    Пример определения типов АСН.1, сопровождаемого двумя различными способами назначения команды кодирования XER е разделе управления кодированием, и то же самое определение типов АСН.1 с командами кодирования XER. назначенными с использованием префиксов типа. Все три подхода приводят к тому же самому результату EXTENDED-XER кодирования.

Определение типов:

Му-Туре::= SEQUENCE { field 11NTEGER. field2 CHOICE {

first SEQUENCE OF INTEGER.

second SEQUENCE OF OBJECT IDENTIFIER}}

Команды кодирования XER в разделе управления кодированием могли быть:

ATTRIBUTE fieldl IN Му-Туре LIST first IN My-Type.fietd2

Альтернативно, они могли быть:

ATTRIBUTE My-Type.field1 LIST My-Type.field2.first

Определение типов с префиксами типа:

Му-Турв::= SEQUENCE {

fieldl [ATTRIBUTE] INTEGER. field2 CHOICE {

first [LIST] SEQUENCE OF INTEGER, second SEQUENCE OF OBJECT IDENTIFIER}}

21

ГОСТ Р ИСО/МЭК 8825-4 — 2009

13.2.2 Идентификация целей с использованием ссылки и идентификаторов типов АСН.1

13.2.2.1 Продукционное правило "Typeldentification*:

Typeldentification ::=

ALL

| ModuleAndTypeRefertnce ComponentReferenoe ?

QuatifyinglnformationPart ?

ModuleAndTypeReference

typerefereoce

| modulereference"' typereference ComponentReference

n n

ComponentldList

ComponentldList::*

Componenlld+

Componentld::*

identifier

l~"

| ALL

QualifyinglnformationPart ::*

n.u

Qualifyinglnformation Qualifyinglnformation identifier | ALL

13.2.2.2’Typeldentification" ALL идентифицирует все типы ("Types") в назначениях типа (TypeAssignmenfs) в модуле.

13.2.2.3    Продукционное правило "ModuleAndTypeReference" идентифицирует Туре", который назначен "typereference". "Modulereference" в "ModuleAndTypeReference’ должен быть ссылкой на модуль для модуля, содержащего "EncodinglnstructionAssignmentList", и "typereference" должен быть ссылкой на тип. который определен в модуле. Это должно использоваться, если и только если "typereference" состоит из тех же самых символов как одно из ключевых слов, определенных в 11.3. иначе одна ссылка "typereference" должна быть использована.

13.2.2.4    Символ идентифицирует Туре" (единственного) компонента типа лоследоватепьность-иэ или набора-из. или типа в ограничении контента, которое содержит "Туре".

Примечание — Эта форма может использоваться, даже если компонент типа последоватвльность-из или на бор-из имеет идентификатор но использование идентификатора должно быть предпочтительней.

13.2.2.5    Если ключевое слово ALL будет использоваться как "Componentld”. то это должен быть последний "Componentld" е "ComponentldList” и он не должен сопровождаться "Qualifyinglnformation".

13.2.2.6    Если первый "Componentld” е "ComponentldList" (если присутствует) — идентификатор, который дословно присутствует (или следует из использования COMPONENTS OF) как составляющий идентификатор в Type”, идентифицированном "ModuleAndTypeReference". то это идентифицирует "Туре" того компонента. Если это не идентификатор, который дословно присутствует (или следует из использования COMPONENTS CF) как составляющий идентификатор в "Туре”, идентифицированном "ModuleAndTypeReference". то это появление "Typeldentification" не правомочно, кроме того, не идентифицирует никакой цели.

Примечание — Это требует, чтобы тип. на который ссылается "ModuleAndTypeReference". был определением типов: последовательность, набор, выбор, последовательносгь-из. или набор-из. или определением типов: строка битов игы строка октетов с ограничением содержания, которое содержит ’Тип".

13.2.2.7    Если последующий "Componentld" (кроме последнего) е "ComponentldList" (если присутствует) — идентификатор, который дословно присутствует как идентификатор компонента в Туре", идентифицированном предыдущим "Componentld", то идентифицируется Туре" того компонента. Если это не идентификатор компонента, который дословно присутствует е Туре*, идентифицированном предыдущим "Componentld*. то появление "Typeldentification" не правомочно, кроме того, не идентифицирует никакой цели.

22

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Примечание — В первом использовании "ComponenUtf* можно ссылаться на компоненты, введенные COMPONENTS OF. Компоненты этих <омпоненгов не могут быть идентифицированы последующим "Componentld".

13.2.2.8    Если последний "Componentld" е "ComponentldLisf (если присутствует):

а)    идентификатор, который дословно присутствует как идентификатор компонента в Type”, идентифицированном предыдущим "Componentld", то он идентифицирует "Туре" этого компонента, команда кодирований должна быть назначена этому Type":

б)    ключевое слово ALL — команда кодирования должна быть назначена всем типам Types", которые дословно присутствуют в определении типов, идентифицированном предыдущим "Componentld", который должен быть типом с одним компонентом или более.

13.2.2.9    ’QualifyinglnformatiorPart" не должна присутствовать, если только "ModuleAndTypeReference" с "ComponentReference" (если присутствует) не идентифицирует цели:

а)    булевского типа;

б)    типа строки битов с поименованными битами:

в)    перечислимого типа;

г)    целочисленного типа с поименованными числами;

д)    типа строки с ограниченным набором символов.

13.2.2.10Альтернатива Identifier” для "Qualifyinglnformation" не должна использоваться, если "ModuleAndTypeReference’с "ComponentReference"(если присутствует) не идентифицирует единственной цели, которая не принадлежит к типу строки с ограниченным набором символов, или идентифицирует перечень целей булевсхоготипа. "Идентификатор" должен быть идентификатором в определении типа цели, если цель не принадлежит к булевскому типу, или должен быть true или false. "Идентификатор" является уточняющей информацией, которая распознает, что команда кодирования применяется только к кодированию с использованием того идентификатора.

13.2.2.11    Альтернативы true и false для "Qualifying Information" для булевского типа определяют уточняющую информацию, которая идентифицирует, что команда кодирования применяется только к кодированию абстрактных значений true илк false соответственно.

13.2.2.12    Альтернатива ALL для "Qualifyinglnformation" не должна использоваться, если цель не идентифицирует (только) одно или более определений типов для типов, перечисленных в 13.2.2.9. Она не должна использоваться, если цель идентифицирует одну или более целей типа строки с ограниченным набором символов, если применяемая команда кодирования не NAMESPACE. Она определяет уточняющую информацию. которая идентифицирует положение, что команда кодирования применяется ко всем идентификаторам в определениях типов, или в случае типа строки ограниченного набора символов—ко всем вариантам использования тегов пустых элементов XML. применяемых для представления управляющих символов, перечисленных в ИСО/МЭК 8824-1,11.15.5.

Примечание — I1оеоэможмо испольэоеатв уточняющую информацию с “идентификатором*, чтобы выборочно влиять на представление управляющих символов. Только ALL возможно в этом случав.

13.2.3 Целевые идентификации при использовании имени встроенного типа

13.2.3.1 Продукционное правило "BuittiпТуре Identificatlon":

BuiltlnTypeldentification::=

BuiltlnTypeName

BuiltlnTypeQualifyinglnformationPart ?

BuiltlnTypeName::=

BIT STRING IBOOLEAN

| CHARACTER STRING | CHOICE

| EMBEDDED PDV | ENUMERATED |EXTERNAL j GeneralizedTime | INSTANCE OF | INTEGER | NULL

j OtyectDescriptor | OBJECT IDENTIFIER

23

ГОСТ Р ИСО/МЭК 8825-4 — 2009

| OCTET STRING | REAL

| RELATIVE-OID | SEQUENCE | SEQUENCE OF | SET | SET OF |UTCTtme

j RestrictedCharacterStrirgType

BuiltlnTypeQualifyingtnformationPait:=

BuiltlnTypeQualifyinglnfornation

BuiltlnTypeQualifyinglnformation identifier | ALL

13.2.3.2    Продукционное правило "BuiltlnType Identification" определяет, что команда кодирования должна быть применена ко всем дословным появлениям в пределах модуля соответствующего встроенного типа или типа, определенного сиспольэованием соответствующего конструктора.

13.2.3.3    “RestnctedCharacterStringType"определен в ИСО/МЭК8824-1, 37.

13.2.3.4    "BuiltinTypeQualifyinglnforrnationPart" не должна присутствовать, если только "BuiltlnTypeName" не принадлежит типам: булевский, строка битов, перечислимый, целочисленный, или строка ограниченного набора символов.

Примечание — Только форма ALL для "BuittlnTypeQualrfyinglnformation" разрешается для строки ограниченного набора символов (си. 13.2.2.10 и следующие подразделы).

13.2.3.5    Альтернатива "identifier"/^ "BuiltlnTypeQualifyinglnforrnation" не должна использоваться, если "BuiltlnTypeName” не булевского типа, и тогда значение должно быть tnje или false. Это определяет уточняющую информацию, идентифицирующую команду кодирования как применяемую только к кодированию абстрактных значений true или false, соответственно.

13.2.3.6    Альтернатива ALL для "BuiltlnQuatifyinglnformation" определяет уточняющую информацию, которая идентифицирует команду кодирования как применяемую ко всем идентификаторам в любом случае использования "BuiltlnTypeName" в пределах модуля (или ко всем значениям определения булевского типа, или ко всем тегам пустых элементов, используемым в значениях специфицированного типа строки ограниченного набора символов — см. ИСО/МЭК 8824-1.11.15.5).

13.2.4 Использование идентификаторов в контексте

13.2.4.111родукционное правило "identmersincontexr:

I dentifier s I nContext IdentifierList IN

Typefdentification

IdentifierList

identifier"." ♦

| ALL

| COMPONENTS

13.2.4.2    Typeldentification" определена e 13.2.2 и идентифицирует тип. определенный в операторе присваивания типа в модуле или компоненте, или субкомпоненте типа, определенного в модуле. "QualifyinglnformationPart” должна отсутствовать.

13.2.4.3    Туре*, идентифицированный Typeldentification". должен быть одним из типов: последовательность. набор или выбор, и называться в целях этого раздела идентифицированным Туре".

Примечание — "Typeldentification" в "IdentifiersInContexT не может использоваться для типов поспедо-взтельносгь-из или на бор-из. Такое использование запрещено для ясности, поскольку это было бы не менее многословным, чем прямое использование Typeldentification" в Targets".

13.2.4.4    Каждый "identifier* в IdentifierList" должен быть идентификатором компонента, идентифицированного Туре". Команда кодирования XER назначена типу всех компонентов идентифицированного Туре", которые имеют идентификатор компонента в "IdentifierLisf.

24

ГОСТ Р ИСО/МЭК 8825*4 — 2009

13.2.4.5    Использование ALL для "Identifiertist" определяет, что все дословно существующие компо* ненты (и все дословно существующие компоненты тех компонентов до любой глубины) в идентифицированном Туре" — цели, которым назначается команда кодирования XER.

13.2.4.6    Использование COMPONENTS для "IdentifierLisT определяет, что все компоненты (на первом уровне) идентифицированного Туре"—цели, которым назначается команда кодирования XER.

13.2.5 Использование идентификации импортированных типов.

13.2.5.1    Продукционное правило "ImportedTypesldentification”:

ImportedTypesldentification::^

ALL IMPORTS FROM modulereference

13.2.5.2    "Modulereference" должна быть одной из ссылок "modulereference". используемых в одной из "GlobalModuleReferences" раздела по импорту модуля.

13.2.5.3    Команда кодирования XER назначена каждой из "typereference" в соответствующем "SymbolList" после того, как окончательные команды кодирования, продуцированные назначением в модуле экспорта, были назначены.

13.2.5.4    Если импортированная "typereference’ экспортируется из этого модуля, окончательные команды кодирования, унаследованные этой "typereference” в модуле, который импортирует ее.—унаследованные в этом модуле импортирования, и не затронуты назначением команд кодирования, с использованием "ImportedTypesldentification". Это назначение затрагивает только использование ссылки на тип в пределах этого модуля.

14 Множественное назначение команд кодирования XER

14.1    Порядок, в котором рассматривается множественное назначение

14.1.1    "Туре", который не является ссылкой на тип ("typereference"). имеет первоначально пустой набор ассоциированных команд кодирования.

14.1.2    Туре", который является ссылкой на тип ("typereference") (который может быть импортирован) имеет первоначально набор окончательных команд кодирования Туре”, назначенный этому набору, когда он был определен (возможно, измененный командами кодирования, назначенными ему в списке импорта модуля импортирования — см. 13.2.5).

14.1.3    Целевые команды кодирования для ’Туре’ (при использовании раздела управления кодированием) назначаются следующими в порядке, в котором целевые команды кодирования появляются в разделе управления кодированием. Если Туре" идентифицирован более чем одним элементом "TargetList" (см. 13.2). то должна быть обработка как многократных назначений той же самой команды кодирования к тому Туре" в порядке, в котором элементы встречаются в TargetList".

Примечание — Эффек 14.1.2 и 14.1.3 измочее), чш ценееие назначение imiy Туре" в TypeAssignment" всегда отменяется целевым назначением типу Туре", определенному с использованием соответствующей ссылки "typereference". независимо от того, какое целевое назначение появится первым в разделе управления кодированием. Однако, если целевое назначение сделано всем компонентам типа, и также некоторому индивидуальному компоненту этого типа, то эффект будет зависеть от порядка команд кодирования в разделе управления кодированием.

14.1.4    Снабженные префиксами команды кодирования (использующие префикс типа), назначенные типу, рассматриваются следующим образом: крайняя правая (самая внутренняя) команда кодирования, снабженная префиксом рассматривается первой, а крайняя левая (наиболее удаленная) команда кодирования. снабженная префиксом, рассматривается последней.

14.1.5    Как определено в 13.2.1.10. команды кодирования назначаются фиктивному параметру только после того, как окончательные команды кодирования для фактического параметра были определены.

14.1.6    Как определено в 13.2.1.11 и 132.1.12, Тил выбора" ("SelectionType") и компоненты, продуцированные преобразованием COMPONENTS OF. наследуют сначала окончательные команды кодирования оригинального типа, и затем применяют команды кодирования, предназначенные для них.

14.1.7    Каждое назначение команды кодирования продуцирует новый набор связанных команд кодирования, как определено в 14.2 — 14.4.

14.2 Эффект назначения команды кодирования отрицания

14.2.1 Все назначения команды кодирования отрицания приводят к удалению (из набора связанных команд кодирования) любой команды кодирования той же самой категории. Если нет никаких связанных команд кодирования другой категории, набор становится пустым.

25

ГОСТ Р ИСО/МЭК 8825-4 — 2009

14.2.2    Команда кодирование NOT GLOBAL-DEFAULTS никогда не должна назначаться.

14.2.3    Для команд кодирования с множественными категориями (см. 14.3). команда кодирования отрицания удаляет все команды кодирования в любой из категорий.

Примечание — Команда кодирования отрицания никогда не становится частью набора связанных команд кодирования.

14.3    Множественное назначение команд кодирования с множественными категориями

14.3.1    Команды кодирование NAME и TEXT (см. разделы 27 и 30) могут быть назначены типу с цепью:

а)    изменить ассоциированное имя тега (нет никакой уточняющей информации "Qualifytnglnformation");

Примечание — Это применяется только к команде кодирования NAME.

б)    изменить результат кодирования "Extend&dXMLValbe". обеспечивая новое название для специфицированного идентификатора “identfier”. присутствующего в определении типа (присутствует уточняющая информация "Qualtfyinglnformatiort', которая не является ALL);

в)    изменить результат кодирования ■ExtervjedXMLVatoe’, обеспечив модификацию, которая будет применена ко всем идентификаторам “identifiers*, присутствующим в определении типов (присутствует уточняющая информация "Quatifyinglnfomation*. которая является ALL, с цепью, которая не является типом ограниченной строки символов).

14.3.2    В случае 14.3.1 (б) команда кодирования для специфицированного идентификатора “identifier* обрабатывается как категория. о*личная от команды кодирования для любого другого идентификатора ’’identifier*, и от команды кодирования для 14.3.1 (а).

14.3.3    В случае 14.3.1 (в) команда кодирования попадает в набор команд кодирования типа 14.3.1 (б) с одной командой кодирования для каждого идентификатора “identifier, присутствующего в определении типов.

14.3.4    Команда кодирования Pt-OR-COMMENT (см. раздел 29) имеет четыре категории, соответствующие четырем альтернативам для "Position*.

14.3.5    В соответствии с 14.3.3 и 14.3.4. подраздел 14.4 определяет правила для множественного назначения команд кодирования XER.

14.3.6    Каждая из альтернатив команды кодирования GLOBAL-DEFAULTS—отдельная категория, но каждая категория этой команды кодирования должна быть назначена не больше одного раза.

14.4 Множественное назначение команд кодирования XER той же категории

Примечание — Предполагается, что множественное назначение команд кодирования XER той же категории будет редким, за исключением тех случаев, когда команда кодирования XML назначается глобально, и команда кодирования замены (возможно, отрицания) назначена определенным типам или компонентам. Ятпт пплряздял ппрядопврт праяига рпя гпумеп. когда мылжялтавнноо назначение команд кодирования XFR происходит е гой же самой категории. На этот раздел также ссылается пункт 14.3.5 для обработки множественных назначений команд кодирования NAME. PI-OR-COMMENT и TEXT.

14.4.1    Назначение положительных команд кодирования приводит к добавлению (к набору связанных команд кодирования) этой команды кодирования XER. если нет никаких других связанных команд кодирования той же категории.

14.4.2    Назначение команды кодирования ELEMENT всегда эквивалентно назначенюо NOT UNTAGGED команды кодирования.

14.4.3    Если есть команда кодирования той же самой категории е наборе связанных команд кодирования. то эта команда кодирования удаляется из набора, а назначенная команда кодирования XER добавляется.

Примечание — Если команды кодирования назначаются глобатъно в раздел управления кодированием с намерением отменить их в определенных случаях, то отмена должна быть сделана с использованием или префикса типа или более поздней команды кодирования в разделе управления кодированием, но не более ранней.

14.4.4 Если тип. который появляется либов"ОграниченииКонтента" (’ContentsConstraif). либо в "ОграниченииТипа” (“TypeConstrant*) должен быть закодирован по правилам EXTENDED-XER. то окончательные команды кодирования (кгк определено правилами выше) используются при определении кодирования этого типа. Если тип появляется в любом другом ограничении АСН.1. то все связанные команды кодирования не обрабатываются

26

ГОСТ Р ИСО/МЭК 8825-4 — 2009

14.5 Разрешенные комбинации окончательных команд кодирования

14.5.1 Таблица 2 определяет разрешенные комбинации окончательных команд кодирования для ’Тила" (Туре"), когда использовалась GLOBAL-DEFAULTSof MODIFIED-ENCODINGS. В графе 1 перечислены все команды кодирования, в графе 2 перечислены все команды кодирования, которые могут использоваться в комбинации с командой кодирования графы 1 как окончательной командой кодирования. Но во многих случаях применяются ограничения, которые перечислены в соответствующих разделах.

Примечание — GLOBAL-DEFAULTS не приводится в таблице, поскольку она не назначается типу. Таблица 2 — Разрешенные комбинации окончательных команд кодирования с MODIFIED-ENCODINGS

Команда кодирования

Другие разрешенные команды кодирования

ANY-ATTRIBUTES (сам. раздел 17)

ELEMENT. NAME. NAMESPACE

ANY-ELEMENT (см. раздел 18)

ELEMENT. NAME. NAMESPACE

ATTRIBUTE (см. раздел 19)

BASE64, DECIMAL ELEMENT. LIST. NAME. NAMESPACE. TEXT. USE-NUMBER. USE-QNAME. USE-UNION, WHITESPACE

BASE64 (см. раздел 20)

ATTRIBUTE. DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

DECIMAL (см. раздел 21)

ATTRIBUTE. DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

DEFAULT-FOR-EMPTY (сам. раздал 22)

BASE64. DECIMAL ELEMENT. EMBED-VALUES. LIST. NAME.

NAMESPACE. PI-OR-COMMENT. TEXT. USE-NIL USE-NUMBER. USE-ORDER. USE-QNAME. USE-UNION. WHITESPACE

ELEMENT (см. раздел 23)

Эквивалентный NOT UNTAGGED

EMBED-VALUES (см. раздел 24)

DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT.

USE-NIL USE-ORDER

LIST (см. раздел 26)

ATTRIBUTE, DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

NAME (см. раздел 27)

Никаких ограничений

NAMESPACE (см. раздел 28)

Никаких ограничений

PI-OR-COMMENT (см. раздел 29)

BASE64. DECIMAL DEFAULT-FOR-EMPTY. ELEMENT. EMBEDVALUES.

LIST. NAME. NAMESPACE. TEXT. USE-NIL USE-NUMBER. USE-ORDER. USE-QNAME. USE-TYPE. USE-UNION, WHITESPACE

TEXT (см. раздел 30)

ATTRIBUTE. DEFAULT-FOR-EMPTY, ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

UNTAGGED (см. раздел 31)

BASE64, DECIMAL. LIST, NAME. NAMESPACE. TEXT. USENUM8ER.

USE-QNAME. USE-UNION, WHITESPACE

USE-NIL (см. раздел 32)

DEFAULT-FOR-EMPTY. ELEMENT. EMBED-VALUES. NAME.

NAMESPACE. PI-OR-COMMENT. USE-ORDER

USE-NUMBER (см. раздел 33)

ATTRIBUTE, DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE, PI-OR-COMMENT. UNTAGGED

USE-ORDER (см. раздел 34)

DEFAULT-FOR-EMPTY. ELEMENT. EMBED-VALUES. NAME.

NAMESPACE. PI-OR-COMMENT. USE-NIL

27

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Окончание таблицы 2

Команда кодирования

Другие разрешенные команды кодирования

USE-QNAME Гем. раздел 35)

ATTRIBUTE, DEFAULT-FOR-EMPTY, ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT, UNTAGGED

USE-TYPE (см. раздел 36)

ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT

USE-UNION (си. раздел 37)

ATTRIBUTE, DEFAULT-FOR-EMPTY. ELEMENT, NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

WHITESPACE (си. раздел 38)

ATTRIBUTE, DEFAULT-FOR-EMPTY. ELEMENT. NAME. NAMESPACE. PI-OR-COMMENT. UNTAGGED

14.5.2 Таблица 3 определяет разрешенные комбинации окончательных команд кодирования, когда команда GLOBAL-DEFAULTS MOOIFIED-ENCODINGS не использовалась. В графе 1 перечислены все команды кодирования, которые разрешаются как окончательные команды кодирования, если команда GLOBAL-DEFAULTS MODIFIED-ENCODINGS не использовалась. В графе 2 приведены "Не разрешено" или перечислены все команды кодирования, которые могут использоваться в комбинации с командой кодирования графы 1. как окончательной командой кодирования, но во многих случаях применяются ограничения. которые перечислены в соотЕвтствующих разделах. "Не разрешено" означает, что команда кодирования не может использоваться как окончательная команда кодирования, если команда GLOBAL-DEFAULTS MODIFIED-ENCODINGS не использовалась.

Примечание — GLOBAL-DEFAULTS не приведена в таблице, поскольку она не назначается ‘Типу* (Туре").

Таблица 3 — Разрешенные комбинации окончательных хоманд кодирования без MODIFIED-ENCODINGS

Команда кодирования

Другие разрешенные команды кодирования

ANY-ATTRIBUTES

Не разрешено

ANY-ELEMENT

Не разрешено

ATTRIBUTE

BASE64. LIST, NAME. TEXT. USE-NUMBER. WHITESPACE

BASE64

ATTRIBUTE. NAME. PI-OR-COMMENT

DECMAL

Ho paopoiuotio

DEFAULT-FOR-EMPTY

He разрешено

ELEMENT

He разрешено

EMBED-VALUES

He разрешено

LIST

ATTRIBUTE. NAME. PI-OR-COMMENT

NAME

ATTRIBUTE. BASE64. LIST. PI-OR-COMMENT. TEXT, USENUM8ER.

WHITESPACE

NAMESPACE

He разрешено

PI-OR-COMMENT

BASE64. UST, NAME. TEXT. USE-NUMBER. WHITESPACE

TEXT

ATTRIBUTE. NAME. PI-OR-COMMENT

UNEAGGED

He разрешено

USE-NIL

He разрешено

USE-NUMBER

ATTRIBUTE. NAME. PI-OR-COMMENT

USE-ORDER

He разрешено

USE-QNAME

He разрешено

28

ГОСТ Р ИСО/МЭК 8825*4 — 2009

Окончание таблицы 3

Команда кодирования

Другие разрешенные команды кодирования

USE-TYPE

Не разрешено

USE-UNION

Не разрешено

WHITESPACE

ATTRIBUTE. NAME. PI-OR-COMMENT

15 Поддержка команд кодирования XER для пространства имен

и уточненных имен XML

15.1    Рекомендация W3C XML Namespaces определяет понятия и правила, управляющие необходимыми классификаторами и механюмами, чтобы гарантировать, что имя элемента XML или атрибута могут быть правильно идентифицированы с соответствующей спецификацией связанной семантики.

15.2    W3C XML Namespaces определяет пространства имен XML как набор однозначных имен, идентифицированных URI. которые используются в документах XML в качестве типов элементов и имен атрибутов. URI. которое идентифицирует пространство имен, называется именем пространства имен. В настоящем стандарте пространство имен также используется, чтобы классифицировать значения типа, который имеет окончательную команду кодирования USE-QNAME (см. 35) и который представляет XML QName (см. W3C XML Схема. Часть 2.3.218).

15.3    Имена ссылок на тип и идентификаторы могут (но не обязательно) быть назначенными пространству имен.

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

15.4    Принадлежность типа чгсти постранства имен (и если так. его имени постранства имен) определяется присутствием (или отсутствием) окончательной команды кодирования NAMESPACE.

Примечание — Команда кодирования NAMESPACE может присутствовать, только если команда кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS также присутствует в разделе управления кодированием (см. 28.2.1).

15.5    Пространство имен идентифицировано продукционным правилом "NamespaceSpecrftcation', которое обеспечивает Унифицированный Идентификатор Ресурса для пространства имен, и опционально рекомендованный префикс пространства имен. "NamespaceSpectfication" определена е разделе 28.

15.6    Имонэ элементов и атрибутов XML при EXTENDED XER кодировании гыюрируютсл из несколь ких источников. В 15.8 перечислены источники имен элементов и атрибутов XML. идентифицировано пространство имен, частью которого очи являются, и определено, должны ли они быть именами в уточненном пространстве имен или нет.

15.7    Имя элемента XML. имя атрибута XML или значение атрибута идентификации типа могут (но не обязательно) иметь окончательную <оманду кодирования NAMESPACE, которая, применяется к Типу" (Туре") и генерирует имя. Если происходит это генерирование, имя должно быть именем в уточненном пространстве имен при кодировании (уточненное пространство имен при кодировании может быть создано или явно с использованием определенного префикса пространства имен XML. или неявно путем установления пространства имен XML для диапазона действий, который включает использование имени или значения). Если нет команды кодирования NAMESPACE, примененной к Типу" ("Туре"), которая генерирует имя. тогда имя не является именем уточненного пространства имен. Имена, которые не являются именами уточненного пространства имен, называются неуточненными именами, и не должны встречаться в пределах установленного значения по умолчанию пространства имен XML.

Примечание — Баэовье правила BAS1C-XER не поддерживают пространство имен XML. и имена уточненного пространства имен никогда не встречаются при кодировании.

15.8    В следующих подразделах термин "Пространство имен АСН.1’ относится к пространству имен, чье имя и рекомендованный префикс определены в 15.9. Термин "назначенное пространство имен" относится к пространству имен, назначенному командой кодирования NAMESPACE типу. Если сгенерированные имена не иэ пространства имен АСН.1 и нет такого назначения пространства имен, то имена элементов XML. атрибутов XML и значения атрибутов идентификации типа являются неуточненными именами.

29

ГОСТ Р ИСО/МЭК 8825-4 — 2009

15.8.1    Во всех подпунктах подраздела 15.8 имена элементов и атрибутов в тегах XML (будут ли теги тегами пустого элемента или начальными тегами) являются именами уточненного пространства имен при кодировании, если и только если порождающий Тил" ("Туре') имеет окончательную команду кодирования NAMESPACE.

15.8.2    Названия элементов э тегах пустого элемента XML. используемых для управляющих символов (см. ИСО/МЭК 8824-1.11.15.5). не имеют пространства имен, пока одно не будет назначено применением команды кодирования NAMESPACE к типу "ограниченная строка символов'с уточняющей информацией ALL.

15.8.3    Имена элементов в тагах пустого элемента XML. используемых для значений типов целый, перечислимый, строка битов и специальных значений действительных типов (см. ИСО/МЭК 8824-1.18.9.

19.8.20.6 и 21.9), будут всегда неуточненными именами (см. 15.7) при кодировании этих типов.

15.9    Пространство имен атрибута идентификации типа (см. раздел 36) и атрибута идентификации пустого множества (см. раздел 32) —это управляющее пространство имен, которое, по умолчанию, является постранством имен АСН.1. если только другое управляющее пространство имен не определено командой кодирования GLOBAL-DEFAULTS <см. раздел 25). Пространство имен АСН.1 имеет имя ”urn:old:2.1.5.2.0.1" (см. 39.3). и рекомендованный префикс пространства имен "авп.1" (см. также 25.3.2.).

15.10    Для типа строка октетсе с ограничением содержания, которое определяет EXTENDED-XER кодирование. любое абстрактное значение типа строка октетов должно быть полным EXTENDED-XER кодированием значения типа АСН.1 (см. ИСО/МЭК 8824-3,11.5 и 11.6) и будет содержать все необходимые декларации пространства имен для воех уточненных имен с префиксом и без префикса, присутствующих в абстрактном значении строки октегов.

Примечание — Такой туп (строка октетов) закодирован как “xmlhstring* или "Base640ctetstringValue". Любые объявления пространства умен, представленные в документе XML, который содержит "xmlhstring". или "Base640ctetstringValue" не включают в их область применения имена, представленные в строке октегов.

15.11    Когда открытый тип закодирован как 'xmlhstring' или "Base64XMLOpenTypeFieldVar и правила кодирования, используемые для содержавшегося типа, являются EXTENDED-XER. "xmlhstring" или "Base64XMLOpenTypeFteW\fer долхты иметь шестнадцатеричное или base64 представление (соответственно) строки октетое. которая является полным EXTENDED-XER кодированием значения содержавшегося типа, и должна содержать все необходимые декларации постранства имен для всех имен с префиксом или без префикса, представленных в ней.

Примечание — Любые декларации пространства имен, представленные в документе XML. который содержит ' 'xmlhstring" или "Base64XMLOpenTypeFieWVal" не включают в их область применения имена, представленные в строке октетов.

16 Спецификации кодирования EXTENDED-XER

Спецификация кодирования EXTENDED-XER использует продукционные правила, определенные в следующих подразделах. Эти правила позволяют применять весь синтаксис соотеетствукнцих продукционных правил, используемых BAS C-XER (того же самого названия, нос удаленным "Extended"), но обеспечивают дополнительный синтакос. который допускается в кодировании EXTENDED-XER. Использование этого дополнительного синтаксиса определено применением команд кодирования XER (см. 17 — 38).

Примечание — Альтернативные доступные продукционные правила часто ограничиваются использованием или не использованием команды кодирования GLOBAL-DEFAULTS с ключевым словом MOOIFIED-ENCOOINGS (см. 9.2.7 и 3.2.8). В частности, таким ограничением управляется использование пустого элемента или текстового кодирования для некоторых встроенных типов.

16.1    Элемент XML документа

16.1.1    Элемент XML документа должен быть "ExtendedXMLTyped Value”.

16.1.2    "ExtendedXMLTypedVchie’ — это:

Extend©dXMLTypedValue::=

”<" & TypeNameOrModifiedTypeName AttributeList"»"

ExtendedXMLValue

"<f & TypeNameOrModifiedTypeName | "<" & TypeNameOrModifiedTypeName "/>’

Примечание — Отличие от продукционного правила "XMLTypedVatue* — включение возможно пустого "AttnbuteLisr и использование "ExtendedXMLValue" вместо “XMLValue* для содержания элемента XML.

30

ГОСТ Р ИСО/МЭК 8825-4 — 2009

16.1.3    "TypeNameOfModifiedTypeName" определено е 16.2.

16.1.4    "AttributeList" определен е 16.3.

16.1.5    "ExtendedXMLValue" определено в 16.4 и должно быть типа "ExtendedXMLValue", идентифицированного 'TypeNameOrModrfiedTypeName'’.

16.1.6    вторая альтернатива "XMLTypedValue" (использование тега пустого элемента XML) может использоваться. только если продукционное правило "ExtendedXMLValue" является пустым.

Примечание — Если бы продукционное правило "ExtendedXMLValue* было "xmlcsUing". содержащим только "пробел", оно не было бы пустым, и вторая альтернатива не мота бы использоваться.

16.2 Продукционное правило "TypeNameOrModifledTypeName"

16.2.1    "TypeNameOrModifiedT/peName"—это:

TypeNameOrModffiedTypeName::=

NonParameterizedTypeName | Qua!(5edOrUnqualified4ame

16.2.2    Непараметри зо ванное имя типа ’NonParameterizedTypeName" определено в ИСО/МЭК 8824-1. 13.2. и используется (как определено в том подразделе и в ИСО/МЭК 8824-1.13.4-13.7) как имя элемента XML. которое идентифицирует тип АСН.1.

16.2.3Уточненное или неутоленное имя "QuatifiedOrUnqualifiedName"определено в28.3.2. Альтернатива "QualiftedOrllnqualiftedNarae" должна использоваться, если и только если есть окончательная команда кодирования NAME или NAMESPACE, примененная к типу (см. 27). иначе должно использоваться непараметри зо ванное имя типа "NonParameterizedTypeName".

16.3 Продукционное правило "AttributeList"

16.3.1    "Attribute List" — это:

AttributeList::*

Attribute AttributeList

| empty

16.3.2    "Attribute" определен в 19.3.3.

16.3.3    "AttributeList" будет пуст, если применение окончательных команд кодирования не требует его использования (см. разделы 19.32 и 36).

16.3.4    Атрибутам ("Attribute"; в "AttributeList" будет предшествовать "пробел" (см. 7.1.4).

16.4    Продукционное правило "ExtendedXMLValue"

16.4.1 "ExtendedXMLValue":

ExtendedXMLValue;.=

ExtendedXMLBuiltinVaUe | ExtendedXMLObjectQassFiekJValue | empty

ExtendedXMLBuittinVaJue::*

XMLBrtStringValue | XMLBooleanValue | ExtendedXMLCharacterStringValue j ExtendedXMLChoiceValue | XMLEmbeddedPDWslue | ExtendedXMLEnumeratedValue | XMLExtemalValue | XMLtnstanceOfValue | ExtendedXMLIntegerttelue | XMLNullVaiue | XMLObjectldentifierVaue | ExtendedXMLOctetStiing Value j ExtendedXMLRealValue | XMLRelativeOIDVaiue | ExtendedXMLSequenceValue j ExtendedXMLSequenceOfValue j ExtendedXMLSetValue | Extended XMLSetOfVsrfue j ExtendedXMLPrefixedValue

31

ГОСТ Р ИСО/МЭК 8825-4 — 2009

ExtendedXMLCharacterStringValue::=

ExtendedXMLRestrictedCharacterString Value | XMLUnrestrictedCharacterStringValue ExtendedXMLRestrictedCha'acterStringValue::=

XMLRestrictedCharacterStringValue | Base64XMLRestrictedCharacterStringValue ExtendedXMLObjectClassFieWValue::=

ExtendedXMLOpenTypeFieWVal | XMLFixedTypefiekfVal ExtendedXMLOpenTypeFieWVal::*

ExtendedXMLTypedVabe | Base64XMLOpenTyp«FieldVal I xmthstnng

ExtendedXMLOctetStringVabe::*

ExtendedXMLTypedVabe | Base64XMLOctetStringVatue j xmthstring

ExtendedXMLRea!Value::=

XMLReal\felue | ModifiedXMLReafValue ExtendedXMUntegerValue::=

XMLIntegerValue | ModifiedXMLIntegerValue ExtendedXMLPrefixedValue::*

ExtendedXMLValue

16.4.2    Альтернативы "ExtencedXMLBuiltinValue". чьи имена продукционных правил не начинаются с "Extended*, их использование для кодирования абстрактных значений полностью определены в ИСО/МЭК 8824-1 (см. 15.10 и 15.2 настоящего стандарта) и (для "XMLFixedTypeFietdVal" и третьей альтернативы для "ExtendedXMLOpenType-ietdVar) в ИСО/МЭК 8824-2. 14.6.

16.4.3    "Base64XMLRestnctedCharacterStringVahie" определено в 20.3.5 и должно использоваться только так. как определено в этом подразделе.

16.4.4    "ExtendedXMLChoiceVaJue” определено в 16.5 и должно использоваться только так. как определено в этом подразделе.

16.4.5    "ExtendedXMLEnume'atedValue" определено в 33.3 и должно использоваться только так. как определено в этом подразделе.

16.4.6    “ExtervdedXMLSoqusnceValue" и "ExtondedXMLSetValue’ определены е 16.6 и должны использоваться только так. как определено в этом подразделе.

16.4.7    "ExtendedXMLSequerceOfValue" и "ExtendedXMLSetOfValue" определены в 16.7 и должны использоваться только так, как определено в этом подразделе.

16.4.8    "Base64XMLOctetStringValue" и "Base64XMLOpenTypeFieWVar определены в 20.3.2 и 20.3.4 и должны использоваться только тгк. как определено в этих подразделах.

16.4.9    "ModifiedXMLIntegerValue" определено в 16.8 и должно использоваться только так. как определено в этом подразделе.

16.4.10    "ModifiedXMLReal Value” определено в 16.9 и должно использоваться только так. как определено в этом подразделе.

16.4.11    "Пустая” альтернатива для "ExtendedXMLValue" должна использоваться только так. как определено в разделе 22.

Примечание — Другие альтернативы для "ExtendedXMLValue" могут также продуцировать "пустой" лексический элемент. Этот пункт не затрагивает использование таких появлений.

16.5 Продукционное правило "ExtendedXMLCholceValue"

16.5.1 "ExtendedXMLChotceVatue":

ExtendedXMLChoiceValue::*

"<*■ & TagName Attri bu:eList ">"

ExtendedXMLValue ”<T& TagName ”>“

| ExtendedXMLValue

32

ГОСТ Р ИСО/МЭК 8825-4 — 2009

TagName::=

WentifierOrModifiedldentifier WentifierO (Modified Ider tifier:= identifier

| QualifiedOrUnqualifiedName

16.5.2    "QualifiedOrUnqualifiedName" определено e 28.3.2. "QualifiedOrUnqualifiedName" должно использоваться. если имеется окончательная команда кодирования NAME (см. раздел 27). или окончательная команда кодирования NAMESPACE примененная к типу (см. раздел 28). иначе должен использоваться ’идентификатор".

Примечание — Если "идентификатор"используется, то кодирование не может включать декларацию пространства имен XML по умолчанию с областью применения, которая включает использование этого идентификатора (см. 15.7).

16.5.3    "AttributeLisf и его использование определены в 16.3 и в разделах, на которые 16.3 ссылается.

16.5.4    "ExtendedXMLVaiue" в обеих альтернативах для "ExtendedXMLChoiceValue” должно быть "ExtendedXMLValue" выбранной альтернативы типа выбора.

16.5.5    Вторая альтернатива "ExtendedXMLChoiceValue" должна использоваться если:

а)    выбранная альтернатива для типа выбора имеет окончательную команду кодирования UNTAGGED (см. раздел 31);

б)    тип выбора имеет окончательную команду кодирования USE-TYPE или USE-UNION (см. разделы 36 и 37).

Примечание — Это означает, что присутствие этих окончательных команд кодирования приводит к удалению тегов XML как определителей выбора, и определение выбора должно произойти другими средствами (см. разделы 36. 37).

16.6 Продукционные правила "ExtendedXMLSequenceValue” и "ExtendedXMLSetValue"

16.6.1    ’ExtendedXMLSequenceValue" и "ExtendedXMLSetValue"—это:

ExtendedXMLSequenceValue::*

ExtendedXMLComponentValueList | empty

ExtendedXMLSetValue::*

ExtendedXMLComponentValueList | empty

ExtendedXMLComponentValueList :*

ExtendedXMLNamedVcIue

i ExtendedXMLComoorentValueList ExtendedXMLNamedValue ExtendedXMLNamedVa!ue::=

"<* & TagName AttributeList ">"

ExtendedXMLValue "<Г&TagName ">“

| ExtendedXMLValue

16.6.2    "Пустые* альтернативы "ExtendedXMLSequenceValue" и "ExtendedXMLSetValue" должны использоваться, если никакой компонент типа последовательности или набора (до любой глубины) после разрешения всех ссылок на тип и после применения всех окончательных команд кодирования, не продуцирует "ExtendedXMLNamadValue".

Примечание — Это включает (но не ограничивает) случаи, в которых все компоненты помечены: OEFAULT или OPTIONAL, и все значения опущены, имеет окончательную команду кодирования UNTAGGED. и их значения имеют пустое кодирование: имеет окончательную команду кодирования ATTRIBUTE. Эго также включает комбинации вышеупомянутого, и случая, а котором нотацией типа является SEQUENCE {} игм SET {).

16.6.3    'TagName" определено е 16.5.1. "QualifiedOrUnqualifiedName" е форме "IdentifierOrModifiedldentifier" TagName* должно использоваться, если и только если есть окончательная команда кодирования NAME или NAMESPACE, примененная к типу (см. раздел 28). иначе должен использоваться "идентификатор".

16.6.4    "AttributeLisf и его использование определены в 16.3 и пунктах, на которые он ссылается.

16.6.5    "ExtendedXMLValue" в обеих альтернативах для "ExtendedXMLNamedValue" должно быть “ExtendedXMLValue" компонента типа последовательности или набора.

33

ГОСТ Р ИСО/МЭК 88254 — 2009

16.6.6 Вторая альтернатива для "ExtendedXMLSequenceValue" и "ExtendedXMLSetValue" должна использоваться. если и только если альтернатива имеет окончательную команду кодирования UNTAGGED (см. раздел 31).

16.7 Продукционные правила "ExtendedXMLSequenceOfValue" и "ExtendedXMLSetOfValue"

16.7.1    "ExtendedXMLSequenceOfValue" и "ExtendedXMLSetOfValue*:

ExtendedXMLSequenceOfValue:?

ExtendedXMLValueLisi I ExtendedXMLDelimitedltemList j empty

| Extended XMLListVake ExtendedXMLSetOfValue:?

ExtendedXMLValueUsi | ExtendedXMLDelimitedltemList j empty

j ExtendedXMLListValue Exten dedXM LValueList::=

ExtendedXMLValueOrEmpty | ExtendedXMLValueO'Empty ExtendedXMLValueList ExtendedXMLValueOrEmpty:?

ExtendedXMLVahie

| "<" & TypeNameOrMcdifiedTypeName '/>*

ExtendedXMLOelimitedltemlist:?

ExtendedXMLOelimitedltem

| ExtendedXMLOelimitedltem ExtendedXMLDelimitedltemList ExtendedXMLDetimitedltem:?

"<" & TypeNameOrModifiedTypeName AttributeList ">"

ExtendedXMLValue

"</" & TypeNameOrModifiedTypeName *>"

|"<" & identifierOrModifiedldentifier AttributeList ">"

ExtendedXMLVahie

"<Г & IdentifierOrModif edldentifier ">"

| ExtendedXMLValue

16.7.2    Использование альтернатив "ExtendedXMLSequenceOfValue". "ExtendedXMLSetOfValue" и "ExtendedXMLValueList" должно быть в соответствии с использованием альтернатив "XMLSequenceOfValue", "XMLSetOfValue"H"XMLValueLisr(oooTBeTCTeeKHO}. какопределвно в ИСО/МЭК 8824-1, 25 и 27. исключение соыишшы случай, кыда команда лидировании GLOBAL-DEFAULTS с ключевым слоном MODIFIED-ENCODINGS присутствует, тогда 'ExtendedXMLVaiueList" не должен использоваться (см. также 9.2.7 ж).

16.7.3    "ExtendedXMLListValue" определено в 26.3.2. Эти альтернативы 'ExtendedXMLSequenceOfValue’ и "ExtendedXMLSetOfValue" должны использоваться, только если есть окончательная команда кодирования LIST (см. раздел 26). примененная к типу последоеательность-из или набор-нэ.

16.7.4    Первая альтернатива ’ExtendedXMLDelimitedttem" должна использоваться, если и только если тип послвдовательность-из или нгбор-из не содержит "идентификатор", и компонент не имеет окончательной команды кодирования UNTAGGED.

16.7.4.1    Если компонент тлпа последоеательность-из или набор-из есть "typereference" или "ExternalTypeReference" (возможно с одним или более "TypePrefix"). то TypeNameOrModffiedTypeName" должен быть "typereference" или "typereference" в "ExternalTypeReference", соответственно, возможно измененный в соответствии с любыми окончательными командами кодирования NAME и NAMESPACE, примененными к компоненту (см. раздел 27).

16.7.4.2    Если компонент типа последоеательность-из или набор-из (после игнорирования любых появлений "TypePrefix") не ’typereference" или "ExternalTypeReference". то 'TypeNameOrModifiedTypeName" должно быть "xmlasnl typename", определенное в ИСО/МЭК 8824-1. таблица 4. соответствующее встроенному типу компонента, возможно измененного в соответствии с любой окончательной командой кодирования NAMESPACE, примененной к компоненту (см. раздел 28).

16.7.5    Вторая альтернатива ’ExtendedXMLOelimitedltem" должна использоваться, если и только если тип последовательностъ-из или нгбор-из содержит "идентификатор", и компонент не имеет окончательной команды кодирования UNTAGGED. ”IdentifterOrKlodifi^dfdentifieг” должен быть тем "идентификатором".

34

ГОСТ Р ИСО/МЭК 8825-4 — 2009

возможно измененным в соответствии с любыми окончательными командами кодирования NAME и NAMESPACE, примененными к компоненту (см. разделы 27 и 28).

16.7.6    Третья альтернатива "ExtendedXMLDelimitedltenT должна использоваться, если и только если компонент типа последовательность-из или набор-из имеет окончательную команду кодирования UNTAGGED (см. раздел 31).

16.7.7    "ExtendedXMLValue'' во всех альтернативах для "ExtendedXMLDelimitedltem" должен быть "ExtendedXMLValue" повторного компонента типа лоспедоватепьность-иэ или кабор-из.

16.7.8    ’TypeNameOrModifiedTypeName' в "ExtendedXMLValueOrEmpty" должен быть "xmlasn 1 typename’. определенным в ИСО/МЭК 8824-1. таблица 4. соответствующий встроенному типу компонента, возможно измененного в соответствии с любой окончательной командой кодирования NAMESPACE, примененной к компоненту (см. раздел 28).

16.8    Продукционное правило "ModifiedXMUntegerValue"

16.8.1    "ModffiedXMUntegerValue*:

Mod ifiedXMLI ntegerValue::=

MocftfiedXMLSignedNurrber | Textlnteger

ModifiedXMLSignedNumber::= modrfiedXMLNumbef | v & modiftedXMLNumber | *4" & modifiedXMLNuirber

16.8.2    Эта альтернатива "ExtendedXMLtntegerValue" (см. 16.4) должна использоваться, только если назначена команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS.

16.8.3    Лексическая единица ’ModifiedXMLNumber" должна состоять из одной или более цифр.

Примечание1 — Лексическая единица "ModifiedXMLNumber" отображена а целочисленное значение, она интерпретируется как десятичная нотация.

Примечание 2—Эта лексическая единица отличается от лексической единицы "число" {см. ИСО/МЭК 8824-1.11.8) только тем. ■-то разрешает любое число начальных (незначащих) нулей.

16.8.4    Любое положительное целое значение может быть закодировано с использованием либо первой, либо третьей альтернативы "ModifiedXMLStgnedNumber'' каколция кодера. Отрицательное целое значение должно быть закодировано с использованием второй альтернативы. Целое нулевое значения может быть закодировано с использованием любой из этих трех альтернатив как опция кодера.

16.8.5    Textlnteger' определено в ИСО/МЭК 8824-1.18.9, и обеспечивает альтернативное кодирование (как опция кодера) для целочислежых значений, которые имеют определение "NamedNumber".

16.9    Продукционное правило "ModifledXMLRealValue"

16.9.1    "ModtfiedXMLReafValue’:

ModifiedXMLReaJValue: .=

Mod ifiedXMLNumericRBa (Value | XMLSpecialRealValue | XMLDecimalMinusZeroRealValue ModifiedXMLNunwicRealValue::* modifiedXMlRealNumtef | *•" & modifiedXMLReaNumber |"+" & modifiedXMLRealNumber

16.9.2    Эта альтернатива "ExtendedXMLRealValue" (см. 16.4) должна использоваться, только если будет назначена команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS.

16.9.3    Лексическая единица ''ModifiedXMLRealNumber'' должна состоять из целой части, которая является рядом одной или более цифр, и опционально десятичной точки (.). Десятичная точка может опционально сопровождаться дробной частью, которая является одной или более цифрами. Целая часть, десятичная точка или дробная часть (какая бы ни была последним представлением) могут опционально сопровождаться "е" или "Е" с показателем степени, состоящим из одной или более цифр и имеющим знак (•+" или— опционально).

Примечание — Эта лексическая единица отличается от лексической единицы "действительное число" ("realnumbeO (см. ИСО/МЭК 8624-1. подраздел 11.9} только потому, что разрешает любое число начагъных нулей в показателе степени.

35

ГОСТ Р ИСО/МЭК 8825-4 — 2009

16.9.4    Любое положительное действительное значение и действительное значение плюс нуль могут быть закодированы с использованием первой или третьей альтернативы "ModifiedXMLNumericRealValue” как опиия кодера. Любое отрицательное действительное значение должно быть закодировано с использованием второй альтернативы ’ModifiedXMLNumericRealValue". Действительное значение минус нуль должно быть закодировано с использованием второй альтернативы.

16.9.5    "XMLDecimalMinusZeroRealVatue" определив в 21.3.2 и должно использоваться только, как определено в том пункте.

Примечание — Команда кодирования DECIMAL, определенная в 21.3.2. обеспечивает это продукционное правило как альтернативное представление для положительного нулевого абстрактного действительного значения, но требует, чтобы отрицательное нулевое абстрактное значение было исключено из типа, к которому оно применено.

17 Команда кодирования ANY-ATRIBUTE

17.1    Общие положения

17.1.1    "AnyAttributesInstmction’:

AnyAttributesInstruction::*

ANY-ATTRIBUTES

TargetList

NamespaceRestrictior ?

NamespaceRestriction::*

FROM URIList | EXCEPT URIList URIList::*

QuotedURIorAbsent | URIList QuotedURIorAbsent QuotedURIorAbsent::*

QuotedURI |ABSENT

17.1.2    Продукционное правило "TargetList" определено в 13.2.

17.1.3"QuotedURI"определвнов 28.1.1.

17.1.4    Данная команда кодирования назначается типу АСН.1, который является типом последова-тельность-из или набор-из с компонентом UTF8String, значение которого обеспечивает нуль, один или более имен атрибута и значений (поодному в каждом UTF8String). каждое из которых подчиняется любому присутствующему ограничению пространства имен "NamespaceRestncOon".

17.1.5    Контент каждой UTF8String закодирован как атрибут "Attribute" включающего XML элемента. Имя компонента последовательность-из или набора-из игнорируется.

17.1.6    Разделы FROM и EXCEPT (если присутствуют) идентифицируют перечни имен пространства имен или специальное ключевое слово ABSENT.

17.1.7    FROM ограничивает имена атрибутов таким образом, что они должны быть именами пространства имен ограниченного применения из одного из специфицированных пространств имен. Если ABSENT присутствует в "URIList". неуточненкые имена также могут использоваться.

17.1.8    EXCEPT позволяет иситючать перечисленные имена пространства имен ограниченного применения из любого пространства имен. Эта команда допускает также неуточненные имена, если только ABSENT не присутствует в "URIList".

17.2    Ограничения

17.2.1    Тип АСН.1 не должен иметь эту окончательную команду кодирования, если она не типа после-довательность-из или набор-иэ с компонентом типа UTF8String.

17.2.2    Тип с этой окончательной командой кодирования должен использоваться только как компонент типа включающей последовательности или набора, и компонент не должен быть маркирован как OPTIONAL или DEFAULT. Должен быть только один такой компонент в включающем типе.

17.2.3    Тип последовательность-из или набор-иэ с этой окончательной командой кодирования обязательно должен иметь ограничение, применяемое к ней. которое задает формат и контент, определенные е 18.2.6—18.2.11 при каждом появлении UTF8String или определенные другим способом.

36

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Примечание — Рекомендуется, чтобы ограничение типов набор-из иш последоввтельносгь-из выражалось как:

(CONSTRAINED BY

{Л Каждая UTF&String должна соответствовать ''AnyAttributeFormat". определенному в ИСО/МЭК 8825-4,

18. 7»

17.2.4    Не должно быть окончательной команды кодирования UNTAGGED. применяемой к типу, который имеет эту окончательную команду кодирования или к включающему типу.

17.2.5    Каждый "URIList" должен содержать не более одного появления ABSENT и не должен содержать двух идентичных "QuotedURI1.

17.2.6    Формат каждой UTFdString должен соответствовать продукционному правилу "AnyAttributeFormat":

AnyAttributeFormat::*

URI?

NCName & *& xmlcstring

17.2.7    Для определения продукционного правила "URI" см. 28.1.4. для определения продукционного правила "NCName" см. 28.1.7. Лексическая единица "xmlcstring" определена в ИСО/МЭК 8824-1.11.15.

17.2.8    Если имеется "NamespaceRestriction" команды кодирования FROM, то "URI" в "AnyAttributeFormat" должен быть "URI* в "QuotedURI" в "URIList” и может отсутствовать, только если ключевое слово a ABSENT встречается в "URIList".

17.2.9    Если имеется "NanespaceRestriction" команды кодирования EXCEPT, то "URI" в "AnyAttnbuteFormat" не должен бьгь "URI" в "QuotedURI” е "URIList" и не может отсутствовать, если ключевое слово ABSENT встречается в’URIList".

17.2.10    "Xmlcstring* должно быть синтаксически правильным значением XML атрибута (определенным в W3C XML. раздел 3), которому предшествует и после которого следует или единственный символ APOSTROPHE (см. раздел 38), или единственный символ QUOTATION MARK (см. раздел 34).

17.2.11    Применение этой команды кодирования и команды кодирования ATTRIBUTE к различным компонентам включающего типа не будет нарушать условий, приведенных в 19.3.11.

17.2.12    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

17.2.13    Тип с этой окончательной командой кодирования не должен иметь ни одной из перечисленных окончательных команд кодирования: LIST. PI-OR-COMMENT или UNTAGGED.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться вместе с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ELEMENT. ATTRIBUTE. BASE64. DECIMAL, DEFAULT-FOR-EMPTY. EMBED-VALUES, TEXT, USE-NIL. USE-NUMBER. USE-ORDER. USE-ONAME. USE-TYPE. USE-UNION. WHITESPACE.

17.2.14    В TargetLisf не должно быть никакой уточняющей информации.

17.3 Действие на результат кодирования

17.3.1    Если тип кодируется как тип верхнего уровня, эта команда кодирования должна игнорироваться.

17.3.2    ’ExtendedXMLNamed'/alue" для этого компонента не должна включаться в "ExtendedXMLSequenceValue"Hnn"ExtendedXMLSetValue" типа включающей последовательности или набора. Вместо этого значение включающего типа должно кодироваться с использованием значения каждой UTF8String как атрибута "Attribjte" (см. 19) включающего элемента, специфицированного ниже.

17.3.3    Кодер должен:

а)    обрабатывать каждый "UP.I", который присутствует в UTF6String. как требующий, чтобы следующий "NCName" (имя атрибута) быт пространством имен ограниченного применения с пространством имен, определенным "URI". и рассматривать отсутствие "URI" в UTF8String как признак того, что следующий "NCName" не должен быть пространством имен ограниченного применения и должен тогда удалить "URI" из UTF8String;

б)    вставить в результат кодирования любые необходимые декларации пространства имен с масштабами охвата, которые включают вставляемые атрибуты для обеспечения того, чтобы необходимые уточнения пространства имен "NCName”. идентифицированные в (а), были достигнуты;

в)    вставить каждый UTF8Strirg (после удаления "URI”) как атрибут в включающем элементе, включая префиксы пространства имен как обязательные перед каждым "NCName” для обеспечения того, чтобы требования, приведенные в (а) были удовлетворены.

37

ГОСТ Р ИСО/МЭК 88254 — 2009

17.3.4    Порядок всех атрибутов в включающем элементе (определяемый присутствием одного или более компонента включающего типа с окончательной командой кодирования ATTRIBUTE или ANY-ATTRIBUTES) есть опция кодера.

17.3.5    Декодер EXTENDED-XER должен генерировать UTF8String в формате ограничений (см.18.2.6) для каждого атрибута в включающем элементе, который не входит в управляющее пространство имен и имя которого не совпадает с именем идентификатора (возможно, модифицированного в соответствии с любой из окончательных команд кодирования NAME или NAMESPACE encoding) другого компонента включающего типа с окончательной командой кодирования ATTRIBUTE.

18 Команда кодирования ANY-ELEMENT

18.1    Общие положения

18.1.1    "AnyElementlnstruction":

AnyElementlnstruction::*

ANY-ELEMENT

TargetList

NamespaceRestrictior ?

18.1.2    Продукционное правило "TargetLtsf определено в 13.2.

18.1.3    "NamespaceRestrictton" определено в 17.1.

18.1.4    Эта команда кодирования дает типу АСН.1 возможность для UTF8String обеспечивать спецификацию единственного XML элемента.

Примечание — Контент и атрибуты XML элемента не ограничиваются. Он может иметь атрибуты или дочерние элементы, и имена этлх дочерних элементов могут быть составными или несосгавными и не быть подверженными влиянию "NamespaceRestriction".

18.1.5    Если присутствует ограничение постранства имен "NamespaceRestriction'. то требуется имя элемента для удовлетворения 'NamespaceRestriction'' (см. 17.1.6—17.1.8), иначе постранство имен не имеет ограничения.

18.1.6    UTF8String с этой окончательной командой кодирования может быть корневого типа кодирования или может быть компонентом типа выбора, последовательности, набора, последовательности-из или набора-иэ. Если это тип высшего уровня, имя ссылки на тип игнорируется. Если это — компонент, имя компонента игнорируется.

18.2 Ограничения

18.2.1    ТипАСН.1 не должен иметь этой окончательной команды кодирования, еслитолькоэто не тип UTF8String. Требуется компонент, чтобы иметь ограничение, примененное к нему, что подразумевает фор-мят и контент. лпрйДйПАмын1й я 1Я ? 4—1Я ? 9 ссылкой на раздел 1Я или другие

Примечание — Рекомендуется ограничение UTF8String выражать как:

(CONSTRAINED BY

(Г Должна соответствовать "AnyElementFormat* определенному 8 ИСО/МЭК 88254. раздел 19. 7})

18.2.2    Не должно быть окончательной команды кодирования UNTAGGED. применяемой к типу.

18.2.3    Каждый "URILisf должен содержать не более одного появления ABSENT и не содержать двух идентичных "QuotedURI".

18.2.4    Формат абстрактных значений UTF8String должен соответствовать продукционному правилу "AnyElementFormaf:

AnyElementFormat::=

xmlcstring

18.2.5    ’Xmlcstring” должна быть синтаксически правильным XML элементом, определенным в W3C XML1.0 и W3C XML Namespaces.

18.2.6    "Xmlcstring" должна использовать только префиксы пространства имен, которые объявлены в декларациях пространства имен присутствующих е "xmlcstring*. Если существуют составные имена, не снабженные префиксами, должна присутствовать соответствующая декларация пространства имен по умолчанию.

16.2.7    Значение UTF8StringH6 должно нарушать условия пункта 9.2.11.

18.2.8    Если FROM имеет "NamespaceRestriction". то (самое удаленное) имя элемента в "AnyElementFormat’должно быть URI" в "QuotedURr в "URILisf. и может отсутствовать, только если ключевое слово ABSENT появляется е "URILisf.

38

ГОСТ Р ИСО/МЭК 8825-4 — 2009

18.2.9    Если EXCEPT имеет "NamespaceRestriction". то (самое удаленное) имя элемента в "AnyElementFormar не должно бы’ъ "URI" a "QuotedURI” a "URIList". и не должно отсутствовать, если ключевое слово ABSENT появляется в "URILisr.

18.2.10    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

18.2.11    Тип с этой окончательной командой кодирования не должен также иметь никакой из перечисленных окончательных команд кодирования: ATTRIBUTE. BASE64. DEFAULT-FOR-EMPTY, PI-OR-COMMENT. UNTAGGED или WHITESPACE.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться вместе с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTR1BUTES, DECIMAL, EMBED-VALUES, LIST. TEXT. USE-NIL. USE-NUMBER. USEORDER. USE-QNAME. USE-TYPE. USE-UNION.

18.2.12    В TargetList" не должно быть никакой уточняющей информации.

18.3 Действие на результат кодирования

18.3.1    EXTENDED-XER кодер должен включать абстрактное значение UTF8String при кодировании, как XML элемент вместо XML элемента, который бы иначе был сгенерирован для этого компонента (при игнорировании идентификатора компонента) или для корневого типа. Включенный элемент должен быть идентичен абстрактному значению UTF8String, за исключением ситуации, специфицированной в 18.3.2.

18.3.2    Любые декларации пространства имен, которые присутствуют в первом стартовом теге (или теге пустого элемента) элемента и идентичны декларациям пространства имен, появляющимся в точке вставки, могут быть (не обязательно) удалены в качестве опции кодера.

Примечание — Изменениэ. перемещение или удаление других деклараций пространства имен в UTF8String не разрешены. посколь<у такие действия могут влиять на пространство имен и уточнение XML Q-имен, присутствующих в контенте элемента или значениях атрибута и в общем случае для кодера невозможно определить, являются ли такие значэния контента или атрибута О-именами.

18.3.3    EXTENDED-XER декодер должен сгенерировать формат (см.18.2.4) из входящего XML документа как абстрактное значение U'F&Stnng.

18.3.4    Декодер должен включать а первом стартовом теге (или теге пустого элемента) в абстрактном значении UTF8String атрибуты де<ларации пространства имен для всех деклараций пространства имен, которые принадлежат одному множеству с декодируемым элементом, но которые не присутствуют в стартовом теге этогоэлемента.

19 Команда кодирования ATTRIBUTE

19.1    Общие положения

19.1.1    "Attributelnstruction":

A ttr ib ute I n stru ction::—

ATTRIBUTE

TargetList

19.1.2    Продукционное правило ’TargetList" определено в 13.2.

19.1.3    Эта команда кодирования определяет, что тип АСН.1. который может кодироваться посимвольно. следует кодировать как XML атрибут.

Примечзни в —Частный (но важный) пример типа, который может кодироваться посимвольно, есть тип выбора (все. альтернативы являются типами, которые могут кодироваться посимвольно), имеющий окончательную команду кодирования USE-UNION.

19.2 Ограничения

19.2.1 Тип АСН.1 не должен лметъ этой окончательной команды кодирования, если он не имеет, по крайней мере, одного кодирования ’ExtendedXM LValue* (принимая во внимание опции кодера) для каждого из его абстрактных значений, которые не содержат тегов XML и не основаны на использовании "xmlhstring* (если тип является открытым тилем или типом строки октетов) или "xmibstring* (если тип является типом строки битов), или на окончательных командах кодирования UNTAGGED. ATTRIBUTE, или ANY-ATTRIBUTE. примененных к его компонентам (в:ли тип является типом последовательности или набора) чтобы достичь этого.

39

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Примечание 1 — Подразумевается, что тип строки с ограниченным набором символов с окончательной командой кодирования ATTRIBUTE должен иметь такое ограничение. чтобы не содержать никаких управляющих символов, перечисленных в ИСО/МЭК 8824-1. таблица 3 (последовагетъносги управляющих символов в 'xmlcstring"). или должен иметь окончательную команду кодирования BASE64.

Примечание 2 — Не долины включаться открытые типы или типы строки октетов и строки битое с CONTAINING без ENCODED BY. так как их “ExtendedXMLValue" может содержать теги, если только они не кодируются как "xmlhstring".

Примечание 3 — Признано, что некоторые инструменты АСН.1 не могут обеспечить статистический контроль за тем. что вышеуказанное ограничение удовлетворяется для всех абстрактных значений, а кодеры, соответствующие правилам кодирования Extended XER. не могут генерировать результаты кодирования, в которых 'ExtendedXMLValue" нарушает то ограничение (см. 19.3.14).

19.2.2    Тип сотой окончательной командой кодирования будет использоваться только как компонент типа последовательности или набора.

Примечание — Компонент может быть OPTIONAL или DEFAULT.

19.2.3    Не должно быть окончательной команды кодирования UNTAGGED для типа, который имеет ату окончательную команду кодирования или для включающего типа, который содержит ее как компонент.

19.2.4    Если окончательные команды кодирования для других компонентов включающего типа включают или эту команду кодирования, или команду кодирования ANY-ATTRI8UTES, условие, приведенное в 19.3.11. не будет нарушаться.

19.2.5    Тип с этой окончательной командой кодирования не должен также иметь любой из окончательных команд кодирования: ANY-ELEMENT, DEFAULT-FOR-EMPTY, PI-OR-COMMENT или UNTAGGED.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут использоваться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. EMBED-VALUES. JSE-NIL. USE-ORDER. USE-TYPE.

19.2.6    Не должно быть уточняющей информации в "TargetLisf.

19.3 Действие на результат кодирования

19.3.1    Если тип кодируется как тип высшего уровня, то эта команда кодирования должна быть проигнорирована.

19.3.2 “ExtendedXMLNamec Value" этого компонента не должно быть включено в "ExtendedXMLSequenceValue" и гм "ExtendedXMLSetValue” типа включающей последовательности или набора, вместо этого значение компонента (если присутствует) должно кодироваться как "Attribute* (см. 19.3.3—19.3.15) включающего элемента.

19.3.3    Продукционное правило "Attribute":

Attribute:

AttnbirteName

QuotedValue

AttributeName::=

WentrfierOrMod ified Identifier | ControiAttributeName QuotedValue::^

DouWeQuotedVakie | SingleQuotedValue DoubteQuotedValue::=

" "" & CharactersncodableValue & “" “

SingleQuotedVatue::=

""" & CharacterEncodableValue & ”" ”

ControlAttributeName::= QuatfiedName CharacterEncodabieValu6::= ExtendedXMLValue

19.3.4    Продукционное прави/ю "IdentifierOrModified Identifier* определено e 16.5.1, и его использование в контексте этой команды кодироеания определено в 16.6.3.

19.3.5    Продукционное правило "ControlAttributeName” не используется непосредственно этим разделом. Все "QualifiedName"s в этом продукционном правиле взяты из управляющего пространства имен (см. 15.9). Такие атрибуты генерируются только в соответствии с разделами 32 и 36. а непредвиденные управляющие атрибуты необходшо акцептовать декодерам (см. 9.2.10).

40

ГОСТ Р ИСО/МЭК 8825-4 — 2009

19.3.6    "QualifiedName" определено в 28.3.2.

19.3.7    "ExtendedXMLValue" определено в 16.4.

19.3.8    "AttributeName" должно быть или 'идентификатором' компонента, который имеет эту окончательную команду кодирования, или.если есть окончательные команды кодирования NAME или NAMESPACE. "QualifiedOrtJnqualtfiedName" определяется этими командами кодирования, как специфицировано в разделах 27 и 28.

19.3.9    'CharacterEncodabteValje' в ’QuotedValue" атрибута (см. 19.3.3) должно быть "ExtendedXMLValue" этого типа, возможно, модифицированным, как определено в 19.3.12-19.3.15.

19.3.10    Порядок, в котором атрибуты появляются в"AttributeList", является опцией кодировщика: будут ли они генерироваться этой командой кодирования или командой кодирования ANV-ATTRIBUTES.

Примечание — Никаксй семантики нельзя накладывать на порядок атрибутов в любой команде EXTENDED-XER. Это осраьычение язляется требованием W3C XML 1.0. 3.1.

19.3.11    Когда "AttributeUsr в варианте кодирования содержит множественные атрибуты, то для любых двух атрибутов в перечне:

а)    если имена "AttributeName''s двух атрибутов — оба неуточненные имена, то они должны быть различными.

б) если MMeHa’AttributeName's двух атрибутов — оба имени уточненных пространств имен, то либо они должны иметь различные пространства имен, либо они должны быть различными именами одного и того же пространства имен.

Если это условие будет нарушаться применением окончательных команд кодирования для любого абстрактного значения типа высшего уровня, который кодируется, такое использование команд кодирования будет неправомочным.

19.3.12    Если "QuotedValue” является "OoubieQuotedValue", и "ExtendedXMLValue" в "CharacterEncodableValue" содержит символ КАВЫЧКИ (QUOTATION MARK (34)) то этот символ должен быть заменен символами:

&quot;

или. как опция кодировщика, управляющей последовательностью формы &#п: или &#хп:. определенными ИСО/МЭК 8824-1.11.15.8.

19.3.13    Если ''QuotedValue' является "SingleQuotedValue" и "ExtendedXMLValue’' в "CharacterEncodableValue" содержит символ АПОСТРОФ (APOSTROPHE (39)). то этот символ должен быть заменен символами:

&apos;

или. как опция кодировщика, управляющей последовательностью формы &#п: или &#хп;. определенными ИСО/МЭК 8824-1.11.15.8.

19.3.14    "ExtendedXMLValue" в "CharacterEncodableValue" должно быть одним из результатов кодировании жни. кишрый можно кодировагь посимвольно и млорый ни содержи I leiouXML.

19.3.15Если'ExtendedXMLValue" содержит символы ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ (HORIZONTAL TABULATION (9)). ПЕРЕВОД СТРОКИ (LINE FEEO (10)). или ПЕРЕВОД КАРЕТКИ (CARRIAGE RETURN (13». то эти символы должны быть заменены в "ExtendedXMLValue" управляющими последовательностями формы "&#п:“ или ''&#хп:и. определенными в ISO/IEC 8824-1.11.15.8.

20 Команда кодирования BASE64

20.1    Общие положения

20.1.1    "Base64lnstruction":

Base64lnstruction;: =

8ASE64

TargetList

20.1.2    Продукционное правило "TargetList" определено в 13.2.

20.1.3    Эта команда кодирования может быть назначена типу строка октетов, "открытый" или любому типу "ограниченная строка символов".

20.1.4    Применение этой окончательной команды кодирования к типу строки октетов или открытому типу удаляет опцию шестнадцатеричного кодирования, но позволяет опцию кодирования 8ase64 (как определено в запросе на комментарии ETF 2045.6.8). Применение этой окончательной команды кодирования к типу ограниченная строка символов требует, чтобы значение типа ограниченной строки символов было закодировано как Base64.

41

ГОСТ Р ИСО/МЭК 8825-4 — 2009

20.2 Ограничения

20.2.1    Если окончательная команда кодирования для типа АСН.1 будет содержать команду кодирования BASE64. то тип должен быть одним из:

а)    строка октетов;

б)    открытый:

в)    ограниченная строка символов.

20.2.2    Тил с этой окончательной командой кодирования не должен иметь окончательных команд кодирования ANY-ELEMENT или WHITESPACE.

Примечание — Нижеперечисленные окончательные команды кодирования не могут появляться вместе с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. DECIMAL. EMBED-VALUES. LIST. TEXT. USE-NIL. USE-NUMBER. USEORDER. USE-QNAME. USE-TYPE. USE-UNION.

20.2.3    В TargetLisf не должно быть уточняющей информации.

20.3    Действие на результат кодирования

20.3.1    Эта команда кодирования затрагивает только "ExtendedXMLValue" типа, к которому она применяется. Она требует испольэовашя первой или второй альтернативы для 'ExtendedXMLOctetStringValue" и "ExtendedXMLOpenTypeFieldVaT(KaK опция кодера), запрещая третью альтернативу (см. 16.4). Она требует использования второй альтернативы для "ExtendedXMLRestrictedCharacterStringValue" (см. 16.4).

20.3.2    aBase64XMLOctetStrin3Vaiue”:

Base64XMLOctetStringValue:: =

XMLBase64String

*XMLBase64String" определен в 20.3.6.

20.3.3    ИСО/МЭК 8824-1, пуна 22.4, применяется.

20.3.4    HBase64XMLOpenTypeFieldVar:

Base64XMLOpenTypeFieldVal:: =

XMLBase64String

20.3.5    "Base64XMLRestrictedCharacterStringValue":

Base64XMLRestrictedCharacterStringValue:: -

XML8ase64String

20.3.6    HXMLBase64String’:

XMLBase64String:: =

XMLRestrictedCharacterStrincVatue

"XMLRestrictedCharacterStringValue" должно быть результатом кодирования контента при передаче Content-Transfer-Encoding, определенное в запросе на комментарии IETF 2045. пункт 6.8. за исключением того, что предел в 76 символов не применяется, и "пробел с переходом" (см. 7.1.5), разрешен в любой позиции результата кодиоования ":<MLBase64Strino‘-

Примвчание — IETF RFC, 2045 определяет присутствие концов строки, делящих реэугътат кодирования на строки максимум 76 символов, но эго не требуется при EXTENDED-XER кодированиям. Это также позволяет вставить пробел "white-space" 8 любую позицию результата кодирования Base€4.

20.3.7    Если команда кодирования Base64 применяется к типу "ограниченная строка символов", то каждый символ в строке символов должен быть закодирован с UTF-8 (см. ИСО 10646. приложение D). Получающиеся октеты для всей строки символов должны быть закодированы в символы, как определено в IETF RFC 2045. пункт 6.8. и получающиеся символы должны сформировать "ExtendedXMLValue”.

21 Команда кодирования DECIMAL

21.1    Общие положения

21.1.1    “Detimallnstructton":

Decimallnstruction:: =

DECIMAL

TargetList

21.1.2    Продукционное правило "TargetLisf определено е 13.2.

21.1.3    Назначение этой команды кодирования состоит в изменении кодирования действительного типа так. чтобы запрещалась экспоненциальная нотация, и дефис, сопровождаемый ”0’. обозначал значение плюс нуль вместо значения минус нуль.

Примечание — Значение минус нуль не может быть представлено.

42

ГОСТ Р ИСО/МЭК 8825-4 — 2009

21.2 Ограничения

21.2.1    Эта команда кодирования используется только для действительного типа.

21.2.2    Действительный тип. «которому применена эта команда кодирования, должен быть ограничен таким способом, что значения минус нуль, MINUS-INFINITY. PLUS-INFINITY и NOT-A-NUMBER не разрешаются. и base есть 10.

Примечание — Рекомендуются следующие ограничения:

((WITH COMPONENTS {.... base(10)})

(ALL EXCEPT (-01M1NUS-INF1N TY | PLUS-INFINITY | NOT-A-NUMBER))

21.2.3    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

21.2.4    Тип с этой окончатель-юй командой кодирования может иметь любые другие окончательные команды кодирования, разрешенные для этого типа.

Примечание — Нижеперечисленные окончательные команды кодирования не могут появляться вместе с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. ANY-ELEMENT, EASE64. EMBED-VALUES. LIST. TEXT. USE-NIL. USE-NUMBER, USE-ORDER. USE-QNAME. USE-TYPE. USE-UNION. WHITESPACE.

21.2.5    В TargetList" не должно быть уточняющей информации.

21.3 Действие на результат кодирования

21.3.1    'ModifiedXMLRealNumDer” (см. 16.9.3) не должно содержать "е" или "Е", сопровождаемое показателем степени.

Примечание — Все абстрактные значения, включая те. которые являются очень большими или очень малыми реальными числами, должны быть закодированы как целая часть, опционально сопровождаемая десятичным разделом и дроб+ой частью.

21.3.2    Действительное значение плюс нуль может быть закодировано в качестве опции кодера как "XMLDecimalMiousZeroRealValue". определенное следующим образом:

XMLDecimalMinusZeroRealValue:: =

& modifiedXMLRealNumber

где "ModifiedXMLRealNumber'' ограничено условием 21.3.1 и не содержит никаких цифр кроме нуля.

Примечание — Вышеупомянутое не может быть спутано с действительным значением минус нуль, потому что значение минус нуль удазено обязательным ограничением, которое применяется к действительному типу (см. 21.2-2).

22 Команда кодирования DEFAULT-FOR-EMPTY

22.1    Общие положения

22.1.1    "DefaultForEmptylnstriKtion":

DefauttFofEmptylnstruction::=

DEFAULT-FOR-EMPTY TargetList AS Value

22.1.2    Продукционное правило TargetList" определено в 13.2.

22.1.3    Эта команда кодирования определяет абстрактное значение, которое может быть закодировано при EXTENDED-XER кодировании (как выбор кодера) как 'пустая’ альтернатива для "ExtendedXMLVahie" для типа (см. 16.4), который кодируется как единственный контент элемента XML.

Примечание — Этот механизм по умолчанию поддерживает присутствие элемента XML без контента (типично, но не обязательно, закоаированный как тег пустого элемента). Эго отличается от испогъзоеания DEFAULT АСН.1. которая связана с отсутствием "ExtendedXMLNamedValue" компонента последоеагегьносги или набора.

22.1.4    TargetList" не должен использовать ключевое слово ALL и должен определять единственную цель.

22.1.5    Пять различных случаев, когда эта команда кодирования может использоваться, представлены ниже.

43

ГОСТ Р ИСО/МЭК 8825-4 — 2009

22.1.5.1    Первый случай — команда назначается непосредственно посимвольно кодируемому типу, который не является нетегированным UNTAGGED {см. раздел 31). Если включающий элемент приложения имеет пустой контент, тоэтот пустой контент представляет специфицированное значение 'Value* посимвольно кодируемого типа (который управляет значением Value*).

22.1.5.2    Второй случай — команда назначается (NOT UNTAGGED. NOT EMBED-VALUES и NOT USE-NIL) типу последовательность. содержащему UNTAGGED посимвольно кодируемый компонент, при кодировании которого формирует» единственный контент (для всех абстрактных значений типа последовательность) включающего элемента типа последовательность. Если включающий элемент типа последовательность имеет пустой контент, тоэтот пустой контент представляет специфицированное значение Value* посимвольно кодируемого типа iкоторый управляет значением "Value").

Примечание — Посимвольно кодируемый компонент может быть единственным контентом, потому что это — единственный компонент, или он может быть единственным контентом, потому что все другие компоненты имеют окончательные команды кодирования ATTRIBUTE (см. раздел 19). или ANY-ATTRIBUTES (см. раздел 17).

22.1.5.3    Третий случай —команда назначается (NOT UNTAGGED. NOT EMBED-VALUES и NOT USE-NIL) типу последовательность с окончательной командой кодирования EMBED-VALUES (см. 24.3.1.4). Если включающий элемент типа последовательность имеет пустой контент, то этот пустой контент представляет абстрактное значение тита последовательности, который иначе продуцировал бы контент, исключительно определенный значением Value" единственной UTF8String в последовательности-из EMBED-VALUES (UTF8String управляет значением Value").

22.1.5.4    Четвертый случай — команда назначается (NOT UNTAGGED. NOT EMBED-VALUES) типу последовательность с окончательной командой кодирования USE-NIL (см. раздел 32). чей компонент OPTIONAL — посимвольно кодируемый тип. Если включающий элемент типа последовательность имеет атрибут идентификации пустого множества со значением true. DEFAULT-FOR-EMPTY не влияет на смысл результата кодирования. Если вклочающий элемент типа последовательность имеет атрибут идентификации пустого множества со значением false (или не имеет атрибута идентификации пустого множества) и имеет пустой контент, то этот пустой контент представляет специфицированное значение Value* компонента OPTIONAL (чей тип управляет значением Value").

22.1.5.5    Пятый случай — команда назначается (NOT UNTAGGED) типу последовательность с окончательной командой кодирования EMBED-VALUES (см. 24.3.1.4) и с окончательной командой кодирования USE-NIL (см. раздел 32). чей компонент OPTIONAL—типа последовательность. Если включающий элемент типа последовательность имеет атрибут идентификации пустого множества со значением true. DEFAULT-FOR-EMPTY не влияет на результат кодирования. Если включающий элемент типа последовательность имеет атрибут идентификации пустого множества со значением false (или не имеет атрибута идентификации пустого множества) и имеет пустой контент, тоэтот пустой контент представляет абстрактное значение типа последовательность, который иначе продуцировал бы контент, определенный значением "Value" единственной UTF8String в последовательности-из EMBED-VALUES (UTF8String управляет значением"№1ие").

22.1.6 "Value” определено ИСО/МЭК 8824-1.16.7.

Примечание — Это позволяет использовать эталонное значение, определенное е модуле или импортированное е него (модуль). Эталонное значение может быть определено с использованием нотации значений XML (XML Value Notaton), но такая нотация не может использоваться непосредственно в "DefaultFcxEmptylnslrucbon".

22.2 Ограничения

22.2.1    Если окончательные инструкции кодирования для типа АСН.1. который является NOT UNTAGGED посимвольно кодируемым типом, содержит команду кодирования DEFAULT-FOR-EMPTY. то этот тип не должен быть компонентом (АСН.1 SEQUENCE или SET) со значением DEFAULT АСН.1.

Примечание — Это ограничение не является строго обязательным, оно должно исключить путаницу между нормальным механизмом определения АСН.1 и механизмом по умолчанию EXTENDED-XER.

22.2.2    Эта команда кодирования должна быть назначена только:

а)    посимвольно кодируемому типу без окончательной команды кодирования UNTAGGED:

б)    типу последовательность NOT UNTAGGED без окончательных команд кодирования EMBED-VALUES или USE-NIL. одним из компонентов которых является посимвольно кодируемый тип с окончательной командой кодирования UNTAGGED а все другие компоненты (если есть хотя бы один) имеют окончательные команды кодирования ATTRIBUTE или ANY-ATTRIBUTES;

44

ГОСТ Р ИСО/МЭК 8825-4 — 2009

а) типу последовательность NOT UNTAGGED. без окончательной команды кодирования USE-NIL. но с окончательной командой кодирования EMBED-VALUES (см. 24.3.1.4);

г)    типу последовательность NOT UNTAGGED без окончательной команды кодирования EMBED-VALUES. но сокончательной командой кодирования USE-NIL, OPTIONAL компонент которой — посимвольно кодируемый тип:

д)    типу последовательность NOT UNTAGGED сокончательной командой кодирования EMBED-VALUES и сокончательной командой кодирования USE-NIL. OPTIONAL компонент которой — типа последовательность.

22.2.3    Если применяется ограничение 22.2.2 (а) и 'empty”—допустимое значение "ExtendedXMLValue" для одного из абстрактных значений (скажем. V). возможно, ограниченного типа, и V отличается от значения "Value* в "DefaultForEmptylnstruction". то должен быть, по крайней мере, один альтернативный результат кодирования для V.

22.2.4    Если применяются ограничения 22.2.2 (6) или (г), и "empty" — допустимое значение "ExtendedXMLValue" для одного и: абстрактных значений (скажем. V) UNTAGGED компонента (случай 6} или OPTIONAL компонента, (случай г), и V отличается от значения *Value" в "DefaultForEmptylnstruction", то должен быть, по крайней мере, один альтернативный результат кодирования для V.

Примечание — Призназтся, что некоторые инструменты АСН.1 не 8 состоянии статически проверить, что вышеупомянутые ограничения соответствуют всем абстрактным значениям, но соответствующие кодировщики не могут продуцировать результаты кодирования, в которых "ExtendedXMLValue" нарушает это ограничение.

22.2.5    Если применяется ограничение 22.2.2 (в), то тип SEQUENCE должен быть ограничен так. чтобы (без DEFAULT-FOR-EMPTY) не было абстрактного значения, которое продуцировало бы пустой контент для заключающего элемента.

22.2.6    Если посимвольно кодируемый тип (случай 22.2.2 (а)) с этой окончательной командой кодирования имеет тип. являющийся тигом последовательностъ-иэ или набор-из сокончательной командой кодирования LIST, или типам выбора сокончательной командой кодирования USE-UNION, тогда эта окончательная команда кодирования долкна игнорироваться.

22.2.7    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

22.2.8    Тип с этой окончательной командой кодирования не должен иметь окончательных команд кодирования ANY-ELEMENT. ATTRIBUTE или UNTAGGED.

Примечание — Окончательные команды кодирования ANY-ATTRIBUTES, USE-TYPE не могут применяться с этой окончательной командой кодирования, их применение к этому типу запрещено.

22.2.9    В TatyelLibl" не дол 1жно бы i ь уточняющей информации.

22.3 Действие на результат кодирования

22.3.1    Эта команда кодирования действует только на значение "ExtendedXMLValue" типа, который управляет "значением" "Value" (см. 22.1.5).

22.3.2    Результат кодирования "ExtendedXMLValue” абстрактного значения, специфицированного "Value" будет (как выбор кодера) одним из следующих:

а)    результат кодирования "ExtendedXMLValue" того значения, которое было бы продуцировано, если бы DEFAULT-FOR-EMPTY отсутствовал (нормальный результат кодирования);

б)    "пустой" "empty".

Примечание — От декодеров требуется, чтобы они принимали и нормальный результат кодирования и "пустой" как обозначение пустого по умолчанию значения DEFAULT-FOR-EMPTY.

22.3.3    Если применяется ограничение 22.2.2 (а) и "пустой" "empty" есть допустимое значение "ExtendedXMLValue" для одного из абстрактных значений (скажем, V) типа и V отличается от ’значения" "Value*, специфицированного в "DefaultForEmptylnstruction". тогда любая из альтернатив результата кодирования для V должна использоваться (как опция кодера) вместо "пустого" "empty".

22.3.4    Если применяются ограничения 22.2.2 (б) или (г) и ’пустое" "empty* — допустимое значение "ExtendedXMLValue" для одного иэабстрактных значений (скажем. V) UNTAGGED компонента (случай (б)] или OPTIONAL компонента (случай (г)] и V отличается от "значения" "Value", слецифицированного в "DefaultForEmptylnstruction". тогда любой из альтернативных результатов кодирования для V должен использоваться (как опция кодера) вместо "пустого" "empty".

45

ГОСТ Р ИСО/МЭК 8825-4 — 2009

22.3.5    Если применяется ограничение 22.2.2 (в), действие этой команды кодирования определено в 24.3.1.4 и 24.3.1.5.

22.3.6    Если применяется ограничение 22.2.2 (д). действие этой команды кодирования определено в 24.3.1.6.

23    Команда кодирования ELEMENT

23.1    Общие положения

23.1.1    “Elementlnstruction":

Elementlnstruction ::=

ELEMENT

TargetList

23.1.2    Продукционное правило "TargetLtsf определено в 13.2.

23.1.3    Эта команда кодирования синонимична с NOT UNTAGGED и не подразумевает никакой семантики кроме NOT UNTAGGED.

23.2 Ограничения

23.2.1    В TargetList" не должно быть уточняющей информации.

23.2.2    Эта команда кодирования не должна использоваться как предварительно установленная команда кодирования, снабженная префиксом, в комбинации ни с одной из команд, снабженных префиксами ANY-ATTRIBUTES, ANY-ELEMENT или ATTRIBUTE, чтобы избежать разночтения.

23.3 Действие на результат кодирования

Эта команда кодирования отрицает команду кодирования UNTAGGED и по другому не влияет на кодирование.

24    Команда кодирования EMBED-VALUES

24.1    Общие положения

24.1.1    "EmbedValuesInstruction":

EmbedValuesInstruction

EMBED-VALUES

TargetList

24.1.2    Продукционное правило TargetList" определено в 13.2.

24.1.ЗЭта команда кодирования позволяет первому компоненту типа последовательность (NOT UNTAGGED) обеспечить вставку строки символов перед первым элементом XML. после последнего элемента XML и между XML элементами, которые формируют результат кодирования "ExtendedXMLValue" типа последовательность.

24.1.4 Если окончательная соманда кодирования USE-NIL также присутствует и OPTIONAL компонент. поддерживающий USE-NIL. отсутствует в конкретном абстрактном значении, тогда не будет никаких элементов XML для компонентов типа последовательность и не будет строки символов, обеспечивающих это абстрактное значение. Иначе, для всех абстрактных значений число строк символов обязано быть на единицу больше, чем число элементов в результате кодирования типа последовательность. Некоторые или все строки символов могут быть пустыми.

24.2    Ограничения

24.2.1    Тип АСН.1 не должен иметь этой окончательной команды кодирования, если только это не тип последовательность. Первый компонент последовательности SEQUENCE OF UTF8String не должен быть отмечен как OPTIONAL или DEFAULT.

24.2.2    Не должно быть окончательной команды кодирования UNTAGGED (см. раздел 31}, примененной к типу последовательность-из или к компоненту поспедоеательность-из.

24.2.3    Не должно быть окончательной команды кодирования UNTAGGED. применяемой к любому компоненту типа последовательность, который является типом cftaracter-encodable.

24.2.4    Не должно быть окончательной команды кодирования UNTAGGED примененной к какому-либо компоненту типа последовательность, который является посимвольно кодируемым типом.

24.2.5    Если тип последовательность имеет окончательную команду кодирования USE-NIL. то компонент OPTIONAL, поддерживающий команду кодирования USE-NIL. не должен быть посимвольно кодируемым типом (см. также 32.2.4).

46

ГОСТ Р ИСО/МЭК 8825-4 — 2009

24.2.6    Ни один из компонентов последовательности не должен быть отмечен DEFAULT, если только они не имеют окончательной команды кодирования ATTRI8UTE. Если есть компоненты типа SEQUENCE или SET (на любой глубине), то возможно создание элементов в "ExtendedXMLValue" с использованием UNTAGGED — непосредственных дочерних элементов типа последовательность. Они не должны быть отмечены как DEFAULT.

24.2.7    Тип последовательность должен быть ограничен таким способом что:

а) если тип имеет окончательную команду кодирования USE-NIL и OPTIONAL компонент, поддерживающий USE-NIL. отсутствует, чисто повторений компонентов последовательность-из обязано быть нулем;

б)    иначе, число повторений компонентов последовательность-из в каждом абстрактном значении равно единице плюс число элементов XML в “ExtendedXMLValue" типа последовательность, определенного после применения всех окончательных команд кодирования к другим компонентам последовательности и игнорирования первого компонента.

Примечание — Рекомендуется выражать ограничение типа последовательность как:

(CONSTRAINED BY

{/* Должно соответствовать ИСО/МЭК 8825-4, раздел 25 7})

24.2.8    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-EKCODINGS в разделе управления кодированием.

24.2.9    Тип с этой окончательной командой кодирования не должен иметь окончательной команды кодирования UNTAGGED.

Примечание — Нижеперечисленные окончательные команды кодирования не должны появляться вместе с этой окончательной командой кодирования потому, что их применение к типу запрещается: ANY-ATTR1BUTES, ANY-ELEMENT. ATTRIBUTE. BASE64. DECIMAL. LIST. TEXT. USENUMBER. USE-QNAME. USE-TYPE, USE-UNION. WHITESPACE.

24.2.10    В "TargetList" не должно быть уточняющей информации.

24.3    Действие на результат кодирования

24.3.1    Кодер должен сначала продуцировать частичный результат “ExtendedXMLVahje" кодирования типа включающая последовательность, игнорируя первый компонент. Это должно модифицировать результат кодирования, как определено в следующих подразделах.

Примечание — Значения JTFSString, которые вставляются, могуг быть "пустыми".

24.3.1.1    Первое значение UTF8String должно быть вставлено в последовательность-из (см. 24.3.1.6) в начале результата частичного кодирования перед начальным тегом первого XML элемента (если есть хотя бы один).

7А 3 1 ?КаЖ/К^ППППАЛуЮМО^ТНЯиАНИА|1ТРЯ£ТПП0(АГ.ПИАГГГКХЛТабц|ПЛМП)ЛППЖМАбыТКЯ<ТГаАПАМГ> между завершающим тегом XML элемента и начальным тегом следующего XML элемента, начиная от первого элемента к последнему.

Примечание — Вышеупомянутое подразумевает, что в каждый из этих элементов не вставлено UTF8String значение, даже если они имеют дочерние элементы.

24.3.1.3    Последнее значение UTF6String (если есть одно) должно быть вставлено в конец результата частичного кодирования после завершающего тега последнего XML элемента.

24.3.1.4    Если XML элементы отсутствуют в результате частичного кодирования, и есть также окончательная команда кодирования DEFAULT-FOR-EMPTY (см. 22). примененная к типу последовательность, и значение первой (и только) UTF8Sting в последоеательности-из идентично “значению" "Value”, специфицированному а команде кодирования DEFAULT-FOR-EMPTY. то кодер может опционально закодировать UTFSString как пустую строку (но см. 24.3.1.6).

24.3.1.5    Если XML элементы отсутствуют в результате частичного кодирования и есть окончательная команда кодирования DEFAULT-FOR-EMPTY. примененная к типу последовательность, и результат кодирования — пуст, декодер должен интерпретировать это как результат кодирования для “значения" "Value", специфицированного в команде кодирования DEFAULT-FOR-EMPTY и назначить это абстрактное значение первой (и только) UTF8String в постедовательности-из (но см. 24.3.1.6).

Примечание — Это означает, что значение без XML элементов и с Единственным пустым значением UTF8String не может быть закодировано. Тил последовательность обязан быть ограниченным, чтобы запретить такие значения (см. 22.2.5).

47

ГОСТ Р ИСО/МЭК 8825-4 — 2009

24.3.1.6 Если тип также имеет окончательную команду кодирования USE-NIL и OPTIONAL компонент отсутствует, то команда кодирования EMBED-VALUES не оказывает действие на результат кодирования. Если тип также имеет окончательную команду кодирования USE-NIL и OPTIONAL компонент присутствует, тогда применяется условие 24.3.1.4. Если декодер определяет, что OPTIONAL компонент присутствует по отсутствию атрибута идентификации пустого множества (или его присутствию со значением false), тогда применяется условие 24.3.1.5.

25    Команда кодирования GLOBAL-DEFAULTS

25.1    Общие положения

25.1.1    "GtobalDefaultsInstructon":

GlobalDefaultsInstruction::*

GLOBAL-DEFAULTS TargetList DefauftSetting

DefaultSetting::=

ControlNamespace | MODIFIED-ENCODINGS

ControlNamespace::=

CONTROL-NAMESPACE

QuotedURI

Prefix?

25.1.2    Продукционное правило "TargetList” определено в 13.2 и должно быть "пустым" "empty".

25.1.3    "QuotedURI" и "Prefix" определены в 28.1.1.

25.1.4    Продукционное правило "ControlNamespace"определяет название управляющего пространства имен fURI" в "QuotedURI") и рекомендуемый префикс для этого пространства имен. Если эта команда кодирования GLOBAL-DEFAULTS не представлена, управляющее пространство имен должно быть тем. какое определено в 15.9.

25.1.5    Использование MODIFIED-ENCODINGS продуцирует "ExtendedXMLValues". которые модифицированы в соответствии С9.2.7 и 92.8.

25.2 Ограничения

25.2.1    Команда кодирование GLOBAL-DEFAULTS должна быть назначена только в разделе управления кодированием, и ей не должны предшествовать никакие команды кодирования, кроме других команд кодирования GLOBAL-DEFAULTS.

25.2.2    Каждая из альтернатив GLOBAL-DEFAULTS должна использоваться только однажды в любом разделе управления кодированием.

25.2.3    GLOBAL-DEFAULTS MODIFIED-ENCODINGS. если присутствует, должна быть первой командой в разделе управления XER кодированием в модуле АСН.1.

25.3    Действие на результат кодирования

25.3.1    Применение MODIFIED-ENCODINGS требует, чтобы кодирование было модифицировано, как определено в 9.2.7 и 9.2.8.

25.3.2    Управляющее пространство имен, используемое для полного документа XML. должно быть управляющим пространством имен, назначенным типу АСН.1. кодирование которого формирует корневой элемент этого XML документа.

26    Команда кодирования LIST

26.1    Общие положения

26.1.1    "Listlnstructton":

Listl nstruction::=

LIST

TargetList

26.1.2    Продукционное правило "TargetList" определено в 13.2.

26.1.3    Эта команда кодирования требует, чтобы "ExtendedXMLSequenceOfValue" или "ExtendedXMLSetOfVakje" типа последовательность-из или набор-из(см. 16.7) были "ExtendedXMLListValue’. продуцирующие разделенный пробелами перечень значений компонента последовательность-иэ или набор-иэ.

Примечание — Обычно эту команду кодирования назначают SEQUENCE OF INTEGER, которой команда кодирование ATTRIBUTE (см. раздет 19) также назначается.

48

ГОСТ Р ИСО/МЭК 8825-4 — 2009

26.2 Ограничения

26.2.1    Тип. которому назначается эта команда кодирования, должен быть последовательность-из или набор-из.

26.2.2    Компонент последовательность-из или набор-из:

а)    должен быть посимвольно кодируемого типа;

б)    должен быть таким, чтобы для всех его абстрактных значений имелся, по крайней мере, один результат кодирования "ExtendedXMLValue" (принимая во внимание все опции кодера), не "пустой* "empty” не содержащий "пробел с переходом” (см. 7.1.5).

Примечание 1 — Вышеупомянутые ограничения подразумевают, что компонент не может самостоятельно быть типа последовательность-из или набор-из с командой кодирования LIST, или содержать вложенный тип последовательность-из или набор-из с командой кодированием UST на любой глубине.

Примечание 2 — Вышеупомянутые ограничения будут удовлетворены, если тип компонента после-довательность-из или набор-из является целочисленным, действительным, типом идентификатора объекта, типом относительного идентификатора объекта или такими полезными типами как Generalized Time и UTCTime. Они будут также удовлетворены, еом это тип строка символов ограниченный так. чтобы всегда имелся, по крайней мере, один символ в строке символов и ни одно из его значений не содержало символ "пробел" "white-space".

Примечание 3 — Призняо. что некоторые инструменты АСН. 1 не в состоянии статически проверить, что вышеупомянутые правила удовлетворены, но кодер, соответствующий правилам, не должен производить кодирование, которое нарушает ограничение (6).

26.2.3    Тил с этой окончательной командой кодирования не должен иметь окончательной команды кодирования ANY-ATTRIBUTES.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ELEMENT. BASE64. DECIMAL. EMBED-VALUES. TEXT. USE-NIL. USE-NUMBER. USEORDER. USE-ONAME. USE-TYPE. USE-UNION. WHITESPACE.

26.2.4    В TargetList" не должно быть уточняющей информации.

26.3 Действие на результат кодирования

26.3.1    Эта команда кодирования действует только на результат кодирования типа, к которому применена.

26.3.2    Продукционные правила "ExtendedXMLSequenceOfVaiue" или "ExtendedXMLSetOfValue’ (см. 16.7) должны быть альтернативой "ExterdedXMLUstValue". ’ExtendedXMLUstValue' есть:

ExtendedXMLListVatue::=

empty

| CharacterEncodableValue ExtendedXMLUstValue

26.3.3    Должен быть "пробел с переходом" (см. 7.1.5) между каждой парой смежных "CharacterEncodableValue" в "CxtendedXMLListValue".

26.3.4    "CharacterEncodableValue" определен в 19.3.3. Каждый "CharacterEncodableValue" должен закодировать значение из компонента последовательность-из или набора-из.

26.3.5    Порядок, в котором значения ”CharacterEnoodab*eValue"s появляются в "ExtendedXMLUstValue’. должен быть тот же самый, в котором соответствующие значения ”ExtendedXMLValue"s появились бы в "ExtendedXMLSequenceOfValue" или "ExtendedXMLSetOfValue”. если окончательная команда кодирования LIST отсутствовала.

26.3.6    Значения "CharacterEncodabteValue’s в "ExtendedXMLListValue* не должны быть "пустыми* "empty и не должны содержать "пробел спереходом" (см. 7.1.5).

Примечание — Поораздвп 26.2.2 (б) гарантирует, что эго возможно, но 26.3.4 может ограничить опции кодера устройства.

27 Команда кодирования NAME

27.1    Общие положения

27.1.1    "Namelnstmction":

Namelnstructioo:: =

NAME

TargetList

AS

NewNameOrKeyword

49

ГОСТ Р ИСО/МЭК 8825-4 — 2009

NewNameOrKeyword:

NewName | Keyword

NewName::*

RestrictedCharacterSlringValue

Keyword::*

CAPITALIZED lUNCAPfTALIZED )UPPERCASED 1 LOWERCASED

27.1.2    Продукционное правило "TargetList" определено в 13.2.

27.1.3    Эта команда кодирования имеет пять самостоятельных назначений:

а)    изменять связанное имя тега, имя атрибута или значение атрибута возможной идентификации типа («новое имя» "NewName" без «уточняющей информации» ’Ouafcfyrtg Information' в «перечне целей» TargetLst”) цели:

б)    изменять регистр (или регистр первой буквы) имени связанного тега, имени атрибута, или значения атрибута возможной идентификации типа («ключевое слово» "Keyword" без «уточняющей информации» "Qualifyinglnformation" в «перечне целей» "TargetList") цели (ей):

в)    изменять имя элемента, применяемое в теге «пустой элемент» обычно (как определено в ИСО/МЭК 8824*1) получаемого из специфицированного идентификатора, используемого в определении типа («новое имя» "NewName" с «уточняющей информацией» "Qualrfyinglnformation" в «перечне целей» TargetList". которая не является ALL) цели:

г)    изменять регистр (или ре метр первой буквы) имени элемента, применяемого в теге «пустого элемента». обычно получаемого из специфицированного идентификатора, используемого в определении типа («ключевое слово» "Keyword" с «уточняющей информацией» "Qualifyinglnformation" в «перечне целей» "TargetList". которая не является ALL) цели (ей);

д)    изменять регистр (или регистр первой буквы) имен элементов, применяемых при кодировании “ExtendedXMLValue". получаемом из любого идентификатора, используемого в определении типа («ключевое слово» "Keyword"с «уточняющей информацией» "Qualifyinglnformation" в «перечне целей» TargetList". которая является ALL) цели (ей).

Примечание 1—«Новое имя» "NewName" может применяться для изменения имен, используемых при EXTENDED-XER кодировании, получаемых из идентификаторов или ссылок на типы, но является исключительно полезным, если новое имя может быть использовано, е первую очередь, как идентификатор АСН.1 или ссылка на тип. Таким образом, назначение команды кодирования NAME — это продуцирование требуемого XML элемента или имен атрибутов, когда они не разрешены из-за правил АСН. 1 относительно регистра первой буквы идентификаторов или названий ссылки на тип. а также когда правила АСН.1 для различных идентификаторов в конструкциях последовательность, набор и выбор предотвращают желательное кодирование XML

Примечание 2 — Использование ALL. IN ALL. AS. CAPITALIZED для изображения прописными буквами всех идентификаторов в модуле, может быть особенно полезным для обеспечения общего стиля использования начальных заглавных букв.

Примечание 3 — Если команда кодирования NAME назначена с использованием цели, идентифицированной «идентификатором» “kentifier" или «ссылкой на тип» "typereference". это затрагивает имя. используемое в EXTENDED-XER кодировании, но не затрагивает имени, которое используется, чтобы идентифицировать ту же самую цель в последующих командах XER кодирования.

27.1.4    Значение "RestrictedCharacterStringValue" определено в ИСО/МЭК 8824*1. раздел 37.

27.2 Ограничения

27.2.1    "NewName" не должно использоваться, если "Qualifyinglnformation" будет ALL.

27.2.2    Команда кодирования NAME с "Qualifyinglnformation" должна назначаться только для следующих определений типа:

а)    определение типа булевский;

б)    определение типа строка битое с поименованными битами:

в)    определение типа перечислимый:

г)    определение типа целочисленный с поименованными значениями.

27.2.3    Значение "RestrictedCharacterStringValue" в "NewName" при использовании в команде кодирования NAME должно быть или "NCName*. определенное в W3C XML Namespaces (раздел 2. продукционное

50

ГОСТ Р ИСО/МЭК 8825-4 — 2009

правило 4). или пустая строка символов. Она не должна быть пустой строкой символов, если только команда кодирования NAME не применяется к альтернативе типа выбора с окончательной командой кодирования USE-UNION.

Примечание 1 — Это требование из "W3C XML Namespaces': "NCName" не начинается с символов, которые будучт заглавными, представляют собой "XML".

Примечание 2 — Продукционное правило "NewNameOrKeyword* (и. следовательно, продукционное правило “NewName") также используется в разделе 30. Вышеупомянутые ограничения на "RestrictedCharacterStringVakje" не применяются к использованию в разделе 30.

27.2.4    Если есть команда кодирования GLOBAL-DEFAULTS с ключевым словом MODIFIED-ENCODINGS. то не должно быть никакой "Qualifying Information" в TargetUst".

Примечание — это объясняется тем. что теги пустого элемента не используются е данном случае. Команда кодирования TEXT может использоваться вместо этого для изменения результатов кодирования индивидуальных значений типа.

27.2.5    Эта команда кодирования не должна использоваться в качестве команды кодирования, снабженной префиксом в комбинации ни с одной из следующих команд кодирования с префиксом: ANY-ATTRI8UTES, ANY-ELEMENT или UNTAGGED. чтобы избежать дезориентации считывателя.

27.3 Действие на результат кодирования

27.3.1    Если тип. к которому применена эта команда кодирования, имеет окончательную команду кодирования ATTRIBUTE. "AttributsName" (который является в этом случае "IdentifierOrModifiedldentifier") "атрибута" "Attribute" (см. 19.3.3) должно быть альтернативой "QualifiedOrUnqualifiedName", как определено в 27.3.3 —27.3.6.

27.3.2    Если тип. к которому применена эта команда кодирования, не имеет окончательной команды кодирования ATTRIBUTE, тогда имя тега включающего элемента (который является TagName’—см. 16.5.1) должно быть альтернативой "QualrledOrUnqualrfiedName". какопределено в 27.3.3—27.3.6.

27.3.3    Альтернативы "k5entifierOrModifiedIdentiRer'* и "QualifiedOrUnqualifiedName" должны использоваться. 'UnprefixedName" в "QualifiedOrUnqualifiedName" должен быть "идентификатором" "identifier* компонента. модифицированного в соответствии с "NewNameOrKeyword" как определено ниже.

27.3.4    Если альтернатива "NewName" будет использоваться, то "UnprefixedName" должен быть заменен ■NewName".

27.3.5    Если альтернатива "Keyword" будет использоваться, то "UnprefixedName" должен быть модифицирован. как определено в подразделах 27.3.5.1 — 27.3.5.4.

27.3.5.1    Если "Keyword"—CAPITALIZED, то. если первый символ "UnprefixedName"— строчная буква, этот символ должен быть заменен прописным эквивалентом, иначе название не затронуто.

27.3.5.2    Если "Keyword" — UNCAPITALIZED, то. если первый символ "UnprefixedName" — прописная буква, этот символ должен быть заменен строчным эквивалентом, иначе название не затронуто.

27.3.5.3    Если ’Keyword”— UPPERCASED. то все символы "UnprefixedName". которые являются строчными буквами, будут заменены их прописными эквивалентами. Другие символы неизменны.

27.3.5.4    Если "Keyword" — LOWERCASED, то все символы "UnprefixedName". которые являются прописными буквами, будут заменень их строчными эквивалентами. Другие символы неизменны.

27.3.6    "QualifiedOrUnqualifiedName" будет именем пространства уточненных имен только в случае, если Туре" имеет окончательную сомацду кодирования NAMESPACE.

28 Команда кодирования NAMESPACE

28.1    Общие положения

28.1.1    ’Namespaoelnstruction':

Namespacelnstruction;:=

NAMESPACE

TargetUst

NamespaceSpedfication ?

NamespaceSpecification::=

AS

QuotedURI

Prefix?

51

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Prefix::*

PREFIX

QuotedNCName

QuotedURI::*

-"* & URI & """

QuotedNCName::*

"""&NCName &......

28.1.2    Продукционное правило "TargetLtst" определено в 13.2.

Примечание — Самое общее использование этой инструкции кодирования — NAMESPACE ALL.

28.1.3    Эта команда кодирования позволяет имени пространства имен (namespace) и рекомендованному префиксу пространства имен (namespace) быть назначенными цели (целям).

28.1.4    Продукционное правило "URI" не определено в настоящем Международном стандарте, но оно состоит из символов, которые идентифицируют Унифицированный Идентификатор Ресурса (Uniform Resource Identifier—URI). Синтаксис (и семантика) URI определены в IETF RFC 2396. и начинаются с имени схемы URI. Для распределения имен постранства имен с командой кодирования NAMESPACE может использоваться любая схема URI.

28.1.5    Если "NamespaceSpecification" отсутствует, то значение по умолчанию с рекомендованным установленным "Prefix" назначается ссылочному модулю "modulereference” и "URI" устанавливается в следующем виде:

а)    схема URI (см. IETF RFC 2396) должна быть urn;

б)    идентификатор пространства имен URN (см. IETF RFC 2141) должен бытьой:

в)    Специфическая Строка Пространства Имен URN (см. IETF RFC 2141) должна быть "Отличительным Идентификатором" "Oefinitiveldentfier” модуля, выраженного как "Значение Идентификатора XML Объекта’ "XMLObjectldentfierValue" (см. IETF RFC 3061).

28.1.6    Пример: При значение идентификатора объекта (tso standard 1564 modules(0) basic(1)) URI был бы строкой символов "urn:<Md:1.0.1564.0.1".

28.1.7    Продукционное правило "NCName" определено в Пространстве имен W3C XML (W3C XML Namespaces), разделе 2. продукционное правило 4. и не будет начинаться с символов, которые являются заглавными "XML".

Примечание — Это требование, предписанное Рекомендацией W3C XML Пространство имен.

28.2    Ограничения

28.2.1    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

28.3    Действие на результат кодирования

28.3.1    Имя уточненного пространства имен (Namespace-qualified) может потребоваться для имени связанного тега, для имени атрибута, или для значения атрибута идентификации типа. Имя уточненного пространства имен требуется, если тип. генерирующий название, является окончательной командой кодирования NAMESPACE.

28.3.2    "QualifiedOrUnqualifiecName":

QualifiedOrUnqualifiedName::*

QualifiedName|

UnqualifiedName

QualifiedName::*

PrefixedName |

UnprefixedName

UnqualifiedName::*

UnprefixedName

PrefixedName::*

DedaredPrefix && UnprefixedName UnprefixedName::* NCName DedaredPrefix::* NCName

28.3.3    Кодирование имени уточненного пространства имен требует:

а) использования альтернативы "ИмяСПрвфиксом" "PrefixedName" для "УточненногоИмени" "QualifiedName" с дополнением х элементам XML добавочных признаков, обеспечивающих декларации постранства имен (какопрвделено в W3C XML Namespaces);

52

ГОСТ Р ИСО/МЭК 8825-4 — 2009

б) использования альтернативы "ИмяБезПрефикса" "UnprefixedName” для "Уточненного Имени” “QualifiedName" с дополнением к элементам XML добавочных признаков, обеспечивающих декларации лостранстеа имен по умолчанию (как определено в W3C XML Namespaces).

28.3.4 Выбор этих двух механизмов и элементов XML. к которым добавляются признаки декларации лостранстеа имен, являются опцией кодера.

Примечание 1 — Рекомендация W3C XML Namespaces определяет, что объявленное по умолчанию пространство имен имеет 8 своей области действия только имя элемента, в котором оно объявлено (и имена дочерних элементов), но не атрибуты элементов или дочерних элементов.

Примечание 2 — Рекомендуется, но не требуется, использование рекомендованного префикса в команде кодирования NAMESPACE.

Примечание 3 — Использование рекомендованного префикса может быть неприемлемым, если команды кодирования NAMESPACE с друтими именами пространства имен namespace, но с теми же самыми рекомендованными префиксами присутствуют в модуле.

29 Команда кодирования PI-OR-COMMENT

29.1    Общие положения

29.1.1    "PlOrCommentlnslruclion".

PiOrCommentlnstruction::=

PI-OR-COMMENT

TargetList

AS

RestrictedCharacterStrngValue Position Position ::=

BEFORE-TAG | BEFORE-VALUE | AFTER-VALUE IAFTER-TAG

29.1.2    Продукционное правило ‘TargetList" определено в 13.2.

29.1.3    Эта команда кодирования вызывает определенные команды обработки XML и/или комментарии. которые будут вставлены перед или после "ExtendedXMLValue" или перед или после связанных тегое.

Примечание — Подраздел 9.2.5 разрешает кодеру (как выбор кодера) вставлять дополнительные XML команды обработки и XML комментарии.

29.1.4 "RestrictedCharacterStiingValue" определен в ИСО/МЭК 8824-1.37.

29.2 Ограничения

29.2.1    Значение "RestrictedCharacterStringValue" должно быть связано с одной или более строками символов, каждая из которых соответствует синтаксису команд обработки XML (Processing Instruction), определенному в W3C XML 1.0.2.6. или синтаксису комментариев XML (Comment), определенному в W3C XML1.0.2.5, и определяет команды обработки и/или комментарии, которые должны быть вставлены в XML документ.

29.22 Тип АСН.1 не должен иметь окончательных команд кодирования UNTAGGED и PI-OR-COMMENT.

29.2.3    Тип этой окончательной команды кодирования не должен иметь окончательных команд кодирования ANY-ATTRIBUTES. ANY-ELEMENT, ATTRIBUTE или UNTAGGED.

29.2.4    В TargetList" не должно быть уточняющей информации.

29.3 Действие на результат кодирования

29.3.1    Если позиция (“Position”) — BEFORE-TAG, то команды обработки и/или комментарии должны быть вставлены перед связанным начальным тегом или тегом пустого элемента. Если начальный тег или тег лустого элемента — начало некоторого включающего "ExtendedXMLValue". тогда любые команды обработки и/или комментарии, вставленные перед этим ‘‘ExtendedXMLValue" (применение BEFORE-VALUE к соответствующему типу), будут предшествовать этим командам обработки и/или комментариям в XML документе.

29.3.2    Если позиция ("Position") — BEFORE-VALUE, то команды обработки и/или комментарии должны быть вставлены в начало "ExtendedXMLValue". Если "ExtendedXMLValue" начинается с тега, который

53

ГОСТ Р ИСО/МЭК 8825-4 — 2009

является связанным начальным гегом некоторых вложенных "ExtendedXMLvalue", тогда любые комам-ды обработки и/или комментарии, вставленные прежде, чем этот связанный начальный тег (применение BEFORE-TAG к соответствующему типу), должны следовать за этими командами обработки и/или комментариями в XML документе.

Примечание — В этом случае содержание связанных тегов никогда не пусто, и атрибут пустого элемента не может использоваться.

29.3.3    Если позиция ("Position")—AFTER-VALUE, то команды обработки и/или комментарии должны быть вставлены в конец "ExtendedKMLValue". Если "ExtendedXMLvalue" заканчивается тегом, который является связанным конечным тегом некоторых вложенных "ExtendedXMLValue", тогда любые команды обработки и/или комментарии, вставленные после связанного конечною тега (применение AFTER-TAG к соответствующему типу), будут предшествовать этим командам обработки и/или комментариям в XML документе.

Примечание — В этом случае содержание связанных тегов никогда не пусто, и тег пустого элемента не может использоваться.

29.3.4    Если позиция ("Position") — AFTER-TAG. то команды обработки и/или комментарии должны быть вставлены после связанного конечного тега или тега пустого элемента. Если конечный тег или тег пустою элемента завершает некоторое приложение "ExtendedXMLValue*. тогда любые команды обработки и/или комментарии должны быть вставлены после этого "ExtendedXMLvalue" (применение AFTER-VALUE к соответствующему типу) и должны следовать за этими командами обработки и/или комментарии в XML документе.

30 Команда кодирования TEXT

30.1    Общие положения

30.1.1    "Textlnstruction":

Text Instruction::^

TEXT TargetList TextToBeUsed ?

TextToBeUsed::=

AS

NewNameOrKeyword

30.1.2    Продукционное правило "TargetList" определено e 13.2.

30.1.3    Цель этой команды кодирования:

а)    boicyiuiвие GLOBAL-DEFAULTS MODIFIED-ENCODINGS живили iь значениям булевскою гима. перечислимого типа, типа строка битов с поименованными битами и целочисленных с поименованными числами, быть закодированными <ак строки символов, а не как теги пустого элемента:

б)    в присутствии GLOBAL-DEFAULTS MODIFIED-ENCODINGS позволить изменять строки символов, которые используются для значений булевских типов, перечислимых типов, строк битов с поименованными битами и целочисленных с поименованными значениями.

30.1.4    "NewNameOrKeyworc" определен в разделе 27. ‘NewName" в "NewNameOrKeyword* будет содержать, по крайней мере, один символ.

30.2 Ограничения

30.2.1    Эта команда кодирования должна быть назначена только на следующие типы с уточняющей информацией, определяющей один или более идентификаторов, используемых в определении типа (true или false для булевского типа):

а)    определение булевского типа:

б)    определение типа строка битов с поименованными битами;

в)    определение перечислимого типа:

г)    определение целочисленного типа с названными значениями.

30.2.2    Окончательные строки символов, используемые для значений типа, которому назначена эта команда кодирования, должны различаться.

30.2.3"NewName" в "NewNameOrKeyword" не должен использоваться, если "Qualifyinglnformation" имеет значение ALL. Ограничение, приведенное в 27.2.3. не применимо к этому использованию "NewNameOrKeyword".

54

ГОСТ Р ИСО/МЭК 8825-4 — 2009

30.2.4    В отсутствие команды кодирования GLOBAL-DEFAULTSMODIFIED-ENCODINGS набор окончательных команд кодирования TEXT для типа не должен производить кодирования текста для некоторых абстрактных значений и кодирования пустых элементов для других абстрактных значений.

Примечание — Если есть команда кодирования GLOBAL-DEFAULTS MOOIFIED-ENCOOINGS. то все кодирования — кодирования текста.

30.2.5    Если команда кодирования TEXT применена к типу строка битов с поименованными битами и "NewName" используется. “NewName" не должно содержать "пробел с переходом" (см. 7.1.5) и не будет начинаться с "0" (DIGIT ZERO) или '1" (DIGIT ONE).

30.2.6    Тип с этой окончательной командой кодирования не должен иметь окончательной команды кодирования USE-NUMBER.

Примечание — Нижеперечисленные окончательные команды кодирования не должны сочетаться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. ANY-ELEMENT. 8ASE64. DECIMAL. ЕМ BED-VALUES. LIST. USE-NIL. USEOROER. USE-ONAME. USE-TYPE, USE-UNION. WHITESPACE.

30.2.7    "Qualifyinglnformation" должна всегда присутствовать.

30.3 Действие на результат кодирования

30.3.1    Один из следующих пяти подразделов (30.3.2 — 30.3.6) применяется.

30.3.2    Если тип — не строке битов с поименованными битами и "TextToBeUsed" отсутствует, результатом кодирования "ExtendedXMLValue" каждого значения, на которую ссылается уточняющая информация для этой команды, должна быть строка символов, содержащая символы идентификатора (или будет true или false в случае булевских типов). Для целочисленных типов с поименованными значениями должны быть ислол»эованы идентификаторы или соответствующие значения (как выбор кодера).

30.3.3    Если тип—строка битов с поименованными битами и 'TextToBeUsed" отсутствует, строка символов. идентичная идентификатору бита должна представлять бит. когда это установлено. Каждое абстрактное значение должно быть закодировано каксцелление (возможно пустое) этих строк символов для всех битое, которые установлены и разделены "пробелом с переходом" (см. 7.1.5).

30.3.4    Если тип — не строка битов с поименованными битами и "TextToBeUsed" присутствует, то следующие подразделы применяются (ноем. 30.3.5).

30.3.4.1    Если применяется альтернатива "NewName". строка символов использованная для

кодирования значения, идентифицированного "Qualifyinglnformation'.—"NewName”. Каждое появление символов *>" и    в "NewName" будет замененоодной из управляющих последовательностей "&IL". "&at:".

и "&атр;" соответственно, или управляющей последовательностью формы "&#п;" или "&#хп:", определенной в ИСО/МЭК 8824-1.11.15.8.

30.3.4.2    Если применяется альтернатива "Keyword", строка символов, использованная для кодирования значений типа. — имя идентификатора, модифицированное, как определено ниже.

30.3.4.3    Если "Keyword"» CAPITALIZED, то первый символ имени заменяется заглавным эквивалентом. иначе имя не меняется.

30.3.4.4    Если "Keyword" — UNCAPITALIZED, то имя неизменно.

30.3.4.5    Если ’Keyword" — UPPERCASED. то все символы имени, которые являются строчными буквами. заменяются их прописными эквивалентами. Другие символы неизменны.

30.3.4.6    Если "Keyword" — LOWERCASED, то все символы имени, которые являются прописными буквами, заменяются их строчными эквивалентами. Другие символы неизменны.

30.3.5    Если тип — целочисленный тип с поименованными значениями, строки символов, созданные с применением подразделов 30.3.4.1 — 30.3.4.6, будут использоваться вместо идентификаторов. Строки символов или соответствующие значения должны использоваться (как выбор кодера).

30.3.6    Если тип—строка битов с поименованными битами и "TextToBeUsed" присутствует, подразделы 30.3.4.1 — 30.3.4.6 будут применены к каждому идентификатору бита, чтобы создать строку символов, которая представляет бит. когда он установлен. Значение строки битое должно быть закодировано как сцепление (возможно пустое) этих строк символов для всех битое, которые установлены и разделены "пробелом с переходом" (см. 7.1.5).

55

ГОСТ Р ИСО/МЭК 8825-4 — 2009

31 Команда кодирования UNTAGGED

31.1    Общие положения

31.1.1    "Untaggedtnstruction’:

Untaggedlnstruction::=

UNTAGGED

TargetList

31.1.2    Продукционное правило "TargetList" определено е 13.2.

31.1.3    (Инструкция) неофициальное описание аффекта UNTAGGED на конструкторы АСН.1 приведено в приложении Б.

В этом разделе дано вводное руководство, иллюстрирующее некоторые эффекты использования UNTAGGED.

31.1.4    Использованная (возможно, неоднократной во вложеком виде} в соединении с последовательностью. набором, выбором, последовательностью-из и набором-из позволяет определять почти произвольный образец элементов XML. В результате удаляется начальный тег XML. предшествующий значению "ExtendedXMLVatue" в “Туре", к которому это значение применено, и конечный тег XML. который следует за этим значением. Остаются элементы XML, обычно содержавшиеся между этими тегами, становящимися частичным XML содержанием.

31.1.5    Данная команда, примененная к типу выбора как компоненту последовательности или набора, определяет включение в месте последовательности (набора) точно одной из альтернатив типа выбора (или ни одной, если типом выбора является OPTIONAL компонент). Идентификатор типа выбора не появляется в кодировании. Некоторые альтернативы для типа выбора могут быть XML элементами, но другие могут быть частичным XML контентом, содержащим почти произвольный шаблон множественных элементов в результате использоеаниия UNTAGGED при определении тех альтернатив.

31.1.6    Примененная к типу пэследовательность-иэ как компоненту последовательности или набора, она определяет включение в месте последовательности (набора) указанного или произвольного числа повторений компонента последсеательность-из (которые могут создать единичный XML элемент, или создать частичный XML контент, если он сам является UNTAGGED).

31.1.7    Примененная к типу последовательности (или набора) или к типу последоеательность-из (или набор-иэ) как альтернатива типа выбора, она позволяет альтернативе состоять из частичного XML контента, который является "ExtendedXMLValue" последовательности, набора, последовательности-из или набора-иэ.

31.1.8    Отдельная функция UNTAGGED, будучи примененной к типу посимвольно-кодируемый. должна позволить символьному контакту появиться в кодировании последовательности без тегов вокруг этого контента. Это использование ограничено компонентами последовательности, которые сами не являются негегоеыми.

Примечание — Это ограничение необходимо, чтобы упростить правила, что обеспечит легкое и однозначное декодирование.

31.2 Ограничения

31.2.1    Во всех случаях использования включающий тип должен быть типом последовательности, набора, выбора, последовательности-из или набора-из.

31.2.2    Если тип будет посимвольно-кодируемым. то включающий тип должен быть типом последовательности без окончательной команды кодирования UNTAGGED. Тип не должен быть отмечен OPTIONAL или DEFAULT. Все другие компоненты включающего типа последовательности (если таковые существуют) должны иметь окончательные команды кодирования ATTRIBUTE или ANY-ATTRIBUTES.

31.2.3    Если тип не будет типом посимвольно-кодируемым. то это должен быть тип последовательности, набора, выбора, поспедоеатепьности-иэ. набора-иэ. строки октетов или строки битов с содержащимся "Туре" без ENCODED BY или открытого типа.

Примечание — Приложение Б содержит руководство, которое может гарантировать, что использование этой инструкции кодирования не приводит к двусмысленности.

31.2.4    Эта команда кодирования не должна быть применена к типу, который имеет лустой результат кодирования "ExtendedXMLValue"для одного из его абстрактных значений, если тип используется как:

а)    компонент типа последовательности или набора с OPTIONAL или DEFAULT;

б)    компонент типа последовательности-из или набора-иэ:

56

ГОСТ Р ИСО/МЭК 8825-4 — 2009

а) альтернатива для типа выбора. если другая альтернатива для того же самого типа выбора имеет пустой результат кодирования "ExtendedXMLValue" для одного из его абстрактных значений и имеет окончательную команду кодирования UNTAGGED.

Пример; тип, который является типом последовательности со всеми его OPTIONAL компонентами. имеет абстрактное значение с пустым результатом кодирования "ExtendedXMLValue". как и тип последовательность-из, где нулевые повторения разрешены.

31.2.5    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

31.2.6    Тип с этой окончательной командой кодирования не должен иметь ни одной из перечисленных окончательных команд кодирования ANY-ATTRIBUTE. AN Y-ELEMENT. ATTRIBUTE. DEFAULT-FOR-EMPTY. EMBED-VALUES. PI-OR-COMMENT, USE-NIL. USEORDER или USE-TYPE.

31.2.7    В "TargetList" не должно быть никакой уточняющей информации.

31.3 Действие на результат кодирования

31.3.1    Если тип закодирован как тип высшего уровня, то эта команда кодирования должна игнорироваться.

31.3.2    Если включающий тип» тип выбора. “ExtendedXMLChoiceValue" {см. 16.5.1) для этой альтернативы для вложенного типа должен быть "ExtendedXMLValue' альтернативы (вторая альтернатива в продукционных правилах "ExtendedXMLCftoiceValue*).

Примечание — "ExtendedXMLValue* для альтернативы может быть единственным XML элементом или может быть частичным XML контентом, состоящим из множественных XML элементов.

31.3.3Если включающий тип»тип последовательности или набора. "ExtendedXMLNamedValue" (см. 16.6) для этого компонента апокенного типа будет заменен на "ExtendedXMLValue" компонента (вторая альтернатива в продукционных правилах "ExtendedXMLNamedValue’).

Примечание — Этот "ExtendedXMLValue" может быть единственным XML элементом или может быть частичным XML контентом, состоящим из множественных XML элементов.

31.3.4    Если вложенный тип — тип последовательносги-из или набора-иэ. "ExtendedXMLDelimrtedltem" (если используется — см. 16.7) кахдого повторения должно быть заменено "ExtendedXMLValue", вложенным в "ExtendedXMLDelimitedltem"

Примечание 1 — Невозможно использовать UNTAGGED. если только GLOBAL-DEFAULTS MODIFIED-ENCODtNGS не была включена в раздел управления кодированием, когда "ExtendedXMLValueLisr не разрешается (см. 17.7.2}.

Примечание 2 — Этот "ExtendedXMLValue" может быть единственным XML элементом или может быть 'юстн-мю1м XML контентом, состоящем иэ множественных XML эломонтоо.

31.3.5    Если тип » строка ок~етов или строка битое с содержащимся "Туре" без ENCODED BY. или открытым типом, “ExtendedXMLValue" должен быть "ExtendedXMLTypedValue" (не "xmlhstring" или "XMLBase64String").

Примечание — Такие типы не соответствуют определению посимвольно-кодируемого типа (см. 3.2.2.2). Подраздел 31.3.5 подразумевает, что когда они имеют окончательную команду кодирования UNTAGGED. они всегда кодируются как XML элементы.

32 Команда кодирования USE-NIL

32.1    Общие положения

32.1.1    "UseNillnstruction":

UseNillnstruction::=

USE-NIL

TargetList

32.1.2    Продукционное правило TargetList" определено в 13.2.

32.1.3    Эта команда кодирования обеспечивает оптимизированное EXTENDED-XER кодирование для последовательности с единственным OPTIONAL компонентом, все другие компоненты которого (если они существуют) имеют окончательную команду кодирования ATTRIBUTE или ANY-ATTRIBUTE. которой, возможно. предшествует начальный тип последовательности-иэ. поддерживающий USE-ORDER (см. 34).

57

ГОСТ Р ИСО/МЭК 8825-4 — 2009

32.1.4    В отсутствие этой команды кодирования опциональный компонент может быть закодирован следующим образом:

а)    (вариант «не пропущенный, но пустой»), если компонент присутствует в абстрактном значении с абстрактным значением, которое имеет пустой результат кодирования "ExtendedXMLValue". тогда "ExtendedXMLNametfValue" для компонента присутствует в XML документе обычно как тег пустого элемента (или со смежными начальным и конечным тегами):

б)    (вариант «лролущенх). если компонент отсутствует в абстрактном значении, "Extended ХМ LNamedValue’ не представлен:

в)    (вариант «не пропущенный и не пустой»), если компонент присутствует в абстрактном значении с абстрактным значением, которое не имеет пустого результата кодирования, тогда "ExtendedXMLNamedValue" для компонента представлен с непустым содержанием.

32.1.5    Использование USE-NIL требует, чтобы отсутствие дополнительного компонента (32.1.4 б) было сообщено включением нулевого идентификационного атрибута идентификации с именем "nil” и значением "true" или "Г.

32.1.6    В случаях 32.1.4 а и б. нулевой признак идентификации может быть опущен (как выбор кодера) или он может присутствовать со зючением "false’ или ”0". Опциональный компонент должен быть закодирован исключением связанных тегов.

32.2 Ограничения

32.2.1    Команда кодирования USE-NIL должна быть только назначена для типа последовательность, который имеет OPTIONAL компонент без окончательной команды кодирования ATTRIBUTE, все другие компоненты типа последовательность, если таковые имеются, должны иметь окончательную команду кодирования ATTRIBUTE или ANY-ATTRIBUTE или должны быть компонентами послед оеательность-иэ. поддерживающими команды кодирования USE-ORDER или EMBED-VALUE, которые являются также окончательными командами кодирования для типа последовательность.

32.2.2    Тип последовательность не должен иметь окончательной команды кодирования UNTAGGED.

32.2.3    Компонент OPTIONAL не должен иметь ни одной окончательной команды кодирования ANY-ELEMENT. ANY-ATTRIBUTE. DEFAULT-FOR-EMPTY, EMBED-VALUE. PI-OR-COMMENT. UNTAGGED. USE-NIL. USE-ORDER или USETYPE.

Примечание — Кроме UNTAGGED. упомянутые выше команды кодирования не могут быть применены к типу, который имеет окончательную команду кодирования UNTAGGED.

32.2.4    Если компонент OPTIONAL не посимвольно кодируемого типа, то это должен быть тип последовательность, набор, выбор, последовательное!ь-из, набор-из. открытый тип или тип строка октетов, или строка битов, содержащая тип" lype" и без fcNUOUbL) BY.

32.2.5    Если компонент OPTIONAL будет типом последовательность, то ни один из его компонентов не должен иметь окончательной команды кодирования ATTRIBUTE или ANY-ATTRIBUTE.

32.2.6    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

32.2.7    Тип с этой окончательной командой кодирования не должен иметь ни одной из окончательных команд кодирования UNTAGGED или USE-QNAME.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не должны появляться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY ATTRIBUTES. ANY-ELEMENT. ATTRIBUTE. BASE64. DECIMAL. LIST. TEXT. USENUMBER. USE-TYPE. USE-UNION. WHITESPACE.

32.2.8    8 "TargetList" не должно быть уточняющей информации.

32.3 Действие на результат кодирования

32.3.1    Если компонент OPTIONAL отсутствует (32.1.4 б), то нулевой атрибут идентификации пустого множества с названием "nil" и значением "true" или М1" должен быть добавлен к "AttributeList" включающего элемента.

32.3.2    Если компонент OPTIONAL присутствует (32.1.4 а и в), атрибут идентификации пустого может быть опущен (как выбор кодера) или добавлен к ’AttributeList" включающего элемента со значением "false’ или "0". Опциональный компонент должен быть закодирован, опуская связанные теги.

58

ГОСТ Р ИСО/МЭК 8825-4 — 2009

33 Команда кодирования USE-NUMBER

33.1    Общие положения

33.1.1    "UseNumberlnstructiOO":

UseNumberlnstruction::=

USE-NUMBER

TargetList

33.1.2    Продукционное правило ’TargetList" определено в 13.2.

33.1.3    Назначение этой команды кодирования состоит в том. чтобы модифицировать результат кодирования перечислимого типа так. чтобы числа в перечислениях "NamedNumber" использовались вместо имен.

33.2 Ограничения

33.2.1    Эта команда кодирования должна игнорироваться, если только она не применяется к перечисли момутилу.

33.2.2    Тип с этой окончательной командой кодирования не должен также иметь окончательной команды кодирования TEXT.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не должны появляться с этой окончатегъной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. ANY-ELEMENT. BASE64. DECIMAL. EMBED-VALUES. LIST. USE-NIL. USEORDER. USE-QNAME. USE-TYPE. USE-UNION. WHITESPACE

33.2.3    В TargetList” не должно быть уточняющей информации.

33.3    Действие на результат кодирования

33.3.1    "ExtendedXMLEnumeratedValuc":

ExtendedXMLEnumeratedValue::=

EmptyElementEnumerated | TextEnumerated I XMLSignedNumber

33.3.2    "EmptyElementEnumerated" и TextEnumerated” определены e ИСО/МЭК 8824-1.19.8 и 19.9.

33.3.3    "XMLSignedNumber” определено в ИСО/МЭК 8824-1.18.9 и 18.12. и оно должно быть числом в перечислении “NamedNumber”.

33.3.4    Альтернатива "XMLSignedNumber* должна использоваться, только и если только перечислимый тип имеет эту окончательную команду кодирования.

Примечание — Если GLCBAL-DEFAULTS MODIFIED-ENCODINGS присутствует в разделе управления кодированием XER. но перечислимый тип не имеет этой окончательной команды кодирования, то используется вторая альтерната. Если а разделе управления кодированием XER нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS. то используется первая альтернатива.

34 Команда кодирования USE-ORDER

34.1    Общие положения

34.1.1    "UseOrdednstructJon":

UseOrderlnstruction;:=

USE-ORDER

TargetList

34.1.2    Продукционное правило TargetList” определено в 13.2.

34.1.3    Назначение этой команды кодирования состоите том. чтобы позволить оптимизировать результат EXTENDED-XER кодирования типа последовательность, е котором есть компонент последо-вательность-из, определяющий семантический порядок значений следующих компонентов типа последовательность. которые кодируется как элементы. Это может также использоваться, если есть окончательная команда кодирования USE-NIL (см. раздел 32) и единичный компонент OPTIONAL, необходимый для использование USE-NIL в последовательности с целью определения семантического порядка компонентов той последовательности OPTIONAL.

34.1.4    Компонент последовательности-из. который определяет семантический порядок, это — первый компонент последовательности, если только нет также компонента последовательности-из, поддерживающего окончательную команду кодирования EM8ED-VALUES. применяемую к типу

59

ГОСТ Р ИСО/МЭК 8825-4 — 2009

последовательность. В этом случае компонент последовательности-из. поддерживающий команду кодирования EMBED-VALUES, предшествует компоненту последовательности-из. поддерживающему команду кодирования USE-ORDER.

34.1.5 Компонент, определяющий семантический порядок, обязан быть типа последовательность-из с компонентом перечислимого типа. Этот тип последовательности-из и его семантика зависят от присутствия или отсутствия команды кодирования USE-NIL, применяемой к типу последовательность, как описано в следующих подпунктах.

34.1.5.1    Если нет окончательной команды кодирования USE-NIL. имена перечислений тождественны идентификаторам компонентов АСН.1 типа последовательность. Порядок перечислений в каждом абстрактном значении определяет семантический порядок значений последующих компонентов типа последовательность, которые присутствуют в результате кодирования.

34.1.5.2    Если естьокончатегъкая команда кодирования USE-NIL. то OPTIONAL компонент, необходимый при использовании USE-NIL. обязан быть типа последовательность (скажем. В), и имена перечислений тождественны идентификаторам компонентов АСН. 1 типа В последовательность. Порядок перечислений в каждой абстрактном значении определяет семантический порядок значений компонентов типа В последовательность. которые присутствуют в результате кодирования.

34.2    Ограничения

34.2.1    Эта команда кодирования должка быть назначена только типу последовательность. Тил последовательность должен содержать компонент типа последовательность-из (скажем, тип А) с компонентом перечислимого типа. Если тип последовательность не имеет также окончательных команд кодирования EMBED-VALUES. тогда тип А должен быть первым компонентом, а в противном случае— вторым. Если нет окончательной команды кодирования USE-NIL. тип последовательность должен также иметь хотя бы один компонент без окончательных команд кодирования ATTRIBUTE или ANY-ATTRIBUTES (компонент, не являющийся атрибутом). Если есть окончательная команда кодирования USE-NIL, то OPTIONAL компонент, поддерживающий USE-NIL. будет типа последовательность, и должен иметь, по крайней мере, один компонент.

34.2.2    Перечислимый тип допжек иметь идентификаторы, которые зависят от присутствия или отсутствия окончательной команды кодирования USE-NIL. применяемой ктипу последовательность с командой кодирования USE-ORDER, как определено в следующих подпунктах.

34.2.2.1    Если нет окончательной команды кодирования USE-NIL. то перечислимый тип должен иметь идентификаторы для перечисления, которые находятся во взаимно-однозначном соответствии (и находятся в том же текстовом порядке) с идентификаторами следующих компонентов последовательности, не являющихся атрибутами (см. 34.2.1). Тип последовательность-из должен быть ограничен так. чтобы каждое абстрактное значение содержало *очноодин идентификатор для каждого компонента последовательности, не являющегося атрибутом, который присутствует в абстрактном значении.

34.2.2.2    Если есть окончательная команда кодирования USE-NIL. то перечислимый тип должен иметь идентификаторы для перечислений, которые находятся во взаимно-однозначном соответствии (и находятся в том же текстовом порядке) с идентификаторами компонентов компонента OPTIONAL в типе последовательность. Тип последовательность-из должен быть ограничен так. чтобы каждое абстрактное значение содержало точно один идентификатор для каждого OPTIONAL компонента последовательности, который присутствует в абстрактном значении.

Примечание — Рекомендуется ограничение на тип последовательность выражать как:

(CONSTRAINED BY {Л Долженсоотвегствоаать ИСО/МЭК 8825-1. часть 35 7})

34.2.2.3    "Enumerationltem”s в перечислениях все должны быть «Идентификаторами» или «Поимено-ваннымиЧислами» ("NamedNumber”) со значения 0 для первой позиции "Enumerationlteirf. 1 — для второй, и так далее, до последней позиции 'Enumerationltem".

34.2.3    Тип последовательность-из не должен быть отмечен OPTIONAL или DEFAULT.

34.2.4    Следующие компоненты последовательности (если нет окончательной команды кодирования USE-NIL) и компонент OPTIONAL последовательности (если есть окончательная команда кодирования USE-NIL) не должны быть отмечены DEFAULT, если только они не имеют окончательной команды кодирования ATTRIBUTE.

34.2.5    Никакой компонент любой последовательности с этой окончательной командой кодирования или OPTIONAL последовательности (когда есть окончательная команда кодирования USE-NIL), не должен иметь окончательной команды кодирования UNTAGGED. независимо от того, является ли тип этого компонента посимвольно кодируемым или нет.

60

ГОСТ Р ИСО/МЭК 8825-4 — 2009

34.2.6    Никакой компонент последовательности с этой окончательной командой кодирования не должен иметь окончательной командь кодирования ANY-ELEMENT.

34.2.7    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

34.2.8    Тип с этой окончательной командой кодирования не должен иметь окончательной команды кодирования UNTAGGED.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться с этой окончательной ксмандой кодирования потому, что их применение к этому типу запрещено: ANY-ATTR1BUTES, ANY-ELEMENT. ATTRIBUTE. BASE64, DECIMAL. LIST. TEXT. USENUMBER. USE-QNAME. USE-TYPE, USE-UNION. WHITESPACE.

34.2.9    В "TargetList" не должно быть уточняющей информации.

34.3 Действие на результат кодирования

34.3.1    Тип послсдоеательность-нэ с перечислимым компонентом не должен кодироваться непосредственно.

34.3.2    Кодер должен закодировать семантику этого типа (семантический порядок компонентов последовательности или компонентов последовательности OPTIONAL), кодируя компоненты, которые кодируются как элементы е порядке, определенном типом последоаательностъ-иэ с перечислимым компонентом. Декодер должен возвратить значение компонента последовательность-иэ. используя порядок кодируемых элементов.

35 Команда кодирования USE-QNAME

35.1    Общие положения

35.1.1    "UseQNamelnstrucdon’:

UseQNamelnstruction::=

USE-QNAME

TargetList

35.1.2    Продукционное правило TargetList" определено в 13.2.

35.1.3    Назначение этой команды кодирования состоит в том. чтобы модифицировать результат кодирования типа последовательность, каждое из значений которого определяет опциональное имя постран-ства имен (URI) и имя. не снабженное префиксом, так. что оно кодируется как имя XML, ограниченное пространством имен, или как неограниченное имя.

Примечание — Это обуславливается, поскогъку такой вариант является доступным в других нотациях схемы. Пример типа последовательность, к которому это может быть применено — тип QName. определенный в ИСО/МЭК 8825-5.

35.1.4    Если опциональный компонент присутствует в абстрактном значении типа последовательность, то это абстрактное значение представляет имя. ограниченное пространством имен. Если дополнительный компонент отсутствует, тип последовательности представляет неограниченное имя.

35.2 Ограничения

35.2.1    Эта команда кодирования должна быть назначена последовательности с точно двумя компонентами. оба должны быть типа UTF8String. Первый компонент должен быть OPTIONAL.

35.2.2    Первый компонент долкен быть ограничен, чтобы представить URJ (см. IETF RFC 2396). Второй компонент должен быть ограничен, чтобы содержать "NCName". как определено в W3C XML Namespaces, разделе 2, продукционное правило4. и не начинаться с символов, которые в верхнем регистре представляют собой "XML".

35.2.3    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

35.2.4    Тип с этой окончательной командой кодирования не должен иметь окончательной команды кодирования USE-NIL.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не должны появляться с этой окончательной ксмандой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. ANY-ELEMENT. EASE64. DECIMAL. EMBED-VALUES. LIST. TEXT. USENUMBER. USE-ORDER. USE-TYPE. USE-UNION. WHITESPACE.

35.2.5    В "TargetList" не должно быть никакой уточняющей информации.

61

ГОСТ Р ИСО/МЭК 88254 — 2009

35.3 Действие на результат кодирования

35.3.1    Эта команда кодирования, примененная к типу, если опциональный компонент присутствует, требует, чтобы декларация пространства имен (или декларация пространства имен по умолчанию) находи* лась в области применения для атрибута значения или контента элемента, который кодирует значение этого типа в соответствии с разделом 28. Значение атрибута или контент элемента тогда кодируются, как определено для имени, ограниченного постранством имен в разделе 28.

35.3.2    Если опциональный компонент отсутствует, то декларация пространства имен по умолчанию не должна быть в области применения для атрибута значения или контента элемента, который кодирует значение этого типа.

36 Команда кодирования USE-TYPE

36.1    Общие положения

36.1.1    4JseTypelnstruction":

UseTypelnstruction::=

USE-TYPE

TargetList

36.1.2    Продукционное правило "TargetList" определено е 13.2.

36.1.3    Эта команда кодирования оптимизирует EXTENDED-XER кодирование типа выбора. Атрибут идентификации типа должен быть закодирован в включающем элементе, чтобы идентифицировать альтернативу. которая была закодирована (если только это — не первая альтернатива), и удаление начального и конечного тегов результата кодирования альтернатив.

36.1.4    Атрибут идентификации типа идентифицирует тип XML элемента. Необходимо, чтобы имя атрибута было именем 'типа" ("type") иг управляющего пространства имен (см. 15.9) и его значение идентифицировало бы альтернативу типа выбора, к которому эта команда кодирования применена (это обеспечивает альтернативное определение для типа выбора).

36.2 Ограничения

36.2.1    Тип, которому назначена USE-TYPE, должен быть типом выбора без окончательной команды кодирования UNTAGGED.

36.2.2    Ни одна из альтернатив для типа выбора не должна иметь окончательную команду кодирования UNTAGGED.

36.2.3    Ни одна из альтернатив типа выбора не должна быть сама типом выбора с окончательной командой кодирования USE-TYPE.

Примечание — Плна или fin поя альтернатив для типа awfinpa могут Амп. типами выбора г. паомчятялк-ной командой кодирования USE-UNION, кодирующим.

36.2.4    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

36.2.5    Тил с этой окончательной командой кодирования не должен иметь ни одной из окончательных команд кодирования UNTAGGED или USE-UNION.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не должны появляться с этой окончательной командой кодирования, потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. 4NY-ELEMENT, ATTRIBUTE. BASE64. DECIMAL. DEFAULT-FOR-EMPTY. EMBED-VALUES. LIST. TEXT. USE-NIL. USE-NUMBER. USE-ORDER. USE-ONAME. WHITESPACE.

36.2.6    8 TargetList" не должно быть уточняющей информации.

36.3 Действие на результат кодирования

36.3.1    Если кодируемая альтернатива выбора не является первой альтернативой этого выбора, то атрибут идентификации типа (см. 36.3.3 и 36.3.4} должен быть добавлен к *'Attributet_isf * включающего элемента, если 36.3.8 не применяется.

36.3.2    Если кодируемая альтернатива выбора является первой альтернативой этого выбора, атрибут идентификации типа может быть добавлен или опущен как опция кодера, если 36.3.8 не применяется.

Зб.З.ЗАтрибут идентификации типа должен быть экземпляром продукционного правила "Attribute’ (см. 19.3.3) с "ControlAttributeName" пространства имен ограниченного использования (см. 19.3.5) “типа" ("type") из управляющего простргнства имен (см. 15.9).

62

ГОСТ Р ИСО/МЭК 8825-4 — 2009

36.3.4    Знамение атрибута идентификации типа должно быть идентификатором выбранной альтернативы. возможно модифицирован ой в соответствии с любой окончательной командой кодирования NAME или NAMESPACE.

36.3.5    Если нет атрибута идентификации типа, представленного в результате кодирования типа с этой окончательной командой кодирования, декодер должен предположить, что представлена первая альтернатива выбора.

36.3.6    Присутствие атрибута идентификации типа с непредвиденным значением не должно приводить к ошибке декодирования. Сталкиваясь с таким атрибутом в результате кодирования, декодер должен предположить, что была идентифицирована первая альтернатива выбора, и может проигнорировать атрибут идентификации типа (или передать его приложению). Кроме того, в таких случаях декодер может проигнорировать (или передать приложению) любые другие непредвиденные атрибуты и любые непредвиденные дочерние элементы, встречающиеся после всех ожидаемых дочерних элементов в альтернативе "ExtendedXMLValue".

36.3.7    Все "Атрибуты" ("Attributed), которые были бы иначе в "AttnbuteUst" "Extended XMLChorceValue*. должны быть добавлены к "AttnbuteList" включающего элемента и "ExtendedXMLChoiceValue" типа выбора должно быть заменено "ExtendedXMLValue" в "ExtendedXMLChoiceValue'.

36.3.8    Если одна или более альтернатив типа выбора с окончательной командой кодирования USE-TYPE относятся к типу выбора с окончательной командой кодирования USE-UNION, атрибут идентификации типа как может опция кодера идентифицировать одну из альтернатив типа выбора с окончательной командой кодирования USE-UNION вместо альтернативы типа выбора с окончательной командой кодирования USE-TYPE.

37 Команда кодирования USE-UNION

37.1    Общие положения

37.1.1    "UseUnionlnstruction":

UseUnionlnstruction:;=

USE-UNION

TargetList

37.1.2    Продукционное правило "TargetList" определено в 13.2.

37.1.3    Эта команда кодирования оптимизирует результат кодирования типа выбор в тех случаях, когда результат кодирования абстрактных значений каждой альтернативы существенно отличается от результата кодирования абстрактных значений других альтернатив для декодера, определяющего абстрактные значения, представленные анализом кодирования.

37.1.4    Если тип выбора с окончательной командой кодирования USE-UNION не имеет окончательных команд кодирования ATTRIBUTE или UNTAGGEO. тогда эта команда кодирования может привести к вставке атрибута идентификации типа в включающий элемент, чтобы идентифицировать альтернативу, которая была закодирована. Если тип выбора имеет окончательную команду кодирования ATTRIBUTE или UNTAGGED. или является компонентом типа поспвдоватепьность-иэ или набор-из type командой кодирования UST. вставка атрибута идентификации типа невозможна.

37.1.5    Эта команда кодирования вызывает удаление начального и конечного тегов результата кодирования альтернативы.

37.2 Ограничения

37.2.1    Тип с окончательной командой кодирования USE-UNION должен быть типом выбора.

37.2.2    Все альтернативы типа выбора должны быть посимвольно кодируемыми типами, но не должны быть типами выбора с окончателы-ой командой кодирования USE-UNION.

37.2.3    Если тип выбора имеет окончательную команду кодирования ATTRIBUTE или UNTAGGED или используется в определении типа как компонент типа последовательность-из или набор-из с окончательной командой кодирования LIST, альтернативы типа выбора должны быть ограничены так. чтобы для любой альтернативы все ее абстрактные значения имели, по крайней мере, один результат кодирования (ее "ExtendedXMLValue"), который отличается от всех разрешенных результатов кодирования всех предшествующих по тексту альтернатив.

Примечание — Это требование обусловлено невозможностью вставить атрибут идентификации типа, определяющий агътврнативу. которая была выбрана. Без этого требования кодирование не было бы однозначным.

63

ГОСТ Р ИСО/МЭК 8825-4 — 2009

37.2.4    В следующих двух подразделах термин "identifier" означает: идентификатор (возможно модифицирований в соответствии с любой окончательной командой кодирования NAME and NAMESPACE) альтернативы (типа выбора).

37.2.5    Если тип выбора (скажем, тип U). кодируется как альтернатива включающего типа выбора (скажем, типа Е). с окончательной командой кодирования USE-TYPE и идентификатор одной из альтернатив Е тождествен идентификатору одной из альтернатив U. тогда каждое абстрактное значение этой альтернативы U должно иметь по крайней мере один результат кодирования, который отличается от всех результатов кодирования предшествующих по тексту альтернатив U.

Примечание — Это требование обусловлено невозможностью идентифицировать агътернативу U. так как идентификатор в атрибуте идентификации типа для Е просто идентифицировал бы весь U.

37.2.6    Если тип выбора (скажем. U1) кодируется как альтернатива включающего типа выбора (скажем, типа Е) с окончательной (омандой кодирования USE-TYPE и Е содержит другой тип выбора (скажем. U2) с командой кодирования USE-UNION, которая следует по тексту за U1 в Е. и идентификатор любой из альтернатив U2 тождествен одному из идентификаторов U1. тогда каждое абстрактное значение этой альтернативы U2 должно иметь, по крайней мере, один результат кодирования, который отличается от всех результатов кодирования предшествующих по тексту альтернатив U1.

Примечание — Это требование обусловлено невозможностью идентифицировать альтернативу U2. так как идентификатор в атрибуте идентификации типа для Е идентифицировал бы альтернативу в U1.

37.2.7    Эта команда кодирования не должна быть назначена, если нет команды кодирования GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.

37.2.8    Тип с этой окончательной командой кодирования не должен также иметь окончательной командой кодирования USE-TYPE.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTR1BUTES. ANY-ELEMENT. BASE64. DECIMAL. EMBED-VALUES. LIST. TEXT. USEN1L. USE-NUMBER. USE-ORDER. USE-ONAME. WHITESPACE.

37.2.9    8 TargetList" не должно быть уточняющей информации.

37.3 Действие на результат кодирования

37.3.1    Если тип выбора не имеет окончательной командой кодирования ATTRIBUTE или UNTAGGED и не закодирован как компонент типа последоеательность-иэ или набор-изс окончательной командой кодирования LIST, тогда атрибут идентификации типа может быть добавлен как опция кодера к "AttributeList” включающего элемента (ноем. 37.3.8).

Примечание — Сели тлп выбора закодирован как альтернатива выбора о командой кодирования USE-TYPE, атрибут идентификации типа, определенный командой кодирования USE-UNION, может использоваться вместо атрибута идентификации типа, определенного командой кодирования USE-TYPE (см. 36.3.8).

37.3.2    Если каждый возможный результат кодирования кодируемого абстрактного значения идентичен одному из результатов кодирования абстрактного значения предшествующей по тексту альтернативы, то должен быть добавлен атрибут идентификации типа.

Примечание — Подраздел 37.3.2 отменяет опцию кодера подраздела 37.3.1 и делает дополнение атрибута идентификации типа обязательным. Ограничения, определенные е 37.2.4 к 37.2.6 гарантируют, что это может произойти, только когда тип выбора закодирован как элемент и когда никакая двусмысленность из-за идентичных идентификаторов невошожна.

37.3.3    Если тип выбора имеет окончательную команду кодирования ATTRIBUTE или UNTAGGED. или его включающий тип является типом последовательность-из или набор-из с окончательной командой кодирования LIST, никакой атрибут идентификации типа не может быть вставлен ни в один элемент. 8 случае сценариев, описанных в 37.2.4—372.6. атрибут идентификации типа не может быть вставлен для точной идентификации некоторых альтернатив U или U2. Декодеры должны поэтому полагаться на условия

37.2.4 — 37.2.6 для определения абстрактного значения, которое было закодировано.

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

64

ГОСТ Р ИСО/МЭК 8825-4 — 2009

37.3.4    Атрибут идентификации типа должен быть экземпляром продукционного правила''Attribute" (см. 19.3.3) с "ControlAttributeName" пространства имен ограниченного использования (см. 19.3.5) «типа» ("type") из управляющего пространства имен (см. 15.9).

37.3.5    Значение атрибута иде<тификации типа должно быть идентификатором выбранной альтернативы. возможно, модифицированной в соответствии с любой окончательной командой кодирования NAME и NAMESPACE.

37.3.6    Все "Атрибуты" ("Attributed), которые были бы иначе в "Attnbutebst" "ExtendedХМLChoceValue', должны быть добавлены к "AttributeList" включающего элемента, и "ExtendedXMLChoiceValue" типа выбора должно быть заменено “ExtendedXMLValue" в "ExtendedXMLCho«ce\fehie’.

37.3.7    "ExtendedXMLValue" посимвольно кодируемого типа должно быть одним из результатов кодирования. которое не содержит любые XML теги.

Примечание — Это может ограничить опции кодера.

37.3.8    Если альтернатива типа выбора имеет окончательную команду кодирования NAME AS "". никакой атрибут идентификации типа не должен быть добавлен для этой альтернативы.

38 Команда кодирования WHITESPACE

38.1    Общие положения

38.1.1    "WhiteSpacelnstruction':

WhiteSpacelnstruction::=

WHITESPACE

TargetList

WhiteSpaceActon

WhiteSpaceAclion::=

REPLACE | COLLAPSE

38.1.2    Продукционное правило "TargetList’ определено в 13.2

38.1.3    Эта команда кодирования требует, чтобы декодеры приняли дополнительные опции при кодировании символа SPACE(32) и при использовании начальных и замыкающих «пробелов с переходом» (см. 7.1.5) для кодирования строки символов.

38.2 Ограничения

38.2.1    Эта команда кодирования может быть назначена только типу ограниченной строки символов, которая не содержит или вынуждена не содержать следующие символы:

а)    ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ (9);

б)    ПЕРЕВОД СТРОКИ (10);

в)    ПЕРЕВОД КАРЕТКИ (13).

38.2.2    Если команда кодирования имеет опцию COLLAPSE, то она не должна применяться к типу ограниченной строки символов, если только этому типу не запрещено иметь ввод и отслеживание пробела или содержать множественные смежные пробелы для любого абстрактного значения.

Примечание — Признано, что некоторые инструменты АСН.1 не могут статически проверять, что вышеуказанное ограничение будет удовлетворяться для всех абстрактных значений, но соответствующие кодеры не могут генерировать результаты кодирования, в которых "ExtendedXMLValue* нарушает это ограничение.

38.2.3    Тип с этой окончательной командой кодирования не должен также иметь любую из двух окончательных команд кодирования ANY-ELEMENT или BASE64.

Примечание — Нижеперечисленные окончательные команды кодирования никогда не могут появляться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено: ANY-ATTRIBUTES. OECIMAL. EMSED-VALUES. LIST. TEXT. USE-NIL. USE-NUMBER. USE-ORDER. USE-ONAME. USE-TYPE. USE-UNION.

38.2.4    В "TargetList" не должно быть уточняющей информации.

38.3 Действие на результат кодирования

38.3.1 Если использует») ключевое слово REPLACE, каждый SPACE(32) может быть заменен в качестве опции кодера единственным символом "пробел с переходом" (см. 7.1.5).

65

ГОСТ Р ИСО/МЭК 8825-4 — 2009

38.3.2 Если используется ключевое слово COLLAPSE, каждый SPACE(32) может быть заменен в качестве опции кодера любым ксличеством символов «пробел с переходом». Кроме того, один или более таких символов могут быть добавлены к началу или к концу результата кодирования "ExtendedXMLVdlue' в качестве опции кодера.

39 Значения идентификатора объекта, ссылающиеся на правила

кодирования

39.1    Правила кодирования, определенные в этом Международном стандарте могут использоваться для ссылки и применяться всегда, когда есть необходимость определить однозначное представление строки символов для значений единственного идентифицированного типа АСН.1.

39.2    Следующие значения идентификатора объекта и дескриптора объекта назначаются, чтобы идентифицировать правила кодирования, определенные в настоящем стандарте:

Для BASIC-XER:

(joint-iso-itu-t АСН1 (1) xml-encoding (5) basic (0)}

'Basic XML encoding of a single ACH.1 type"

Для CXER:

{joint-iso-itu-t ACH1 (1) xml-encoding (5) canonical (1)}

'Canonical XML encoding ofa single ACH.1 type"

Для EXTENDED-XER;

(joint-iso-itu-t ACH1 {1) xml-encoding (5) extended (2)}

'Extended XML encoding of a single ACH.1 type'

39.3    Следующие значения идентификатора объекта и дескриптора объекта назначаются, чтобы идентифицировать пространство именАСН.1 (см. 15.9):

ACHINamespace OBJECT IDENTIFIER::*

(joint-iso-itu-t ACH1 (1) xml-encoding (5) extended (2) modules (0) support (1)}

'ACH.1 namespace for EXTENDED-XER support"

66

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Приложение А

(справочное)

Примеры кодирования BASIC-XER и CXER

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

А.1 АСН.1 описание структуры записи

Структура гипотетической кадровой записи данных описана ниже с использованием АСН.1. определенной в ИСО/МЭК 8824-1. Приведенный пример идентичен описанному е приложении А ИСО/МЭК 8825-1. PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET{ name    Name,

title    [0] VisibleString.

number    EmployeeNumber.

dateOfHire    [1] Date.

nameOfSpouse    (2) Name,

children    [3] IMPLICIT

SEQUENCE OF ChikRnformation DEFAULT {}}

Childlnformation ::=SET {name Name. dateOfBirth [0] Date}

Name ::= (APPLICATION 1] IMPLICIT SEQUENCE {givenName    VisiblsString,

initial    VisibfoString,

familyName    VisibleString}

EmployeeNumber::» [APPLICATION 2] IMPLICIT INTEGER Date ::= [APPLICATION 3] IMPLICIT VisibleString - YYYYMMDD

Примечание — В этом примере используются теги только для сравнения с примером ранней версии ИСО/МЭК 8824-1. Они не влияют на BASIC-XER. CXER и EXTEN DED-XER XML кодирование.

А.2 АСН.1 описание значений записи

Значение кадровой записи дажых John Smith's описано ниже, с использованием основной нотации значений АСН.1:

{ name    (givenName "John1*,    initial "Р". familyName "Smith'*},

title    "Director"

number    51.

dateOfHire    "19710917".

nameOfSpouse {givenName "Mary",    initial *T\ familyName "Smith"},

children

{{ name {givenName “Ralph", initial "T". familyName "Smith"}. dateOfBirth "19571111"),

{ name {givenName "Susan", initial "B". familyName "Jones"}. dateOfBirth "19590717"»}

A.3 Базовое XML представление значения записи

Представление значения запкси. приведенное в А.2 (после применения базовых правил XML кодирования. определенных в настоящем стандарте), показано ниже, предполагается пустой пролог.

Длина этого кодирования е BASIC-XER — 653 октета, без всех разделителей. Для сравнения та же запись, кодированная с UNALIGNED вариантом PER (см. ИСО/МЭК 8825-1) — 84 октета, с ALIGNED вариантом PER — 94 октета, с ВЕЯ (см. ИСО/МЭК 8825-2) с использованием формы определенной длины — минимум 136 октетов, и с BER с использованием формы неопределенной длины — минимум 161 октет. <PersonnelRecord>

<name>

<givenName>John</givenName>

<inrtia>P</initial>

<famityName>Smith</fa«iilyName>

</name>

<title>Director</title>

<number>51</number>

<dateOf Hire>19710917</dateOIHire>

<nameOfSpouse>

67

ГОСТ Р ИСО/МЭК 8825-4 — 2009

<givenName>Mary</givenName>

<initial>T</initial>

<fafmtyName>Smith</familyName>

</nameOfSpouse>

<children>

<Childlnformation>

<name>

<givenName>Ralph</givenName>

<initial>T<Jinrtial>

<familyName>Smith<tfamilyName>

<Упаш©>

<dateOfBirth>19571111</dateOfBirth>

</Chiktlnformatk>n>

<Childlnformation>

<name>

<givenNanie>Susan</givenName>

<initial>8<.initial>

<famityName>Jor>es</faniilyName>

</name>

<dateOfBirth>19!90717</dateOfBirth>

</ChikUnformation>

</children>

</Personne1Record>

A.4 Каноническое XML представление значения записи

Представление значения записи, приведенное в А.З (после применения канонических правил XML кодирования. определенных в настоящем стандарте), показано ниже:

<PersonnelRecordxnamexgivenName>John</givenNamexinit(8t>P</initjaJ><familyName>Smith</fafn

ilyNafnex/name><number>51</numberxtitle>Director</titlexdateOfHire>19710

917</dateOfHire><nameOfSpouee><givenName>Mary</givenName><initial>T</initial><familyName>Smith</

familyName></name

OfSpousexchiWren><ChildlnformationxnaiT>e><gtvenName>RaJph</givenNafT>e><inrtial>T<yinitia

lxfamilyName>Smith</familyNamex(nan)exdateOfBirth>19571111</dateOfBirthx/Childtnfonnation

><Childlnfofmation><name><givenNMne>Suean</givenName><initi3l>8</rnitial><faTmtyName>Jones</

familyNafnex/name><dateOIBirtli>19590717</dateOfBirth></ChHdlnformation></chHdrenx/Per«onn

elRecord>

68

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Приложение Б

(справочное)

Частичное XML содержание и детерминированные кодирования

Б.1 Частичное XML содержанке

Примечание — Это приложение описывает действия, когда используется MOOIFIED-ENCODINGS.

Б.1.1 В следующих подпунктах описывается создание частичного содержания XML элемента. Частичное содержание XML элемента производится в качестве части кодировок, и Б.2 определяет ограничения на частичное содержание XML элемента, которые необходимы для удовлетворения требований 9.2.11. Если спецификация АСН.1 с кодировкой XER инструкций че нарушает эти ограничения, она является допустимой спецификацией и ее допустимость легко проверить. В случае нарушения ограничений спецификация может не нарушать нормативных требований 9.2.11, но проверить это трудно.

Примечание — Ограничения направлены на обеспечение того, чтобы декодер мог легко и однозначно восстановить абстрактные значения которые были использованы кодером при кодировании.

Б.1.2 Частичное содержание XML элемента состоит из комбинации огдельгшх XML элементов, предоставляемых [ELEMENT] SEQUENCE. SET SEQUENCE OF, SET OF или CHOICE, и другими частичными содержаниями XML элемента, предоставляемых [UNTAGGED] SEOUENCE. SET. SEQUENCE OF. SET OF или CHOICE.

Примечание — Граница между частичным содержанием XML элемента в рамках более крупного частичного содержания XML элемента не видна в той кодировке, но может быть определена из схемы АСН.1 и ограничений на имена элементов.

Б. 1.3 Возможные варианты частичного содержания XML элемента:

а)    единичный элемент XML:

б)    группа конкатенации, состоящая из упорядоченной конкатенации нуля, одного или болев частичных содержаний XML элементов, в которой некоторое частичное содержание XML элемента может отсутствовать в момент кодировки (представляя отсутствие опционального абстрактного значения);

Примечание — Кодирование типа [UNTAGGED] SEQUENCE или SET будет в общем случае продуцировать группу конкатенации.

в)    группа повторений, состоящая из повторения (неограниченного или ограниченного) содержания частичного XML элемента (называемого повторяемый компонент) создаваемого из компонентов SEQUENCE OF или SET OF;

Примечание — Кодирование типа [UNTAGGED] SEQUENCE OF или SET OF будет в целом производить группу повторений.

г)    группа альтернатив, включакщая одно содержание частичного XML элемента, выбранного из множества альтернативных содержаний частичного XML элемента (из которых точно один присутствует в кодировании).

Примечание — Кодирование типа CHOICE производит альтернативы группы. Каждый альтернативный тип CHOICE производит один из аль'ернагивных содержаний частичного XML элемента для этого типа.

Б.2 Рекомендуемые ограничения на кодирования, производящие содержание частичного XML элемента

Б.2.1 Только для целей настоящего пункта любые группы повторения рассматриваются как если бы они были факугътативными. т.е. могли бы иметь нулевые повторения.

Примечание — Это ограничение не является строго необходимым, если существуют ограничения, которые требуют, по крайней мере, одного повторения соответствующего типа АСН.1.

Б.2.2 Только для целей настоящего пункта требование различия имен элементов можно интерпретировать следующим образом:

а)    все сравнения сделаны после применения каких-либо окончательных команд кодирования NAME и NAMESPACE по типу, который генерирует имя:

б)    имена уточненного пространства имен отличны от неквалифицированных имен;

в)    имена уточненного пространства имен отличаются, если и только если отличаются их unprefixed имена, имена пространства имен или оба варианта одновременно.

Б.2.3 Для любого получающеюся содержания частичного XML элемента есть возможные разночтения (и. следовательно, возможность нарушения 9.2.11) если условия, указанные в настоящем подпункте, не выполни-

69

ГОСТ Р ИСО/МЭК 8825-4 — 2009

ются для всех возможных вариантов альтернатив в группе альтернатив, для всех возможных осуществлений выборочмости в труппе конкатенаций, для всех возможных повторений в группе повторений, и для всех возможных упорядочений кодировки компонентов набора.

Примечание — При чтении и реализации следующих пунктов текст уточнения «для всех возможных)* очень важен. Создатели инструментов, определяющих, что является однозначной спецификацией, а что нет. придется анализировать все возможные комбинации вариантов, выбором нос ги. повторений и порядков.

Б.2.4 Определение требования: не должно быть двух соседних содержаний частичных XML элементов с одинаковым именем элемента для первого элемента содержания второго частичного XML элемента и содержание последнего элемент содержание первого частичного XML элемента, если первый частичный XML элемента не требует саморазграничения.

П р и м е р 1 — Содержание частичного XML элемента созданного [UNTAGGED] SEQUENCE, саморазграничено, если оно не заканчивается элементом OPTIONAL.

П р и м е р 2 — Содержание частичного XML элемента созданного [UNTAGGED,] SEQUENCE OF, саморазграничено, если оно имеет фиксированное число итераций, которые саморазграниченными. Это означает, в частности, что SEQUENCE OF (UNTAGGED] SEQUENCE OF INTEGER является неоднозначным и нарушает 9.2.11, если число повторений во второй SEQUENCE OF не будет фиксированным.

Пример 3 — Содержание частичного XML элемента, созданного [UNTAGGED] SET, никогда не саморазграничивается, если оно имеет любые дополнительные элементы.

Б.2.5 Альтернативное определение требований: первые XML элементы альтернативного содержания частичного XML элемента в группе альтернатив должны иметь различные имена элементов.

Примечание — Приведенный выше текст не учитывает возможного использования USE-TYPE и USE-UNION, которые выходят за рамки настоящего приложения.

Пример 4 — Кодировка:

BadExample1::= CHOICE {

• - Первая альтернатива содержания частичное XML элемента аП1 {UNTAGGED} SEQUENCE { name UTF8Strhg, zip-code UTF8String }, alt2 [UNTAGGED] SEQUENCE { name UTF8Strhg, post<ode UTFSString ) }

на самом деле не неоднозначная EXTENDED-XER кодировка (для декодера человека), но она нарушает вышеуказанные требования, а также нарушает 9.2.11. Это неправильное использование команды кодирования.

Б.2.6 Вспомогательное определение требований: имена XML элементов первого элемента XML всех последовательностей опционального содержания частичного XML элемента плюс, что в следуюшем/следуюших обязательных содержаниях частичного XML элемента должны отличаться.

Примечание — Это означает, в частности, что любое опциональное содержание частичного XML элемента в конце группы, которая повторяется, и опциональное содержание частичного XML элемента 8 ее начале должны иметь различные имена XML элемента, если количество повторений ограничено максимум 1. Если все содержание частичного XML элемента группы, которая повторяется, не является обязательным, то их имена XML элементов должны быть различны.

Пример 5 — Кодировка:

BadExample2::- SEQUENCE OF {

[UNTAGGED] SEQUENCE {

first    [UNTAGGED] CommonlnitialParms.

second    Mainlnformation.

third    [UNTAGGED] CommonEndParms } }

где

CommonlnitialParmsSEQUENCE { date GeneralizedTime OPTIONAL,

married BOOLEAN]

CommonEndParmsSEQUENCE { name UTF8String,

date GeneralizedTime OPTIONAL]

нарушает требования опционального определения и нарушает 9.2.11. Это неправильное использование команды кодирования.

Б.2.7 Требование определения числа повторений: все группы повторения, имеющие число повторений, которое не закреплено, должны сопровождаться содержанием частичного XML элемента, чей первый XML

70

ГОСТ Р ИСО/МЭК 8825-4 — 2009

элемент имеет имя. отличное от имени первого XML элемента содержания частичного XML элемента, которое повторяется.

Пример 6 — Кодировка:

BadExampte3::= SEQUENCE {

required-items (UNTAGGED) SEQUENCE OF Book, optional-items [UNTAGGED] SEQUENCE OF Book}

нарушает требование определения числа повторений, а также нарушает 9.2.11. Это неправильное использование команды кодирования. Альтернатива:

GoodExamplelSEQUENCE {

required-items [UNTAGGED] SEQUENCE OF required-books Book. optional-items [UNTAGGED] SEQUENCE OF optional-books Book} является правильным использованием команды кодирования.

Б.2.8 Требование определения набора компонентов: первый XML элемент в содержании частичного XML компонента группы конкатенаций, который кодируется как тип набора, должен иметь имя XML элемента, которое отличается от имени первого XML элемента в содержании частичного XML всех других компонентов.

Пример 7 — Кодировка:

BadExample4::= SET {

uk-mailing UNTAGGED] SEQUENCE {name UTF8String, post-code UTF8String) us-mailing [UNTAGGED] SEQUENCE [name UTF8String, zip-code UTF8String}} нарушает требования определения компонентов, а также нарушает 9.2.11. Это неправильное использование команды кодирования.

Альтернатива:

GoodExample2 :. = SET {

uk-mailing UNTAGGED] SEQUENCE {uk-name UTF8String, post-code UTF8String} us-mailing [UNTAGGED] SEQUENCE [us-name UTF8String, zip-code UTF8String}} является правильным использованием команды кодирования.

71

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Приложение В

(справочное)

Примеры EXTENDEO-XER кодирования с использованием команд кодирования XER

В.1 Введение

В.1.1 Это приложение содержит обучающую информацию и примеры применения команд кодирования XER.

Примечание — Все примеры АСН.1 в этом приложении предполагают использование среды AUTOMATIC TAGS.

В. 1.2 Обычно команды кодирования требуется назначать спецификации АСН.1 только в том случае, когда разработчику требуется соответствие фактической формы XML кодирования форме, определенной другими спецификациями или приемлемой для других инструментов XML. В противном случае, может быть использована только АСН.1 (с кодированием BASIC-XER или CXER).

В.1.3 Если АСН.1 ислользует;я как нотация определения схемы, то дополнительное использование команд кодирования будет в общем случае обеспечивать более компактное XML кодирование, чем испогьзование только АСН.1. но результаты кодирования будут представлять собой гораздо более длинные тексты, чем при использовании АСН.1 с Правилами Уплотненного Кодирования (PER).

Примечание — Примерь (атакже идентификаторы и испогьзо ванные имена типов), предназначены для иллюстрации особенностей EXTENDED-XERh. е общем, не представляют собой реальных спецификаций.

В.1.4 Команды кодирования XER делятся на две большие категории.

В.1.5 В первую категорию попадают команды кодирования, которые, обычно, полезны при разработке формы документа XML. Они. как правило, допустимы даже при отсутстствии DEFAULTS GLOBAL MOOIFIED-ENCOOINGS. Двумя наиболее полезными из них является ATTRIBUTE и LIST, и в л В.2 представлены простыв примеры их использования.

В.1.6 Во вторую категорию попадают команды кодирования, которые предназначены для поддержки отображения из W3C XML Schema, специфицированного а ИСО/МЭК 8825-5. Они обычно требуют наличия DEFAULTS GLOBAL MODIFIED-ENCODINGS в разделе управления кодированием, но это не показано в примерах. В этих примерах предполагается, что любой тип ссылки, начинающийся с'XSD.*. будет импортирован из приложения А ИСО/МЭК 8825-5. В пункте В.З приводятся примеры их использования. Эти примеры не являются полными модулями АСН.1 и полными XML-документами: модуль заголовков, как правило, опущен, а также предполагается, что любой XML атрибут. начинающийсяс“а5л1:’, будет управляющим атрибутом, использующим пространство имен asn1 для управляющего атрибута, когда предполагается, что префикс ”asn1" уже декларирован. (На практике, если источником результата кодирования является схема W3C XML Schema, более вероятно использование префикса “xsi" с пространством имен XS1).

В.1.7 Почти во всех случаях команды кодирования, снабженные префиксами, используются для ясности, хотя в реальной спецификации большая краткость (и более четкое отделение определения абстрактного синтаксиса от проблем кодировки) будет достигнута за счет использования Раздела Управления Кодированием.

В.2 Простые примеры

8.2.1 Бейсбольная карточка:

BBCard::s SEQUENCE {

name [ATTRIBUTE] IA5String. team [ATTRIBUTE] !A5String. age INTEGER, position !A5String, handedness ENUMERATED { left-handed, right-handed, ambidextrous }. batting-average REAL ]

Игнорируя команду кодирования (BASIC-XER). мы получим:

<BBCard>

<name>Jorge Posada</name>

<team>New Yorti Yankees</team>

<age>29</age>

<pos<tion>C</posilion>

<handedness><nght-handed/x/handedness>

72

ГОСТ Р ИСО/МЭК 8825-4 — 2009

<batting-average»0.277</batting-average>

«/BBCard»

Реэугьтат кодирования EXTENDED-XER (с MODIF1ED-ENCOD1NGS) того же значения будет: «BBCard name = Jorge Posada team = New York Yankees»

<age>29</age>

«position»C«/posit»on»

<handedness»right-handed«/handednese»

«batting-average»0.277«/batting-average»

«/BBCard»

B.2.2 Сотрудник

Employee::» [NAME AS UNCAPITALIZED] SEOUENCE { id [ATTRIBUTE] !NTEGER{0..MAX). recruited XSD.Dale. salaries [LIST] SEQUENCE OF salary REAL}

Игнорируя команду кодирования (BASIC-XER). мы получим:

«Employee»

<id»239</id»

«recruited»27-11-2002</recruited»

«salaries»

<salary»29876«/ialary»

«salary»54375«/salary»

«satary»98435«/$alary»

«/salaries»

«/Employee»

Результат кодирования EXTENDED-XER того же же значения будет:

«employee id = "239"»

«recruited»27-11-2002</recruited»

<salaries»29876 54375 98435</sataries>

«/employee»

Используя Раздел Управления Кодированием XER. мы получим:

Employee :;= SEQUENCE {

id INTEGER(O..MAX). recruited Date.

salaries SEQUENCE OF salary REAL )

ENCODING-CONTROL XER

NAME Employoo AS UNCAPITALIZED ATTRIBUTE Employee.id LIST Empk>yee.salaries B.3 Более сложные примеры

В.Э.1 Использование объединения двух простых типов Int-or-boolean::» [USE-UNION] CHOICE { ml INTEGER, boolean BOOLEAN }

Результаты кодирования будут:

«lnt-or-boolean»<int>39</int9</lnt-or-boolean> BASIC-XER <lnt-or-booiean»«boolean»<kue/»«/bootean»«/]nt-or-boolean> BASIC-XER <lnt-or-boolean»39</lnt-or-boolean» EXTENDED-XER <int-or-bootean»true«/lnt-or-toolean> EXTENDED-XER B.3.2 Использование атрибута идентификации типов Int-or-boolean::» [USE-TYPE; CHOICE { kit INTEGER, boolean BOOLEAN }

Результаты кодирования будут:

<lnt-or-boolean»«int»39</int>«/lnt-or-boolean> BASIC-XER <lnt-or-bootean»<boolean»<t'ue/»</boolean>«/lnt-or-boolean» BASIC-XER <lnt-or-bootean asn1:type»"int"»39«/lnt-or-boolean» EXTENDED-XER <lnt-or-booiean asn1:type»"boolean*»true</lnt-or-boolean» EXTENDED-XER

73

ГОСТ Р ИСО/МЭК 8825-4 — 2009

В.3.3 Использование перечислимых значений

PrimesUnder30:;2 [USE-NUMBER] ENUMERATED {

int2(2), int3(J), *nt5<5>. int7(7). int11(11). int13{13). int17(17). int19(19), int23{23). int29<29)} Inpul Values::2 [ATTRIBUTE] [LIST] SEQUENCE OF PrimesUnder30 PrimeProducts::2 SEQUENCE { input InputValues.

output [ATTRIBUTE] [OECIMAL] REAL]

Результаты кодирования будут:

«PrimeProducts»

<input»«int2/»«inl7/»«int17/»«int23/»«int29/»<inl3/»«/input»

<oulput>476338.00</output>

«/PrimeProducts» BASIC-XER

<PrimeProducts input="2 7 17 23 29 3" output=*476338.00“/>

EXTENDED-XER

B.3.4 Использование пустого результата кодирования для значений по умолчанию Responses::2 ENUMERATED {ringing, engaged, number-not-known }

CallOetails::2 [DEFAULT-FO^-EMPTY number-not-known] SEQUENCE { number [ATTRIBLTE] NumericString. response Resporse }

Результаты кодирования будут:

«CallDetails»

«number»01645£3746«/number>

<response»«number-not-known/»«/response»

«/CallDetails» BASIC-XER

«CallDetails number="0164693746'/» EXTENDED-XER В.Э.5 Использование встроенных значений для уведомления об обязательном платеже Notification::2 SEQUENCE {

text [EMBED-VALUES] SEQUENCE OF UTFSStnng, account INTEGER., amount-due INTEGER.

payabte-by XSO:Cate} (CONSTRAINED BY {/* Должно соответствовать ИСО/МЭК 8825-4,25.2 */})

Значения в основой нотации значений АСН.1 будут: firstNotification Notification::2 {

text {'Please note the following details:'. '(your business account)'.

'This is h excess of your normal monthly allowance*, 'or earlier'}, account 568903. amount-due 536. payable-by *27-08-2003'}

Результат EXTENDED-XER кодировгния будет иметь вид:

«Notification»

Please note the following details:

<account>568903</account>

(your business account)

<amount-due>536</arrtount-due>

This is in excess of your normal monthly allowance «payable-by»27-08-2003</payable-by> or earlier «/Notification»

74

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Приложение ГА

(справочное)

Сведения об уче^е в тексте стандарта Изменения 1. EXTENOEO-XER

Таблица ГА.1

Раздел.подраздел, пункт, подпункт, таблица, приложение

Внесенные изменения

Введение

Добавлен текст:

•BASIC-XER или CXER. то для XML представления применяется единственный фиксированный стиль без управления стилистическими особенностями пользователем. Настоящий стандарт специфицирует синтаксис и семантику команд XER кодирования, которые определяют стилистические особенности XML в EXTENDED-XER кодировании. Команды XER кодирования могут также быть использованы для определения возможного включения команд XML обработки в EXTENDED-XER кодирование. Команды XER кодирования игнорируются правилами BASIC-XER и CXER. но используются EXTENDED-XER.

Примечание — «Стилистические особенности», такие как атрибуты или перечни пробелов с разделителями, могут также влиять на размер закодированного материала и сложность его обработки, поэтому использование таких особенностей это не только вопрос стиля. Если такие вопросы существенны, можно отдать предпочтение EXTENDED-XER перед BASIC-XER или CXER.

В разделе 7 специфицируется BASIC-XER кодирование типов АСН. 1.

В разделе 6 специфицируется CXER кодирование типов АСН.1.

В разделе 9 специфицируется EXTENDED-XER кодирование типов АСН.1 с использованием ссыпок на болев поздние разделы, которые определяют команда XER кодировала.

В разделах с 10-го по 13-й перечисляются и классифицируются команды XER кодирования и специфицируют синтаксис для их назначения типам или компонентам АСН.1. с использованием либо префикса типа XER (см. ИСО/МЭК 8824-1,30.3). либо управляющей секции XER кодирования.

В разделе 14 определяется порядок предшествования, если команды XER кодирования присутствуют и в префиксе типа XER. и в управляющей секции XER кодирования.

В разделе 15 специфицируется поддержка команд XER кодирования для пространства имен XML при использовании EXTENDED-XER.

В разделе 16 специфицируется EXTENDED-XER кодирование.

В разделах с 17 по 39 специфицируются:

а)    синтаксис каждой команды XER кодирования, используемой в префиксе типа или управляющей секции кодирования:

б)    ограничения команд XER кодирования, которые могут быть ассоциированы с конкретным типом АСН.1 (следствие наследования и тожественных назначений);

si модификации правил XER кодирования, которые необходимы 8 EXTENDED-XER кодировании, когда применяются команды XER кодирования

Приложение А информативно и содержит примеры BASIC-XER и CXER кодирования.

Приложение Б информативно и содержит описание частичного XML контента. который создан когда конструкции такие, как последовательность и последо-вэгельиость-мз утратили свои окружающие теги вместе с ограничениями спецификаций. облегчающими определение компонента АСН.1. с которым связан элемент XML

Прнложение В информативно и содержит примеры команд XER кодирования и соответствующих результатов EXTENDED-XER кодирования.

75

ГОСТ Р ИСО/МЭК 88254 — 2009

Продолжение таблицы ГА. 1

Разлап, подраздел, пункт, подпункт, таблица, приложение

Внесенные изыенения

Раздел 1

Заменено

«Настоящий стандарт устанавливает набор базовых правил XML кодирования (XER), которые могут быть использованы для получения синтаксиса перехода для значений типов, определенных в ИСО/МЭК 8824-1 и ИСО/МЭК 8824-2. (Настоящий стандарт также определяет набор канонических правил XML кодирования, который предусматривает ограничения на базовые сдавила XML кодирования и производит уникальное кодирование для любого данного значения АСН.1» на

«(Настоящий стандарт устанавливает набор базовых правил XML кодирования (BAStC-XER). которые могут быть использованы с целью получения синтаксиса перехода для значений типов, определенных в ИСО/МЭК 8824-1 и ИСО/МЭК 8824-2. Настоящий стандарт определяет также набор канонических правил XML кодирования (CXER). которые предусматривают ограничения на базовые правите XML кодирования и производят уникальное кодирование для любого данного значения АСН.1. Нестоящий стандарт специфицирует набор расширенных правил XML кодирования {EXTENDEO-XER). добавляющий дополнительные опции кодера и позволяющий спецификатору АСН.1 варьировать кодирование, которое должно быть произведено в соответствии с BASIC-XER»

Раздел 1

Добавлено «Настоящий стандарт устанавливает также синтаксис и семантику команд XER кодирования и правила для их назначения и сочетания. Команды XER кодирования могут быть использованы для управления расширенными правилами XML кодирования (EXTENDED-XER) для конкретных типов АСН.1»

Раздел 2.1

Заменено «2.1 Идентичные рекомендации и международные стандарты

Б настоящем стандарте использованы нормативные ссылки на следующие рекомендации МСЭ-Т и международные стандарты:

Рекомендация МСЭ-Т Х.680 (2002) (ИСО/МЭК 8824-1:2002) Информационные технологии — абстрактная синтаксическая нотация версии 1 (АСН.1): Спецификация основной нотации

Рекомендация МСЭ-Т Х.681 {2002} (ИСО/МЭК 8824-2:2002) Информационные технологии — абстрактная синтаксическая нотация версии 1 (АСН.1): Спецификация информационного объекта

Рекомендация МСЭ-Т Х.682 (2002) (ИСО/МЭК 8824-3:2002) Информационные технологии — абстрактная синтаксическая нотация версии 1 (АСН.1): Спецификация ограничений

Рекомендация МСЭ-Т Х.683 {2002} (ИСО/МЭК 88244:2002} Информационные технологии — абстрактная синтаксическая нотация версии 1 (АСН.1): Параметризация АСН.1 спецификаций

Рекомендация МСЭ-Т Х.690 (2002) (ИСО/МЭК 8825-1:2002} Информационные технологии — Правила кодирования АСН.1: Спецификация базовых правил кодирования (BER). канонических правил кодирования (CER) и отличительных Правила Кодирования (DER)

Рекомендация МСЭ-Т Х.693 {2002} (ИСО/МЭК 8825-2:2002) Информационные технологии — Правила кодирования АСН.1: Спецификация правил уплотненного кодирования (PER)» на

«2.1 Идентичные стандарты

ИСО/МЭК 8824-1:2002. Информационные технологии - Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация базовой нотации.

ИСО/МЭК 8824-1:2002/Amd.1:200Э. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация базовой нотации — Изменение 1: Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8824-2:2002. Инхрормационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация информационного объекта.

76

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Продолжение таблицы ГА. 1

Раздел.подраздел, пункт, подпункт, таблица, приложение

Внесенные изменения

ИСО/МЭК 8824-2:2002/Amd. 1:2003. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1) — Изменение 1: Спецификация информационного объекта — Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8824-3:2002. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Спецификация ограничений.

ИСО/МЭК 8824-4:2002. Информационные технологии — Абстрактная Синтаксическая Нотация Один (АСН.1): Параметризация спецификаций АСН.1.

ИСО/МЭК 8825-1:2002. Информационные технологии — Правила кодирования АСН.1: Спецификация Базовых правил кодирования (BER), Канонических правил кодирования (CER) и Отличительных правил кодирования (OER).

ИСО/МЭК 8825-1:2002/Amd.1:2003, Информационные технологии — Правила кодирования АСН.1: Спецификация Базовых правил кодирования (BER). Канонических правил кодирования (CER) и Отличительных правил кодирования (DER) — Изменение 1: Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8825-2:2002. Информационные технологии — Правила кодирования АСН.1: Спецификация Правил уплотненного кодирования (PER).

ИСО/МЭК 8825-2:2002/Amd.1:2003. Информационные технологии — Правила кодирования АСН.1: Спецификация Правил уплотненного кодирования (PER) — Изменение 1: Поддержка Расширенных правил XML кодирования (EXTENDED-XER).

ИСО/МЭК 8825-3:2002, Информационные технологии — Правила кодирования АСН.1: Спецификация Управляющей нотации кодирования (ECN)»

Раздел 2.2

заменено «ИСО/МЭК 10646-1:1993 Информационные технологии — Универсальный многооктетный кодовый набор символов (UCS) — Часть 1: Архитектура и основная многоязычная матрица

ИСО/МЭК 10646-1:1993Л4эм.2:1996 Информационные технологии — Универсальный многооктетный кодовый набор символов (UCS) — Часть 1: Архитектура и основная многоязычная матрица — Изменение 2: UCS Формат Преобразования 8 (UTF-3)

W3C XML 1.0:2000 Расширяемый язьк разметки (XML) 1.0 (второе издание), рекомендации W3C. Copyright О (6 October 2000] World Wide Web Consortium. (Massachusetts institute or Tfecnnotogy.instltut National de Recherche en informauque et en Ajtomatiqoe. Кею University). REC-xmt-20001006» на

«- IETF RFC 2045 (1996). Многоцелевые расширения Интернет почты (MIME) Часть 1: Формат Совокупности Интернет сообщений.

-IETF RFC 2141 (1997). Синтаксис Унифицированного имени ресурса (URN).

-    IETF RFC 2396 (1998), Унифицированные идентификаторы ресурса (URI): Типовой синтаксис.

-    IETF RFC 3061 (2001), Пространство имен URN объектных идентификаторов

-    ИСО/МЭК 10646-1:2000. Информационные технологии — Универсагъный многоогтегный набор кодированных символов (UCS) - Часть 1: Архитектура и базовая многоязычная матрица.

-    The Unicode Standard. Version 3.2.0, Консорциум Юникода.

Примечание — Графические символы (и их коды), определенные в вышеуказанном стандарте идентичны тем. которые определены стандартом ИСО/МЭК 10646-1, но вышеуказанный стандарт включен в перечень, поскогъку он также специфицирует имена управляющих символов.

-W3C XML 1.0:2000. Расширяемый Язык Разметки (XML) 1.0 (Второе издание). Рекомендация W3C, Copyright О [6 октября 2000 г.] World Wide Web Consortium. (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Ke*o University).

77

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Продолжение таблицы ГА. 1

пункт, подпункт, таблица, приложение

Внесенные изменении

- W3C XML Namespaces: 1999. Пространство имен е XML. Рекомендация W3C. Copyright © [14 января 1999 г.] World Wide Web Consortium. (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University). .

Примечание — Ссылка на документ из настоящего стандарта не дает ему. как автономному документу, статус международного стандарта*

Раздел 3

Заменено иВ настоящем стандарте применяют следующие термины с соответствующими определениями» на

«Для настоящего стандарта приметны определения ИСО/МЭК 8824-1, а также следующие определения*

Подраздел 3.2.1

Добавлены подразделы 3.2.1.1. 3.2.1.2. З.2.1.З. и 3.2.1.4

Подраздел 3.2.2

Добавлены подразделы с 3.2.2.1 по 3.2.2.16

Подраздел 3.2.3

Заменено «правильный XML документ (для АСН.1 схемы) (valid XML document (for an ASN.1 schema)): XML документ, который правильно сформирован (см. W3C XML 1 0) и содержание которого соответствует XER спецификации правил кодирования XML для типе» АСН.1. заданный АСН.1 схемой» на

•действительный XML документ (для АСН.1 схемы) (valid XML document (for an ACH.1 schema)): XML документ, который правильно построен (см. W3C XML 1.0} и чье содержание соответствует спецификации BAStC-XER. CXER или EXTENDED-XER для кодирования типа АСН.1. заданного АСН.1 схемой, возможно включая команды XER кодирования»

Подраздел 3.2.3

Добавлены подразделы с 3.2.3.1 по Э.2.3.4

Раздел 3

Добавлены подразделы 3.2.5 и 3.2.6

Раздел 4

Добавлено «CXER — канонические правила XML кодирования: URI — универсальный идентификатор ресурса»

Раздел 5

Удален

Разделы 6—9

Перенумерованы в разделы 5—8

Подраздел 5.1

Заменено «CANONICAL-XER* на «CXER»

Подраздел 5.1

Добавлено к- расширенные правила XML кодирования (EXTENDED-XER)»

Подраздел 5.1

Удалено примечание

Подраздел 5.2

Заменено «Первый набор правил кодирования BAS1C-XER в общем случае не производит канонического кодирования» на

•Базовый набор правил кодирования BASIC-XER в общем случае не производит канонического кодирования и не обеспечивает любого пользователя управлением стилем XML. который он продуцирует»

Подраздел 5.3

Заменено «CANONICAL-XER* на «CXER* по всему тексту подраздела

Подраздел 5.4

Заменено «Если тип данных, закодированный no CANONICAL-XER. содержит типы EMBEDDED PDV. EXTERNAL или CHARACTER STRING, то внешнее кодирование перестает быть каноническим если кодирование.

78

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Продолжение таблицы ГА. 1

Раздел.подраздел, пункт, подпункт, таблица, приложение

Внесенные изменения

используемое для всех типов EMBEDDED PDV. EXTERNAL или CHARACTER STRING, не является каноническим» на

«Третий набор правил кодирования, установленный в настоящем стандарте — расширенные правила кодирования (EXTENDED-XER). Он определяется как вариации базовых правил кодирования BASIC-XER. установленные командами ХЕР кодирования (см. 5.6). связанными с типом АСН.1. В отсутствие команд XER кодирования кодирование по расширенным правилам (EXTENDED-XER) отличается от кодирования по базовым правилам BASIC-XER только тем. что оно обеспечивает больше опций кодера»

Раздел 5

Добавлены подразделы 5.5 и 5.6

Раздел 6.1

Заменено «Динамическое соответствие базовых правил XML кодирования определено в разделе В. динамическое соответствие для канонических правил XML кодирования — в разделе 9» на

«Динамическое соответствие для базовых правил XML кодирования специфицируется в разделе 7. динамическое соответствие для канонических правил XML кодирования специфицируется е разделе 8 и динамическое соответствие для расширенных правил XML кодирования специфицируется в разделе 9»

Раздел 6.3

Заменено «Альтернативное кодирование разрешено базовыми правилами XML кодирования как опция кодера. Декодеры, соответствующие правилам кодирования XER. должны поддерживать все альтернативы» на

«Альтернативное кодирование разрешается базовыми правилами XML кодирования и расширенными правилами XML кодирования как опция кодера. Декодеэы. соответствующие BASiC-XER. должны поддерживать все альтернативы кодирования BASiC-XER. Декодеры, соответствующие EXTENDED-XER. должны поддвркивать все альтернативы кодирования EXTENDED-XER.

Примечание — Этот раздел применяется независимо от наличия (или отсутствия) каких-либо окончательных команд кодирования»

Подраздел 7.1

Заменено «8.1 Продукционные правила полного BASIC-XER кодирования

8 1.1 Соответствующий результат BASIC-XER кодирования — правильный XML документ, состоящий из:

а)    XML пролога (который может быть пустым) как определено в 8.2;

б)    элемента XML документа, который является законченным результатом кодирования значения единственного типа АСН.1. как определено в 8.3.

81.2    Спецификация 8 подразделах с 8.2 по 8.6 полностью определяет BASIC-XER кодирование.

Примечание — Другие структурные компоненты, такие как команды XML обработки не разрешены этими подразделами и они никогда не создаются кодерами. соответствующими BASIC-XER.

81.3    XML документ должен быть кодирован с использованием UTF-8 для получения «строки октетов», которая формирует кодирование, е соответствии с настоящим стандартом. АСН.1 идентификатор объекта для этих правил кодирования определен в разделе 40.

81.4    В случае, если настоящий стандарт использует термин «разделитель» ('white-space") подразумевается один или несколько следующих символов стандарта Lnicode: HORIZONTAL TABULATION (9). LINE FEED (10). CARRIAGE RETURN (13). SFACE (32). Цифры в круглых скобках — десятичные значения символов стандарта Urecode. Номер и выбор символа, который составляет разделитель — опция кодера» на

«7.1 Продукционные правила полного BASIC-XER кодирования

71.1 Соответствующий результат BASIC-XER кодирования — правильный XML документ, состоящий из:

a) XML пролога (который может быть пустым) как определено в 7.2:

79

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Продолжение таблицы ГА. 1

Раздел, подраздел, пункт, подпункт, таблица, приложение

Внесенные изменении

б) элемента XML документа, который является законченным результатом кодирования значения единственного типа АСН.1, как определено в 7.3.

7.1.2    Спецификация в подразделах с 7.2 по 7.6 полностью определяет BASIC-XER кодирование.

Примечани е —Другие структурные компоненты, такие как команды XML обработки не разрешены этими подразделами и они никогда не создаются кодерами. соответствующими BASIC-XER.

7.1.3    XML документ должен быть кодирован с использованием UTF-8 для получшия «строки октетов», которая формирует кодирование в соответствии с настоящим стандартом. Идентификатор объекта АСН.1 для этих правил кодирования опэеделен в разделе 39.

7.1.4    Если в настоящем стандарте используется термин «пробел» ("white-space'i. подразумевается один или несколько следующих символов стандарта Unicode. HORIZONTAL TABULATION (9). LINE FEED (10). CARRIAGE RETURN (13). SPACE (32). Цифры в круглых скобках — десятичные значения символов стандарта Unicode. Количество и выбор символов, которые составляют пробел — опция кодере»

Подраздел 7.1

Добавлен Подраздел 7.1.5

Подраздел 7.3.1

Заменено «Элемент XML документа должен быть "XMLTypedValue’. как определено в ИСО/МЭК 8824-1, пункт 15.2, с изменениями и ограничениями, указанными в следующих подпунктах» на

«Элементом XML документа будет "XMLTypedValue*. как определено в ИСО/МЭК 8824-1. пункт 15.2. с изменениями и ограничениями, установленными в последующих подразделах раздела 7.3»

Подраздел 7.3.1

Добавлен подраздел 7.3.1.1

Подраздел 7.3.3

Заменено «В случаях, есгы ИСО/МЭК 8824-1 допускает использование разделителя АСН.1 между лексическими элементами, символы должны быть ограни-йены разделителями, определенными в 0.1.4» на

«Когда ИСО/МЭК 8824-1. пункты 11.1.4, 11.11 и 11.13 разрешают использование пробела АСН.1 между лексическими единицами e’xmibstring’ или в ’xmlhstring". использованные символы должны быть ограничены до ’разделителей’, определенных в 8.1.4» на

«Если ИСО/МЭК 8824-1.11.1.4.11.11 и 11.13 разрешают пробелы АСН.1 между лексическими единицами в ’xmlbstring’ или в ’xmlhstring". использованные символы догжны быть ограничены до «разделителей», определенных в 7.1.4»

Подраздел 7.3.3

Добавлен подраздел 7.3.3.1

Подраздел 7.3.4

Заменено «Значение ’XMLIntegerValue’. определенное в ИСО/МЭК 8824-1, пункт 18.9. должно быть только ’SignedNumber” (числом со знаком)» на ’XMLIntegerValue’ определенный в ИСО/МЭК 8824-1, 18.9, должен быть только ’XMLSgnedNumber’

Подраздел 7.3.4

Добавлены подразделы 7.3.4.1 и 7.3.4.2

Раздел 7

Добавлены подразделы 7.5 и 7.8

Подраздел 8.1

Заменено «Общие правила для канонического XML кодирования» на «Общие правила для канонического XER»

80

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Продолжение таблицы ГА. 1

Раздел.подраздел, пункт, подпункт, таблица, приложение

Внесенные изменения

Подраздел 8.1.2

Заменено «Все лексические элементы, формирующие "XMLTypedValue", не долины иметь между собой разделитель (см. ИСО/МЭК 8824-1, подпункт 11.1.4)* на

«Все лексические единицы, формирующие "XMLTypedVbJue*. не должны иметь пробел ("White-space*) между ними (см.7.3.3)»

Подраздел 8.3.1

Заменено «Если 'XMLTypedValue* можно использовать вместо *XMLBi.StnngValue" (см. ИСО/МЭК 8624-1. пункт 21.9). как определено в ИСО/МЭК 8824-1, пункт 21.10. то его следует использовать. В противном случае, "xmlbstring* может использоваться только без разделителей» на

«Если альтернатива "XMLTypedValue’ для "XMLBitStringValue" (см. ИСО/МЭК 8824-1. 21.9) может быть использована (как определено в ИСО/МЭК 8824-1, 21.10). то она должна быть использована. В противном случав должна быть использована альтернатива "xmlbstring" со всеми удаленными пробелам? White-space* (см. 7.3.3)»

Подраздел 8.4

Заменено «Если "XMLTypedValue* можно использовать вместо *XMLOctetSlnngVatue* (см. ИСО/МЭК 8824-1. пункт 22.3) как определено в ИСО/МЭК 8824-1. пункт 22.4, то его следует использовать. В противном случае, ‘xmlbstring" может использоваться только без разделителей, и все символы должны быть в верхнем регистре» на

«Если альтернатива "XMLTypedValue" для *XMLOctetStringVa!ue" (см. ИСО/МЭК 8824-1, 22.3) может быть использована (как определено в ИСО/МЭК 8824-1. 22.4), то она должна быть использована. В противном случае должна быть использована альтернатива "xmlbstring" со всеми удаленными пробелам? "white-space" (см. 7.3.3) и все буквы должны быть заглавными»

Подраздел 8.6.1

Заменено «Тип «множество» должен содержать элементы в его *RootComponentTypeList". отсортированные 8 каноническом порядке (как определено в ИСО/МЭК 8824-1. пункт 8.6). В целях определения порядка кодирования. в случае если имеется компонент с типом выбора «без применения тегов», он должен быть упорядочен, также как и в случае с тегом, равным наименьшему тегу в *RootAltemativeTypeList" этого типа выбора или любого вложенного типа вы-Сира «без применении ieiue»» мы

«Тип набора будет иметь элементы в его "RootComponentTypeLisi". отсортированном в каноническом порядке, определенном в ИСО/МЭК 8824-1.8.6. и дополнительно с тегом АСН.1 для цепей определения порядка, в котором компоненты закодированы, когда один или более компонентов является типом выбора. Каждый такой тип выбора расположен по порядку так. как если бы он имел тег. равный наименьшему тегу в “RootAltemativeTypelJsf того типа выбора или любого такого типа выбора, который встроен в него»

Подраздел 8.7.1

Заменено «Порядок элементов ‘XMLSetOfVakje* (см. ИСО/МЭК 8824-1. пункт 27.3) должен быть определен сортировкой символьных строк, которые представляют собой CANONICAL-XER кодирование для каждого элемента, в соответствии с 9.7.2, 9.7.3» на

«Порядок элементов 'XMLSetOfValue" (см. ИСО/МЭК 8824-1. 27.3) будет определяться сортировкой строк символов, которую обеспечивает CXER кодирование для каждого элемента, как определено в 8.7.2 и 8.7.3»

Раздел 8

Добавлен подраздел 8.12

Структура стандарта

Добавлены разделы 9—38

Раздел 10

Г ере нумерован в раздел 39

81

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Окончание таблицы ГА. 1

Раздел, подраздел, пункт, подпункт, таблица, приложение

Внесенные изменении

Подраздел 39.2

Заменено «Для CANONICAL-XER» на «Для CXER»

Подраздел 39.2

Добавлено «Для EXTENDED-XER:

{joint-iso-itu-t АСН1 (1) xml-encoding (5) extended (2)} "Extended XML encoding of a single ACH.1 type"»

Раздел 39

Добавлен подраздел 39.3

Приложение А

Заменено «Примеры кодирования» на «Примеры кодирования BASIC-XER и CXER»

Приложение А

Заменено «Настоящее приложение иллюстрирует применение правил XML кодирования, а также содержит XML разметку представления (гипотетической) записи данных о персонале, которая определяется с использованием АСН.1.» на «Даннов приложение иллюстрирует применение базовых и канонических правил XML кодирования, определенных в настоящем стандарте. Приложение содержит XML разметку представления (гипотетической) записи данных о персонале. которая определена с использованием АСН.1.»

Приложение А.1

Заменено «Примечание — Теги используются только для сравнения с примером предыдущей версии ИСО/МЭК 8824-1 и не влияют на XML кодирование» на

«Примечание — В этом примере используются теги только для сравнения с гримером ранней версии ИСО/МЭК 8824-1. Они не влияют на BASIC-XER. CXER и EXTENDED-XER XML кодирование»

Структура стандарта

Добавлены приложения Б и В

82

ГОСТ Р ИСО/МЭК 8825-4 — 2009

Приложение ГБ (справочное)

Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации

Таблица ГБ.1

Обозначение ссылочного международного стандарта

Степень

соответствия

Обозначение и наименование соответствующего национального стандарта

ИСО/МЭК 8624-1:2002

4

ИСО/МЭК 6824-1:2002/Amd.1:2003

4

ИСО/МЭК 8824-2:2002

4

ИСО/МЭК 8824-2:2002/Amd.1:2003

4

ИСО/МЭК 8824-3:2002

4

ИСО/МЭК 8824-4:2002

4

ИСО/МЭК 8825-1:2002

ИСО/МЭК 8825-2:2002

4

ИСО/МЭК 8825-2:2002/Amd.1:2003

4

ИСО/МЭК 8825-3:2002

4

ИСО/МЭК 10646-1:1993

4

ИСО/МЭК 10646-1:1993/Amd.2:1936

4

* Соответствующий межгосударственный стандарт отсутствует. До его принятия рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федерагьном информационном фонде технических регламентов и стандартов.

63

ГОСТ Р ИСО/МЭК 8825-4 — 2009

УДК 681.324:006.354    ОКС 35.100.60    П80    ОКП501300

Ключевые слова: обработка данных, информационный обмен, сетевое взаимодействие, взаимосвязь открытых систем, коммуникационная процедура, преобразование данных, кодирование, правила (инструкции), XML

84

Редактор Н. Б. Лурье Технический редактор Н. С. Гришанова Корректор С. В. Смирнова Компьютерная верстка Т. Ф. Кузнецовой

Слано в набор 21.01.2011. Подписано а печать 27.04.2011. Формат 60x94'/^. Бумага офсетная. Гарнитура А риал. Печать офсетная Уел. печ. л. 10.70. Уч.-иэд. л. 0.72. Тираж 109 эм. За*. 49

ФГУП кСТАНДАРТИНФОРМ». 123995 Москва. Гранатный пер.. 4.

WWW 90stfnt0.ru    

Набрано и отпечатано в Калужской типографии стандартов, 249021 Калуга, ул. Московская. 256.