ГОСТ ISO/IEC 24824-1-2013 Информационные технологии. Общие правила применения ASN.1. Быстрые команды. Часть 1

Обложка ГОСТ ISO/IEC 24824-1-2013 Информационные технологии. Общие правила применения ASN.1. Быстрые команды. Часть 1
Обозначение
ГОСТ ISO/IEC 24824-1-2013
Наименование
Информационные технологии. Общие правила применения ASN.1. Быстрые команды. Часть 1
Статус
Действует
Дата введения
2015.09.01
Дата отмены
-
Заменен на
-
Код ОКС
35.100.60

МЕЖГОСУДАРСТВЕННЫЙ СОВЕТ ПО СТАНДАРТИЗАЦИИ, МЕТРОЛОГИИ И СЕРТИФИКАЦИИ (МГС)

INTERSTATE COUNCIL FOR STANDARDIZATION. METROLOGY AND CERTIFICATION

(ISC)

МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ

ГОСТ ISO/IEC 24824-1 — 2013

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

ОБЩИЕ ПРАВИЛА ПРИМЕНЕНИЯ ASN.1

Быстрые команды

Часть 1

(ISO/IEC 24824-1:2007, IDT)

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

Москва 2015

ГОСТ ISO/IEC 24824-1—2013

Предисловие

Цели, основные принципы и основной порядок проведения работ по межгосударственной стандартизации установлены ГОСТ 1.0—92 «Межгосударственная система стандартизации. Основные положения» и ГОСТ 1.2—2009 «Межгосударственная система стандартизации. Стандарты межгосударственные. правила и рекомендации по межгосударственной стандартизации. Правила разработки, принятия, применения, обновления и отмены»

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

1 ПОДГОТОВЛЕН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт «ТЕСТ» (ФГУП ГосНИИ «ТЕСТ»)

2 ВНЕСЕН Федеральным агентством по техническому регулированию и метрологии (Росстандарт)

3 ПРИНЯТ Межгосударственным советом по стандартизации, метрологии и сертификации (протокол от 14 ноября 2013 г. No 44)

За принятие проголосовали:

Кратки; наименование страны поМК(ИСО 31661 004-97

Код страны по МК (ИСО 3166)004-97

Сокращенное наименование национального органа по стандартизации

Армения

АМ

Минэкономики Республики Армения

Киргизия

KG

Кыргызстандарг

Россия

RU

Росстандарт

4 Приказом Федерального агентства по техническому регулированию и метрологии от 11 июня 2014 г. No 565-ст межгосударственный стандарт ГОСТ ISO/IEC 24824-1 —2013 введен в действие в качестве национального стандарта Российской Федерации с 1 сентября 2015 г.

5 Настоящий стандарт идентичен международному стандарту ISO/IEC 24824-1:2007 Information technology — Generic applications of ASN.1: Fast infoset. Part 1 (Информационные технологии. Общие правила применения ASN.1. Быстрые команды. Часть 1).

Перевод с английского языка (ел).

Сведения о соответствии межгосударственных стандартов ссылочным международным стандартам приведены в дополнительном приложении ДА.

Степень соответствия — идентичная (IDT)

6 ВВЕДЕН ВПЕРВЫЕ

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

© . 2015

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

II

ГОСТ ISO/IEC 24824-1-2013

Содержание

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

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

2.1 Идентичные рекомендации и международные стандарты...............................

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

3 Термины и определения..............................................................

3.1 Термины ASN.1..................................................................

3.2 Термины ECN...................................................................

3.3 Термины nolSO/IEC 10646 ........................................................

3.4 Дополнительные термины.........................................................

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

5 Нотация............................................................................

6 Принципы построения и использования словарных таблиц.................................

7 Определения типов ASN.1............................................................

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

7.2 Тип Document...................................................................

7.3 Тип Element....................................................................

7.4 Тип Attribute..................................................................

7.5 Тип Processinginstruction.....................................................

7.6 Тип UnexpandedEntityReference.................................................

7.7 Тил CharacterChunk............................................................

7.8 Тип Comment....................................................................

7.9 Тип DocumentTypeDeclaration...................................................

7.10 Тип UnparsedEntity...........................................................

7.11 Тип Notation..................................................................

7.12 Тип NamespaceAttribute.......................................................

7.13 ТипIdentifyingStringOrlndex.................................................

7.14 Тип NonldentifyingStringOrlndex.............................................

7.15 Тип NameEurrogate.............................................................

7.16 Тип OualifiedNameCrIndex......................................................

7.17 Тип EncodedCharacterString...................................................

8 Построение и обработка документа быстрого инфо-набора.................................

8.1 Концептуальный порядок компонентов абстрактного значения типа Document..............

8.2 Таблица алфавитов с ограниченной областью распространения.........................

8.3 Таблица алгоритмов кодирования...................................................

8.4 Динамические таблицы строк......................................................

8.5 Динамические таблицы имен и идентификаторы имен..................................

9 Встроенные алфавиты с ограниченной областью распространения..........................

9.1 «Цифровой» алфавит с ограниченной областью распространения.......................

9.2 Алфавит с ограниченна областью распространения «дата и время».....................

10 Встроенные алгоритмы кодирования...................................................

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

10.2 Алгоритм кодирования «hexadecimal»..............................................

10.3 Алгоритм кодирования «base64»..................................................

10.4 Алгоритм кодирования «short»....................................................

10.5 Алгоритм кодирования «int».......................................................

10.6 Алгоритм кодирования «long».....................................................

10.7 Алгоритм кодирования «boolean»..................................................

10.8 Алгоритм кодирования «float».....................................................

10.9 Алгоритм кодирования «double»...................................................

10.10 Алгоритм кодирования «uuid»....................................................

10.11 Алгоритм кодирования «cdata»...................................................

11 Ограничения на поддерживаемые инфо-наборы XML и некоторые упрощения................

QWWWWWWMtOK)rs)MMKJN>KJK)MMhJKJNJMK)rOM^-‘-i^->-‘-‘^-‘-‘-‘-J'JNO>a>CnA^^A^WK)M N>NJ^^OOO<OcOcDCDCDCDC003CD--JCncncnCncnGJKJ^OcOCD03-J^lCr>cr>Cncn4xW

in

ГОСТ ISO/IEC 24824-1—2013

12 Битовое кодирование типа Document..................................................33

Приложение А (обязательное) Модуль ASN.1 и модули ECN для документов быстрого инфо-набора....................................................35

Приложение В (обязательное) MIME-медиатип для документов быстрого инфо-набора............61

Приложение С (справочное) Описание кодирования документа быстрого инфо-набора............63

Приложение D (справочное) Примеры кодирования инфо-наборов XML как документов быстрого инфо-набора....................................................77

Приложение Е (справочное) Присвоение значений идентификаторов объектов.................100

Приложение ДА (справочное) Сведения о соответствии межгосударственных стандартов ссылочным международным стандартам (международным документам).........101

Библиография.......................................................................102

IV

ГОСТ ISO/IEC 24824-1—2013

МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ

Информационные технологии ОБЩИЕ ПРАВИЛА ПРИМЕНЕНИЯ ASN.1

Быстрые команды

Ч а с т ь 1

Information technologies. Generic applications of ASN.1. Fast infoset. Part 1

Дата введения — 2015—09—01

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

В настоящем стандарте определен тип ASN.1 (no ISO/IEC 8824-1). абстрактные значения которого представляют экземпляры инфо-набора W3C XML. Также определены двоичные кодирования для указанных значений с использованием нотации контроля кодирования ASN.1 (по ISO/IEC 8825-3).

Примечание — Данные кодирования называют документами быстрого инфо-набора.

В настоящем стандарте также определены методы:

- минимизирующие размер документов быстрого инфо-набора.

- максимизирующие скорость создания и обработки документов быстрого инфо-набора,

- позволяющие (создателю документа быстрого инфо-набора) определять дополнительные обрабатываемые данные.

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

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

Третий метод заключается в предоставлении дополнительных обрабатываемых данных и URI. которые идентифицируют форму и семантику этих данных. Спецификация конкретных форм дополнительных обрабатываемых данных и их использование не входят в область применения настоящего стандарта.

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

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

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

Кроме того, в настоящем стандарте определен медиатип многоцелевых расширений интернет-по-чты (MIME), который идентифицирует документ быстрого инфо-набора.

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

1

ГОСТ ISO/IEC 24824-1—2013

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

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

2.1 Идентичные рекомендации и международные стандарты

- ITU-T Recommendation Х.667 (2004) | ISO/IEC 9834-8:2005’ Information technology — Open Systems Interconnection — Procedures for the operation of OS I Registration Authorities: Generation and registration of Universally Unique Identifiers (UUlDs) and their use as ASN.1 Object Identifier components (Рекомендация МСЭ-Т X.667 (2004) | ISO/IEC 9834-8:2005 Информационные технологии. Взаимосвязь открытых систем. Процедуры для работы регистрационных органов в системе OSI. Часть 8. Создание и регистрация универсально уникальных идентификаторов и их использование в качестве компонентов идентификаторов объектов ASN.1)

- ITU-T Recommendation Х.680 (2002) | ISO/IEC 8824-1:20022 Information technology — Abstract Syntax Notation One (ASN.1): Specification of baste notation (Рекомендация МСЭ-Т Х.680 (2002) | ISO/ IEC 8824-1:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 1. Спецификация базовой нотации)

- ITU-T Recommendation Х.681 (2002) | ISO/IEC 8824-2:20023 Information technology — Abstract Syntax Notation One (ASN.1): Information object specification (Рекомендация МСЭ-Т Х.681 (2002) | ISO/ IEC 8824-2:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 2. Спецификация информационных объектов) f

- ITU-T Recommendation Х.682 (2002) | ISO/IEC 8824-3:20024 Information technology — Abstract Syntax Notation One (ASN.1): Constraint specification (Рекомендация МСЭ-Т Х.682 (2002) | ISO/IEC 8824-3:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 3. Спецификация ограничений) t

- ITU-T Recommendation Х.683 (2002) | ISO/IEC 8824-4.20025 Information technology — Abstract Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications (Рекомендация МСЭ-Т Х.683 (2002) | ISO/IEC 8824-4:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 4. Спецификация для параметризации ASN.1) f

- ITU-T Recommendation Х.690 (2002) | ISO/IEC 8825-1:2002е Information technology — ASN.1 encoding njles: Specification of Basic Encoding Rules (BER). Canonical Encoding Rules (CER). and Distinguished Encoding Rules (DER) [Рекомендация МСЭ-Т Х.690 (2002) | ISO/IEC 8825-1:2002 Информационные технологии. Правила кодирования ASN.1. Часть 1. Спецификация основных (BER). канонических (CER) и различительных правил кодирования (DER)] Т

- ITU-T Recommendation Х.691 (2002) | ISO/IEC 8825-2:2002? Information technology — ASN.1 encoding rules: Specification of Packed Encoding Rules (PER) [Рекомендация МСЭ-Т Х.691 (2002) | ISO/IEC 8825-2:2002 Информационные технологии. Правила кодирования ASN.1. Часть 2. Спецификация правил уплотненного кодирования (PER)] f

- ITU-T Recommendation X.692 (2002) | ISO/IEC 8825-3:20026 Information technology — ASN.1 encoding rules: Specification of Encoding Control Notation (ECN) [Рекомендация МСЭ-Т X.692 (2002) | ISO/ IEC 8825-3:2002 Информационные технологии. Правила кодирования ASN.1. Часть 3. Спецификация нотации контроля кодирования (ECN)]

- ITU-T Recommendation Х.693 (2001) | ISO/IEC 8825-4 20029 Information technology — ASN.1 encoding rules. XML Encoding Rules (XER) [Рекомендация МСЭ-Т Х.693 (2001) | ISO/IEC 8825-4:2002 Информационные технологии. Правила кодирования ASN.1. Часть 4. Правила кодирования XML (XER)] t

’ Отменен. Действует ISO/IEC 9834-8:2014. 2 Отменен. Действует ISO.1EC 8824-1:2008. 3 Отменен. Действует ISO/IEC 8824-2:2008. 4 Отменен. Действует ISO/IEC 8824-3:2008. 5 Отменен. Действует ISO/IEC 8824-4:2008. 6 Отменен. Действует ISO/IEC 8825-1:2008. 7 Отменен. Действует ISO/IEC 8825-2:2008. 3 Отменен. Действует ISO/IEC 8825-3:2008. 9 Отменен. Действует ISO/IEC 8825-4:2008.

2

ГОСТ ISO/IEC 24824-1-2013

Примечание — Приведен полный перечень рекомендаций и международных стандартов по ASN.1. так как все они тиогут бьпь применены в конкретных случаях использования настоящего стандарта. Если в тексте настоящего стандарта нет прямых ссылок на какой-либо документ, то в приведенном списке данный документ помечен символом f.

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

- ISO 8601:2004. Data elements and interchange formats — Information interchange — Representation of dates and times (ISO 8601:2004 Элементы данных и форматы для обмена информацией. Обмен информацией. Представление дат и времени)

- ISO/IEC 10646:20031 Information technology — Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646:2003 Информационные технологии. Универсальный многооктетный набор кодированных символов (UCS)]

- The Unicode Standard. Version 4.0, The Unicode Consortium (Reading. MA. Addison-Wesley) (Стандарт Юникод, версия 4.0. Консорциум Юникода)

Примечание 1 — Графические символы (и их кодирования), определенные в стандарте Юникод, идентичны тем. которые определены в ISO/IEC 10646-1. а стандарт Юникод включен в перечень потому, что в нем определены имена управляющих символов и аббревиатура UTF-16BE.

- W3C XML 1.0:2004. Extensible Markup Language (XML) 1.0 (Third Edition). W3C Recommendation. Copyright © (4 February 2004] Worid Wide Web Consortium (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University), http://www.w3.org/TR/2000/REC-xml-20040204/ (W3C XML 1.0:2004. Расширяемый язык разметки (XML) 1.0 (третья редакция). Рекомендация консорциума W3C. © [4.02.2004] Консорциум Всемирной паутины (Массачусетский технологический институт. Национальный институт исследований в области компьютерной обработки данных и автоматики. Университет Кэйо), http:/Avww.w3.org/TR/2000/REC-xml-20040204/)

- W3C XML 1.1:2004. Extensible Markup Language (XML) 1.1. W3C Recommendation. Copyright © [4 February 2004] World Wide Web Consortium (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University). http://www.w3.org/TR/2000/REC-xml11-20040204/ (W3C XML 1.1:2004. Расширяемый язык разметки (XML) 1.1. Рекомендация консорциума W3C. © [4.02.2004] Консорциум Всемирной паутины (Массачусетский технологический институт. Национальный институт исследований в области компьютерной обработки данных и автоматики. Университет Кэйо). http:/Avww.w3.org/TR/2000/REC-xml11-20040204/)

Примечание 2 — В перечень включены ссылки как на W3C XML 1.0, так и на W3C XML 1.1. поскольку ни один из них не является подмножеством другого. Данные ссылки использованы только в 3.4.10.

- W3C XML Information Set:2004, XML Information Set (Second Edition), W3C Recommendation. Copyright © [04 February 2004] World Wide Web Consortium (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University). http://www.w3.org/TR/2004/REC-xml-infoset-20040204/(Информационный набор XML:2004. Информационный набор XML (вторая редакция). Рекомендация консорциума W3C. ©[04.02.2004] Консорциум Всемирной паутины (Массачусетский технологический институт. Национальный институт исследований в области компьютерной обработки данных и автоматики. Университет Кэйо). http://www.w3.org/TR/2004/REC-xml-infoset-200402040

- W3C XML Namespaces 1.0:1999, Namespaces in XML. W3C Recommendation. Copyright ©[14 January 1999] World Wide Web Consortium (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University). http://www.vr3.org/TR/1999/REC-xm-lnames-19990114/ (Пространства имен XML 1.0:1999. Пространства имен в XML. Рекомендация консорциума W3C. © [14.01.1999] Консорциум Всемирной паутины (Массачусетский технологический институт. Национальный институт исследований в области компьютерной обработки данных и автоматики. Университет Кэйо). http:/;\vww.w3.org/TR/1999/REC-xm-lnames-19990114f)

- W3C XML Namespaces 1.1:2004. Namespaces in XML 1.1. W3C Recommendation. Copyright © [4 February 2004] World Wide Web Consortium (Massachusetts Institute of Technology. Institut National de Recherche en Informatique et en Automatique. Keio University), http://www.w3.org,TR/2004/REC-xm-l-namesl 1-20040204/ (Пространства имен XML 1.1:2004. Пространства имен в XML 1.1. Рекомендация консорциума W3C. © [4.02.2004] Консорциум Всемирной паутины (Массачусетский технологический

1 Отменен. Действует ISO/IEC 10646:2014.

3

ГОСТ ISO/IEC 24824-1—2013

институт. Национальный институт исследований в области компьютерной обработки данных и автоматики. Университет Кэйо). http://www.w3.org/TR/2004/REC-xm-l-names11 -20040204/)

Примечание 3 — В перечень включены ссылки как на пространства имен W3C XML 1.0. так и на пространства имен W3C XML 1.1. поскольку ни одно из них не является подмножеством другого. Данные ссылки использованы только в 3.4.10.

- IETF RFC 2045 (1996), Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies (IETF RFC 2045 (1996). Многоцелевые расширения интернет-почты (MIME). Часть 1. Формат текста интернет-сообщения)

- IETF RFC 2396 (1998). Uniform Resource Identifiers (URI): Generic Syntax (IETF RFC 2396 (1998). Универсальный код ресурса (URI): Основной синтаксис)

- IEEE 754-19851 IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754-1985. Стандарт формата представления чисел с плавающей точкой)

3 Термины и определения

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

3.1 Термины ASN.1

В настоящем стандарте применены следующие термины no ISO/IEC 8824-1:

а) тип choice;

b) тип sequence;

с) тип sequence-of.

3.2 Термины ECN

В настоящем стандарте применены следующие термины по ISO/IEC 8825-3:

а) модуль определения кодирования (EDM);

Ь) модуль связи кодирования (ELM).

3.3 Термины по ISO/IEC 10646

В настоящем стандарте применен следующий термин по ISO/IEC 10646:

а) основная многоязычная плоскость.

3.4 Дополнительные термины

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

3.4.1 Base64. Метод кодирования, представляющий значение строки октетов в виде строки символов. в которой использован алфавит с ограниченной областью распространения из 65 символов (см. 10.3 и IETF RFC 2045).

3.4.2 строка символов (character string): Строка абстрактных символов по ISO/IEC 10646. не подразумевающая какого-либо способа кодирования.

3.4.3 алгоритм кодирования (encoding algorithm): Точная спецификация того, как эффективно закодировать в виде октетов строку символов с заданными характеристиками.

Примечание — Примером алгоритма кодирования является кодирование строки вида «-32176» в виде двоичного целого дополнения в двух октетах. Двухоктегное кодирование следует сопроводить индексом словарной таблицы, идентифицирующим этот алгоритм кодирования.

3.4.4 внешний словарь (external vocabulary): Набор словарных таблиц, указанный URI (см. 7.2.14).

3.4.5 документ быстрого инфо-набора (fast infoset document): Инфо-набор XML, представленный в соответствии с требованиями настоящего стандарта.

3.4.6 окончательный словарь (final vocabulary): Содержимое словарных таблиц по окончании создания или обработки документа быстрого инфо-набора.

3.4.7 информационный элемент (information item): Каждый из типов элементов, составляющих инфо-набор XML.

1 Отменен. Действует IEEE 754-2008.

4

ГОСТ ISO/IEC 24824-1-2013

3.4.8 исходный словарь (initial vocabulary): Набор словарных таблиц, установленный информацией о заголовке документа быстрого инфо-набора, который (опционально) ссылается на внешний словарь и (опционально) предоставляет дополнительные записи таблицы.

3.4.9 идентификатор имени (name surrogate): Набор из трех индексов словарной таблицы (первые два являются опциональными), который используют для представления квалифицированного имени (см. 3.4.11).

3.4.10 корректно сформированный в отношении пространств имен документ XML (namespace-well-formed XML document): Документ W3C XML 1.0. сформированный корректно в соответствии с пространством имен W3C XML 1.0, либо документ W3C XML 1.1. сформированный корректно в соответствии с пространством имен W3C XML 1.1.

3.4.11 квалифицированное имя (qualified name). Набор, состоящий из свойств [prefix], [namespace name] и [local name] информационного элемента element или информационного элемента attribute.

3.4.12 алфавит с ограниченной областью распространения (restricted alphabet): Упорядоченный набор отдельных символов по ISO/1EC 10646, который позволяет компактно кодировать любую строку символов, полностью состоящую из символов данного набора.

3.4.13 индекс словарной таблицы (vocabulary table index): Положительное целое значение, идентифицирующее запись в словарной таблице.

3.4.14 словарные таблицы (vocabulary tables): Набор концептуальных таблиц (обычно, но необязательно, создаваемых динамически), связанный с документом быстрого инфо-набора, который содержит строки символов или другую информацию и поддерживает использование обычно малых положительных целых значений (индексов словарных таблиц) для идентификации записей в таблицах.

Примечание — Примерами словарных таблиц являются таблицы, содержащие строки символов, которые являются свойством [local name] информационных элементов attribute или element, или строки символов, соответствующие последовательностям информационных элементов character, которые являются членами свойства [children] информационных элементов element.

3.4.15 декларация XML (XML declaration): Кодирование UTF-8 заданной строки символов (см. 12.3), которое может быть включено в начало документа быстрого инфо-набора для идентификации данного кодирования как документа быстрого инфо-набора и для того, чтобы отличить его от документов W3C XML 1.0 и документов W3C XML 1.1.

3.4.16 инфо-набор XML (XML infoset): Абстрактное множество данных, описывающее информацию в корректно сформированном в отношении пространств имен документе XML. как определено в инфо-наборе W3C XML.

3.4.17 пробел XML (XML whitespace): Один или несколько следующих символов Unicode: HORIZONTAL TABULATION (9). LINE FEED (10). CARRIAGE RETURN (13) или SPACE (32).

Примечание — Эти символы соответствуют символам eS» (пробелы) как в W3C XML 1.0. так и в W3C XML 1.1 (см. W3C XML 1.0, п. 2.3 и W3C XML 1.1, п. 2.3). Символы NEXT LINE (133) и LINE SEPARATOR (8232). которые могут встретиться в корректно сформированных в отношении пространств имен документах W3C XML 1.1 (см. W3C XML 1.1, п. 2.11), преобразуются в символы LINE FEED при обработке конца строки (см. W3C XML 1.1. п. 2.11). Когда эти символы встречаются в инфо-наборе XML, созданном из корректно сформированного в отношении пространств имен документа W3C XML 1.1. они не являются пробелами XML.

4 Сокращения

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

ASN.1 — Abstract Syntax Notation One (абстрактная синтаксическая нотация версии 1);

ECN — Encoding Control Notation (нотация контроля кодирования);

MIME — Multipurpose Internet Mail Extensions (многоцелевые расширения интернет-почты):

UBL — Universal Business Language (универсальный бизнес-язык);

URI — Uniform Resource Identifier (унифицированный идентификатор ресурса).

UTF-8 — Universal Transformation Function 8-bit (универсальная функция преобразования. 8 бит, no ISO/IEC 10646, Приложение D);

UTF-16BE — Universal Transformation Function 16-bit Big Endian (универсальная функция преобразования, 16 бит, по Unicode, п. 2.6);

UUID — Universally Unique Identifier (универсальный уникальный идентификатор);

XML — extensible Markup Language (расширяемый язык разметки).

5

ГОСТ ISO/IEC 24824-1—2013

5 Нотация

5.1 Для формального определения типов данных, кодирования которых являются документами быстрого инфо-набора, в настоящем стандарте используют нотацию ASN.1 по ISO/IEC 8824-1.

Примечание — В разделе 12 определено применение ISO/IEC 8825-3 к определению тисовASN.1. обеспечивающее кодирование документа быстрого инфо-набора на уровне битов.

5.2 В настоящем стандарте полужирный шрифт Courier New используется для нотации ASN.1, а полужирный шрифт Arial — для синтаксиса W3C XML и имен информационных элементов инфонабора XML.

5.3 Имена свойств информационных элементов пишут полужирным шрифтом Arial и заключают в квадратные скобки (например, [children]).

5.4 Имена категорий строк символов (см. 8.4.2) и категорий уточненных имен пишут ПРОПИСНЫМИ БУКВАМИ.

5.5 В настоящем стандарте позиции битов внутри октета специфицируют с использованием терминов «первый бит», «второй бит» и т. д. до «восьмого бита», где первый бит является самым старшим битом октета, а восьмой бит — самым младшим.

6 Принципы построения и использования словарных таблиц

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

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

6.2 Содержимое словарных таблиц определяет создатель документа быстрого инфо-набора из инфо-набора XML.

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

6.4 В ходе создания и обработки документа быстрого инфо-набора некоторые словарные таблицы увеличиваются от исходного словаря до окончательного, и поэтому имена таких словарных таблиц содержат слово «динамическая». Методы удаления записей из каких-либо таблиц отсутствуют.

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

Примечание — Значения индексов словарных таблиц начинаются с единицы, а не с нуля потому, что значение ноль (когда оно допустимо) имеет специальный смысл «пустая строка символов» в поле, которое в противном случае может содержать индекс словарной таблицы.

6.6 Для поддержки такого неявного присвоения индексов словарных таблиц определен концептуальный порядок обработки компонентов (на любую глубину) документа быстрого инфо-набора (см. 8.1).

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

6.7 Словарные таблицы применяют для разных целей (см. раздел 8). их основной функцией является обеспечение использования индексов словарных таблиц вместо записей словарных таблиц, когда эти индексы меньше по размеру (и. возможно, будут быстрее обработаны), чем записи. Некоторые встроенные записи для некоторых словарных таблиц определены в разделе 9. Эти записи всегда неявно присутствуют в указанных словарных таблицах и имеют значения индексов словарных таблиц, определенные в разделе 9.

6

ГОСТ ISO/IEC 24824-1-2013

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

6.9 Точная форма и смысл записей словарных таблиц определены в разделе 8; в большинстве случаев записи представляют собой строки символов переменной длины, часто короткие, но потенциально длиной до 232 октет.

6.10 Соответствующий требованиям создатель документа быстрого инфо-набора должен осуществлять все добавления в словарные таблицы так. как определено в 7.13.7, 7.14.6, 7.14.7 и 7.16.7. Тем самым гарантируется, что число записей в каждой словарной таблице никогда не превысит 220.

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

6.11 Соответствующий требованиям обработчик документа быстрого инфо-набора должен осуществлять все добавления в словарные таблицы так. как определено в 7.13.8. 7.14.111 и 7.16.8. Тем самым гарантируется, что указанные в 6.10 ограничения не будут нарушены.

7 Определения типов ASN.1

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

7.1.1 В настоящем стандарте определен набор типов ASN.1. поддерживающих представление инфо-набора XML. Корневым типом данного набора является тип Document.

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

Примечание — Инфо-набор XML. не соответствующий установленным ограничениям, не может быть представлен в виде документа быстрого инфо-набора или корректно сформированного в отношении пространств имен документа XML.

7.1.3 В настоящем стандарте для каждого вида информационных элементов, специфицированного в инфо-наборе W3C XML. приведено определение соответствующего типа ASN.1. Это определение типа всегда является последовательностью с компонентами, соответствующими свойствам информационного элемента.

7.1.4 Некоторые свойства информационных элементов не включены в определения типов ASN.1 (см. 11.4).

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

7.1.6 В разделе 12 определено кодирование типа Document.

7.2 Тил Document

7.2.1 Тип Document определен следующим образом:

Document :: = SEQUENCE {

additional-data SEQUENCE (SIZE(1..one-meg)) OF

additional-datum SEQUENCE {

id URI,

data NonEmptyOctetString } OPTIONAL,

initial-vocabulary SEQUENCE {

Ссылка в ISO/IEC 24824-1:2007 дана ошибочно, пункт 7.14.11 в оригинале отсутствует.

7

ГОСТ ISO/IEC 24824-1—2013

external-vocabulary URI OPTIONAL,

restricted-alphabets SEQUENCE (SIZE(1..256)) OF

NonEmptyOctetString OPTIONAL, encoding-algorithms SEQUENCE (SIZE(1..256)) OF

NonEmptyOctetString OPTIONAL, prefixes SEQUENCE (SIZE (1..one-meg) ) OF

NonEmptyOctetString OPTIONAL, namespace-names SEQUENCE (SIZE(1..one-meg)) OF

NonEmptyOctetString OPTIONAL, local-names SEQUENCE (SIZE(1..one-meg)) OF

NonEmptyOctetString OPTIONAL, other-ncnames SEQUENCE (SIZE(1..one-meg)) OF

NonEmptyOctetString OPTIONAL, other-uris SEQUENCE (SIZE(1..one-meg)) OF

NonEmptyOctetString OPTIONAL, attribute-values SEQUENCE (SIZE(1..one-meg)) OF

EncodedCharacterString OPTIONAL, content-character-chunks SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, other-strings SEQUENCE (SIZE(1..one-meg)) OF

EncodedCharacterString OPTIONAL, element-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL, attribute-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL } (CONSTRAINED BY { -- Если присутствует компонент initial-vocabulary, то -- должен присутствовать как минимум один из его -- компонентов -- }) OPTIONAL, notations SEQUENCE (SIZE(1..MAX)) OF

Notation OPTIONAL, unparsed-entities SEQUENCE (SIZE(1..MAX)) OF

UnparsedEntity OPTIONAL, character-encoding-scheme NonEmptyOctetString OPTIONAL, standalone BOOLEAN OPTIONAL,

version NonldentifyingStringOrlndex OPTIONAL

-- Категория OTHER STRING --, children SEQUENCE (SIZE(0..MAX)) OF

CHOICE ( element Element,

processing-instruction Processinginstruction,

comment Comment,

document-type-declaration DocumentTypeDeclaration )} где значением one-meg является:

one-meg INTEGER ::» 1048576 -- Два в степени 20

Тип NonEmptyOctetString:

NonEmptyOctetString ::= OCTET STRING (SIZE(1..four-gig)) где значением four-gig является: four-gig INTEGER ::= 4294967296 -- Два в степени 32 Тип URI: URI ::= NonEmptyOctetString 7.2.2 Типы EncodedCharacterString, NameSurrogate, Notation, UnparsedEntity, NonldentifyingStringOrlndex, Element, Processinginstruction, Comment и DocumentTypeDeclaration определены в 7.17, 7.15, 7.11, 7.10, 7.14. 7.3, 7.5, 7.8 и 7.9 соответственно.

7.2.3 Тип URI должен быть URI no IETF RFC 2396.

8

ГОСТ ISO/IEC 24824-1-2013

7,2.4 Компонент restricted-alphabets в initial-vocabulary (при его наличии) должен содержать одну или несколько строк символов, каждая их которых, в свою очередь, содержит символы алфавита с ограниченной областью распространения. Каждая строка символов должна содержать как минимум два символа, и все символы в строке символов должны быть различными.

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

7.2.5 Компонент encoding-algorithms в initial-vocabulary (при его наличии) должен содержать один или несколько URI. каждый из которых идентифицирует алгоритм кодирования.

Примечание — В настоящем стандарте определены встроенные алгоритмы кодирования (см. раздел 10) с определенными индексами словарных таблиц; определение дополнительных алгоритмов кодирования, связанных с ними индексов словарных таблиц и способов определения таких алгоритмов не входит в область применения настоящего стандарта. Информация, необходимая для определения алгоритма кодирования, специфицирована в 8.3.3.

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

Примечание — Каждый информационный элемент Document без ссылки на внешний словарь (см. 7.2.13) также определяет окончательный словарь, который может быть использован как внешний словарь какого-либо другого документа быстрого инфо-набора.

7.2.7 Компонент additional-data (при его наличии) должен содержать один или несколько компонентов additional-datum для обеспечения возможности дополнительных методов обработки документа быстрого инфо-набора.

Примечания

1 Примером являются данные, которые предоставляют обработчику документа быстрого инфо-набора доступ к частям документа быстрого инфо-набора без необходимости обрабатывать весь документ. Форма таких данных не стандартизирована.

2 Количество компонентов additional-daturn ограничено 220 компонентами (см. 7.2.1).

7.2.8 Каждый компонент additional-datum должен состоять из:

а) компонента id (значение типа uri); URI должен ссылаться на спецификацию, определяющую форму и семантику компонента data.

Примечание — Форма additional-daturn может быть задана как абстрактный тип в сочетании с правилом кодирования или иным пригодным способом;

Ь) компонента data, являющегося строкой октетов, которая содержит дополнительные данные обработки.

7.2.9 Использование компонента additional-data подчиняется следующим условиям:

а) компонент additional-datum может быть проигнорирован обработчиком документа быстрого инфо-набора, если URI не распознан или дополнительная обработка рассматривается как не относящаяся к деятельности обработчика документа быстрого инфо-набора:

Ь) обработчик документа быстрого инфо-набора, игнорирующий все компоненты additional-datum, тем не менее способен создать инфо-набор XML. эквивалентный инфо-набору XML, использованному для создания документа быстрого инфо-набора.

7.2.10 Могут присутствовать несколько компонентов additional-datum с одним и тем же URI. и они должны быть обработаны в соответствии со спецификацией, связанной с URI.

7.2.11 Компонент initial-vocabulary предоставляет данные, которые (совместно с некоторыми встроенными записями таблиц) полностью определяют первоначальное содержимое таблицы алфавитов с ограниченной областью распространения (см. 8.2). таблицы алгоритмов кодирования (см. 8.3), динамических таблиц строк (см. 8.4) и динамических таблиц имен (см. 8.5) данного документа быстрого инфо-набора (исходный словарь документа быстрого инфо-набора). Исходный словарь состоит из следующих данных:

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

9

ГОСТ ISO/IEC 24824-1—2013

b) упорядоченного набора алгоритмов кодирования (см. 8.3.2), содержащего как минимум встроенные алгоритмы кодирования (см. раздел 10);

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

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

Примечание — Исходный словарь не может быть полностью пустым, так как он всегда содержит (как минимум) встроенные алфавиты с ограниченной областью распространения и встроенные алгоритмы кодирования. Однако для документов быстрого инфо-набора не является необычной ситуация, когда исходный словарь содержит только зги данные, так как решение (создателя документа быстрого инфо-набора) о том. как использовать компонент initial-vocabulary, зависит от реализации, и в некоторых реализациях может быть выбрано динамическое добавление записей во все словарные таблицы (внутри тела документа быстрого инфо-набора).

7.2.12 Исходный словарь документа быстрого инфо-набора должен быть определен следующим образом;

а) если компонент initial-vocabulary отсутствует, то исходный словарь должен состоять только из встроенных записей таблиц, определенных в 7.2.21, 7.2.22 и в разделах 9 и 10;

Ь) если компонент initial-vocabulary присутствует, а компонент external-vocabulary отсутствует. то исходный словарь должен состоять из встроенных записей таблиц, определенных в 7.2.21. 7.2.22 и в разделах 9 и 10. с дополнительными записями таблиц (при их наличии), определенными в 7.2.16;

с) если компоненты initial-vocabulary и external-vocabulary присутствуют, то исходный словарь должен состоять из окончательного словаря, идентифицированного компонентом externalvocabulary. как определено в 7.2.13 и 7.2.14. с дополнительными записями таблиц (при их наличии), определенными в 7.2.16.

7.2.13 Компонент external-vocabulary идентифицирует окончательный словарь, используя один из определенных в 7.2.14 способов. Тип URI (см. 7.2.1) определяет окончательный словарь, который будет использован как внешний словарь одним из трех способов (см. 7.2.14).

Примечание — В настоящем стандарте не определены никакие внешние словари и URI. которые ссылаются на внешние словари. Такие внешние словари и URI могут быть определены как уполномоченные, имеющие возможность выделять UR1. и могут быть согласованы в частном порядке или стандартизированы.

7.2.14 Внешний словарь может быть специфицирован одним из трех способов:

а) как окончательный словарь документа быстрого инфо-набора, который не должен сам ссылаться на внешний словарь.

Примечания

1 Хранится локально окончательный словарь или только документ быстрого инфо-набора, а окончательный словарь создается динамически в ходе обработки — зависит от конкретной реализации.

2 Ограничение, состоящее в том. что окончательный словарь документа быстрого инфо-набора со ссылкой на внешний словарь не может быть использован в качестве внешнего словаря, установлено для того, чтобы упросить реализацию и избежать циклических ссылок;

Ь) как корректно сформированный в отношении пространств имен документ XML. который концептуально обрабатывается следующим образом:

1) должен быть определен инфо-набор XML данного корректно сформированного в отношении пространств имен документа XML;

2) должен быть создан документ быстрого инфо-набора для этого инфо-набора XML. как определено в настоящем стандарте, но он не должен содержать компонент initial-vocabulary, компонент add-to-table типа NonldentifyingStringOrIndex (CM. 7.14) всегда должен быть равен TRUE, и ни в одной из таблиц строк не должны присутствовать кратные идентичные строки символов;

3) окончательный словарь этого документа быстрого инфо-набора становится внешним словарем.

Примечание — Хранится локально окончательный словарь или только документ быстрого инфо-на-бора. а окончательный словарь создается динамически в ходе обработки — зависит от конкретной реализации;

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

Ю

ГОСТ ISO/IEC 24824-1-2013

Примечания

1 Спецификация нотации для определения словарных таблиц не входит в область применения настоящего стандарта.

2 Требование включать встроенные записи словарных таблиц при использовании этого способа гарантирует. что все словарные таблицы содержат встроенные записи таблиц.

7.2.15 Для внешнего словаря, определенного в соответствии с 7.2.14. всем записям таблиц, содержащим строки и имена, за исключением таблиц PREFIX и NAMESPACE NAME, должны быть присвоены последовательные индексы, начиная с 1. Записям таблиц PREFIX и NAMESPACE NAME должны быть присвоены последовательные индексы, начиная с 2. Всем алфавитам с ограниченной областью распространения, за исключением встроенных, должны быть присвоены последовательные индексы, начиная с 16. Всем алгоритмам кодирования, за исключением встроенных, должны быть присвоены последовательные индексы, начиная с 32.

7.2.16 Каждый компонент типа NonEmptyOctetString. EncodedCharacterString ИЛИ NameS-urrogate (при его наличии), который присутствует в любом из оставшихся компонентов initial-vocabulary, должен быть добавлен по порядку (см. 8.1) в словарную таблицу.

Таблица 1 — Соответствие идентификаторов компонентов словарным таблицам

Идентификатор компонента

Тип ASN.1 записи

Словарная таблица (см. раздел 8)

restricted-alphabets

NonEmptyOctetString

Таблица алфавитов с ограниченной областью распространения (см. 8.2)

encoding-algori thins

NonEmptyOctetString

Таблица алгоритмов кодирования (см. 8.3)

prefixes

NonEmptyOctetString

Таблица PREFIX (см. 8.4)

namespace-names

NonEmptyOctetString

Таблица NAMESPACE NAME (см. 8.4)

local-names

NonEmptyOctetString

Таблица LOCAL NAME (см. 8.4)

other-ncnames

NonEmptyOctetString

Таблица OTHER NCNAME (см. 8.4)

other-uris

NonEmptyOctetString

Таблица OTHER URI (см. 8.4)

attribute-values

EncodedCharacterString

Таблица ATTRIBUTE VALUE (см. 8.4)

conten t-charac ter-chunks

EncodedCharacterString

Таблица CONTENT CHARACTER CHUNK (см. 8.4)

other-strings

EncodedCharacterString

Таблица OTHER STRING (см. 8.4)

element-name-surrogates

NameSurrogate

Таблица ELEMENT NAME (см. 8.5)

attribute-name-surrogates

NameSurrogate

Таблица ATTRIBUTE NAME (см. 8.5)

7.2.17 Значение типа NonEmptyOctetString должно содержать кодирование UTF-8 (см. ISO/IEC 10646. Приложение D) строки символов.

7.2.18 Таблицы алфавитов с ограниченной областью распространения и алгоритмов кодирования в исходном словаре должны содержать не более 256 записей. Все остальные таблицы должны содержать не более 220 записей.

Примечание — Ограничение на количество записей должно гарантировать общие верхние границы индексов таблиц. Данное ограничение действует и тогда, когда записи таблицы добавляют динамически (см. 7.13.7. 7.14.6. 7.14.7 и 7.16.7). Данные ограничения не препятствуют кодированию любого инфо-набора XML как документа быстрого инфо-набора.

7.2.19 Встроенные алфавиты с ограниченной областью распространения имеют индексы словарных таблиц в диапазоне от 1 до 2 (см. раздел 9). Индексы словарных таблиц алфавитов с ограниченной областью распространения В компоненте restricted-alphabets в initial-vocabulary (при его наличии) должны присваиваться следующим образом:

а) если внешний словарь отсутствует или внешний словарь содержит только встроенные алфавиты с ограниченной областью распространения, то индексы присваивают, начиная с 16.

11

ГОСТ ISO/IEC 24824-1—2013

b) в противном случае индексы присваивают, начиная с единицы плюс наибольший индекс алфавита с ограниченной областью распространения во внешнем словаре.

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

7.2.20 Встроенные алгоритмы кодирования имеют индексы словарных таблиц в диапазоне от 1 до 10 (см. раздел 10). Индексы словарных таблиц алгоритмов кодирования в компоненте encodingalgorithms в initial-vocabulary (при его наличии) должны присваиваться следующим образом:

а) если внешний словарь отсутствует или внешний словарь содержит только встроенные алгоритмы кодирования, то индексы присваивают, начиная с 32;

Ь) в противном случае индексы присваивают, начиная с единицы плюс наибольший индекс алгоритма кодирования во внешнем словаре.

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

7.2.21 Таблица PREFIX должна содержать встроенную запись префикса «xml», которой присвоен индекс 1. Индексы словарных таблиц префиксов в компоненте prefixes в initial-vocabulary (при его наличии) должны присваиваться следующим образом:

а) если внешний словарь отсутствует или внешний словарь содержит только встроенную запись префикса, то индексы присваивают, начиная с 2;

Ь) в противном случае индексы присваивают, начиная с единицы плюс наибольший индекс префикса во внешнем словаре.

7.2.22 Таблица NAMESPACE NAME должна содержать следующую встроенную запись имени пространства имен:

hnp:/MvAv.w3.org/XML/1998/namespace

Данной записи должен быть присвоен индекс 1.

7.2.23 Индексы словарных таблиц имен пространств имен в компоненте namespace-names в initial-vocabulary (при его наличии) должны присваиваться следующим образом:

а) если внешний словарь отсутствует или внешний словарь содержит только встроенную запись имени пространства имен, то индексы присваивают, начиная с 2;

Ь) в противном случае индексы присваивают, начиная с единицы плюс наибольший индекс имени пространства имен во внешнем словаре.

7.2.24 Компонент notations представляет свойство [notations] информационного элемента document. Типом данного компонента является sequence-of (последовательность-из). хотя свойство [notations] определено в инфо-наборе W3C XML как неупорядоченный набор (информационных элементов notation).

Примечание — Здесь и далее используют тип sequence-of (последовательность-из). а не set-of (набор-из). так как последний не удовлетворяет потребности в строгом упорядочении всех компонентов документа быстрого инфо-набора (см. 8.1).

7.2.25 Компонент unparsed-entities представляет свойство [unparsed entities] информационного элемента document. Типом данного компонента является sequence-of (последовательность-из). хотя свойство [unparsed entities] и определено в инфо-наборе W3C XML как неупорядоченный набор (информационных элементов unparsed entity).

7.2.26 Компонент character-encoding-scheme представляет свойство [character encoding scheme] информационного элемента document. Типом данного компонента является NonEmptyOctetString. и значение должно содержать кодирование UTF-8 (см. ISO/IEC 10646. Приложение D) свойства [character encoding scheme]. Отсутствие этого компонента в абстрактном значении типа Document указывает на то, что свойство [character encoding scheme] имеет значение «UTF-8».

Примечание — Поддержка свойства [character encoding scheme] позволяет преобразовывать документы XML в документы быстрого инфо-набора и обратно без изменения схемы кодирования символов. Создатель документа быстрого инфо-набора из документа XML гложет закодировать свойство [character encoding scheme], полученное из декларации кодирования документа XML (см. W3C XML 1.0. п. 4.3.1 и W3C XML 1.1. п. 4.3.1). Обработчик документа быстрого инфо-набора может использовать компонент character-encoding-acheme (при его наличии), если хочет воспроизвести оригинальное кодирование.

7.2.27 Компонент standalone представляет свойство [standalone] информационного элемента document. Абстрактное значение TRUE представляет значение данного свойства yes. а абстрактное 12

ГОСТ ISO/IEC 24824-1-2013

значение FALSE — значение по. Отсутствие данного компонента в абстрактном значении типа Document указывает на то. что у свойства [standalone] нет значения.

7.2.28 Компонент version представляет свойство [version] информационного элемента document. Типом данного компонента является NonldentifyingStringOrlndex (см. 7.14). представляющий в данном случае строку символов категории OTHER STRING. Отсутствие данного компонента в абстрактном значении типа Document указывает на то. что у свойства [version] нет значения.

7.2.29 Компонент children представляет свойство [children] информационного элемента document. Ровно один элемент последовательности-из (sequence-of) (в любой позиции) должен использовать альтернативу element выборочного типа, и не более чем один элемент (в любой позиции) должен использовать альтернативу document-type-declaration. Все другие элементы (при их наличии) должны использовать альтернативу processing-instruction или comment.

7.2.30 Свойство [document element] информационного элемента document не включено в тип Document. Значение данного свойства всегда равно только одному информационному элементу element, который является членом свойства [children] информационного элемента document.

7.2.31 Свойство [base URI] информационного элемента document не включено в тип Document и не поддерживается в настоящем стандарте.

7.2.32 Свойство [all declarations processed] информационного элемента document не включено в тип Document и принимается имеющим значение true (см. 11.3).

7.3 Тип Element

7.3.1 Тип Element определен следующим образом: Element ::= SEQUENCE { namespace-attributes SEQUENCE (SIZE(1..MAX)) OF NamespaceAttribute OPTIONAL, qualified-name QualifiedNameOrlndex

-- Категория ELEMENT NAME --, attributes SEQUENCE (SIZE(1..MAX)) OF

Attribute OPTIONAL, children SEQUENCE (SIZE(0..MAX)) OF

CHOICE ( element Element,

processing-instruction Processinginstruction,

unexpanded-entity-reference UnexpandedEntityReference,

character-chunk Characterchunk,

comment Comment }}

7.3.2 Тилы NameSpaceAttribute, QualifiedNameOrlndex, Attribute, Processinginstruction, UnexpandedEntityReference, Characterchunk и Comment определены В 7.12, 7.16, 7.4. 7.5, 7.6. 7.7 и 7.8 соответственно.

7.3.3 Тип Element представляет информационный элемент element инфо-набора XML.

7.3.4 Компонент namespace-attributes представляет свойство [namespace attributes] информационного элемента element. Тилом данного компонента является sequence-of (последовательность-из). хотя свойство [namespace attributes] определено в инфо-наборе W3C XML как неупорядоченный набор (информационных элементов attribute).

Примечание — Типом данного компонента является sequence-of (ооследовательность-из) NamespaceAttribute (а не Attribute), хотя свойство [namespace attributes] информационного элемента element определено в инфо-наборе W3C XML как набор информационных элементов attribute. 8 ограниченном инфо-наборе XML (см. 11.3) свойства информационного элемента namespace могут быть определены из свойств информационного элемента attribute, представляющего атрибут пространства имен. Обратное верно только частично. но это ограничение считается приемлемым для предполагаемого использования настоящего стандарта (см. также примечание в 7.2.24).

7.3.5 Компонент qualified-name представляет квалифицированное имя (см. 3.4.11) информационного элемента element (т. е. набор, состоящий из свойств [prefix], [namespace name] и [local name] этого информационного элемента). Типом данного компонента является QualifiedNameOrlndex (см. 7.16), представляющий в данном случае квалифицированное имя категории ELEMENT NAME.

7.3.6 Компонент attributes представляет свойство [attributes] информационного элемента element. Типом данного компонента является sequence-of (ооследовательность-из), хотя свойство

13

ГОСТ ISO/IEC 24824-1—2013

(attributes] определено в инфо-наборе W3C XML как неупорядоченный набор (информационных элементов attribute).

7.3.7 Компонент children представляет свойство [children] информационного элемента element. Когда два или более соседних дочерних элемента являются информационными элементами character, для представления этих соседних информационных элементов character может быть использован один элемент Characterchunk.

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

7.3.8 Свойство [in-scope namespaces] информационного элемента element не включено в тип Element.

Примечание — В ограниченном инфо-наборе XML (см. 11.3) свойство [in-scope namespaces] информационного элемента element может быть определено из свойства [namespace attributes] информационного элемента element и свойства (namespace attributes] всех информационных элементов element (при их наличии), содержащих (прямо или косвенно) данный информационный элемент element.

7.3.9 Свойство (base URI] информационного элемента element не включено в тип Element и не поддерживается в настоящем стандарте.

7.3.10 Свойство [parent] информационного элемента element не включено в тип Element. Значением данного свойства для любого заданного информационного элемента element является информационный элемент document или element, содержащий заданный информационный элемент в качестве члена своего свойства [children].

7.4 Тип Attribute

7.4.1 Тип Attribute определен следующим образом:

Attribute ::« SEQUENCE (

qualified-name QualifiedNameOrIndex

— Категория ATTRIBUTE KAME --,

normalized-value NonldentifyingStringOrIndex

-- Категория ATTRIBUTE VALUE -- }

7.4.2 Типы QualifiedNameOrIndex и NonldentifyingStringOrlndex определены в 7.16 и 7.14 соответственно.

7.4.3 Тип Attribute представляет информационный элемент attribute инфо-набора XML.

7.4.4 Компонент qualified-name представляет квалифицированное имя (см. 3.4.11) информационного элемента attribute (т. е. набор, состоящий из свойств [prefix], (namespace name] и (local name] этого информационного элемента). Типом данного компонента является QualifiedNameOrindex (см. 7.16). представляющий в данном случае квалифицированное имя категории ATTRIBUTE NAME.

7.4.5 Компонент normalized-value представляет свойство [normalized value] информационного элемента attribute. Типом данного компонента является NonldentifyingStringOrlndex (см. 7.14), представляющий в данном случае квалифицированное имя категории ATTRIBUTE VALUE.

7.4.6 Длина строки символов, присвоенной normalized-value. не может превышать 232.

Примечание — Данное ограничение обусловлено определением ASN.1. которое разработано для оптимизации кодирований и простоты реализации (см. также 11.3, перечисление)).

7.4.7 Свойство [specified] информационного элемента attribute не включено в тип Attribute.

7.4.8 Свойство [attribute type] информационного элемента attribute не включено в тип Attribute.

7.4.9 Свойство [references] информационного элемента attribute не включено в тип Attribute.

Примечание — В ограниченном инфо-наборе XML (см. 11.3) свойство [references] информационного элемента attribute может быть определено из свойства [normalized value] информационного элемента attribute вместе со свойствами других информационных элементов в инфо-наборе XML.

7.4.10 Свойство [owner element] информационного элемента attribute не включено в тип Attribute. Значение этого свойства для любого заданного информационного элемента attribute является информационным элементом element, содержащим заданный информационный элемент в качестве члена свойства [attributes].

14

ГОСТ ISO/IEC 24824-1-2013

7.5 Тип Processinginstruction

7.5.1 Тип Processinginstruction определен следующим образом:

Processinginstruction ::= SEQUENCE (

target IdentifyingStringOrlndex

-- Категория GTНЕК NCNAME ~-t

content NonldentifyingStringOrIndex

— Категория OTHER STRING -- }

7.5.2 Типы IdentifyingStringOrlndex и NonldentifyingStringOrlndex определены В 7.13 и 7.14 соответственно.

7.5.3 Тип Processinginstruction представляет информационный элемент processing instruction инфо-набора XML.

7.5.4 Компонент target представляет свойство [target] информационного элемента processing instruction. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER NCNAME.

7.5.5 Компонент content представляет свойство [content] информационного элемента processing instruction. Типом данного компонента является NonldentifyingStringOrlndex (см. 7.14). представляющий в данном случае строку символов категории OTHER STRING.

7.5.6 Длина строки символов, присвоенной content, не может превышать 232.

Примечание — Данное ограничение обусловлено определением ASN.1, которое разработано для оптимизации кодирований и простоты реализации (см. также 11.3, перечисление j).

7.5.7 Свойство [notation] информационного элемента processing instruction не включено в тип Processinginstruction.

Примечание — В ограниченном инфо-наборе XML (см. 11.3) свойство [notation] информационного элемента processing instruction может быть определено из свойства [target] информационного элемента processing instruction и свойства [notations] информационного элемента document.

7.5.8 Свойство [parent] информационного элемента processing instruction не включено в тип Processinginstruction. Значением этого свойства для любого заданного информационного элемента processing instruction является информационный элемент document, element или document type definition, содержащий заданный информационный элемент в качестве члена свойства [children].

7.6 Тип UnexpandedEntityRefегепсе

7.6.1 Тил UnexpandedEntityReference определен следующим образом:

UnexpandedEntityRefегепсе ::= SEQUENCE {

name IdentifyingStringOrlndex

— Категория OTHER NCNAME --,

system-identifier IdentifyingStringOrlndex OPTIONAL

— Категория OTHER URI --, public-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URT -- }

7.6.2 Тип IdentifyingStringOrlndex определен в 7.13.

7.6.3 Тип UnexpandedEntityReference представляет информационный элемент unexpanded entity reference инфо-набора XML.

7.6.4 Компонент name представляет свойство [name] информационного элемента unexpanded entity reference. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории OTHER NCNAME.

7.6.5 Компонент system-identifier представляет свойство [system identifier] информационного элемента unoxpanded entity reference. Типом данного компонента является IdentifyingStringOrlndex (см 7.13), представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа UnexpandedEntityReference указывает на то. что свойство [system identifier] не имеет значения.

7.6.6 Компонент public-identifier представляет свойство [public identifier] информационного элемента unexpandod entity reference. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории OTHER URI.

15

ГОСТ ISO/IEC 24824-1—2013

Отсутствие данного компонента в абстрактном значении типа UnexpandedEntityReference указывает на то. что свойство [public identifier] не имеет значения.

7.6.7 Свойство [declaration base URI] информационного элемента unexpanded entity reference не включено В тип UnexpandedEntityReference и не поддерживается В настоящем стандарте.

7.6.8 Свойство [parent] информационного элемента unexpanded entity reference не включено в тип UnexpandedEntityReference. Значением данного свойства для любого заданного информационного элемента unexpanded entity reference является информационный элемент element, содержащий заданный информационный элемент в качестве члена свойства [children],

7.7 Тип Characterchunk

7.7.1 Тип Characterchunk определен следующим образом:

Characterchunk ::= SEQUENCE {

character-codes NonldentifyingStringOrlndex

-- Категория CONTENT CHARACTER CHUNK -- )

7.7.2 Тип NonldentifyingStringOrlndex определен в 7.14.

7.7.3 Тил Characterchunk соответствует информационному элементу character, но представляет ряд соседних информационных элементов character (членов свойства [children] родительского информационного элемента element), а не единственный информационный элемент character.

7.7.4 Число информационных элементов character, представленных значением типа Characterchunk, не должно быть равным нулю.

7.7.5 Компонент character-codes представляет свойство [character code] информационного(ых) элемента(ов) character в блоке. Типом данного компонента является NonldentifyingStringOrlndex (см. 7.14). представляющий в данном случае строку символов категории CONTENT CHARACTER CHUNK.

7.7.6 Длина строки символов, присвоенной character-codes, не может превышать 232.

Примечание — Данное ограничение обусловлено определением ASN. 1, которое разработано для оптимизации кодирований и простоты реализации. Данное ограничение не исключает кодирования информационного элемента element, содержащего более 2^ информационных элементов character, так как можно использовать несколько блоков.

7.7.7 Свойство [element content whitespace] информационного(ых) элсмента(ов) character не включено 8 тип Characterchunk.

7.7.8 Свойство [parent] информационного(ых) элемента(ов) character не включено е тип Characterchunk. Значением данного свойства для любого заданного информационного элемента character является информационный элемент element, содержащий заданный информационный элемент в качестве члена свойства [children].

7.8 Тип Comment

7.8.1 Тип Comment определен следующим образом:

Comment ::■ SEQUENCE {

content NonldentifyingStringOrlndex

-- Категория OTHER STRING --}

7.8.2 Тип NonldentifyingStringOrlndex определен в 7.14.

7.8.3 Тип Comment представляет информационный элемент comment инфо-набора XML.

7.8.4 Компонент content представляет свойство [content] информационного элемента comment. Типом данного компонента является NonldentifyingStringOrlndex (см. 7.14). представляющий в данном случае строку символов категории OTHER STRING.

7.8.5 Длина строки символов, присвоенной content, не может превышать 232.

Примечание — Данное ограничение обусловлено определением ASN.1. которое разработано для опти-мизации кодирований и простоты реализации (см. также 11.3. перечисление]).

7.8.6 Свойство [parent] информационного элемента comment не включено в тип Comment. Значением этого свойства для любого заданного информационного элемента comment является информационный элемент document или element, содержащий заданный информационный элемент в качестве члена свойства [children].

ГОСТ ISO/IEC 24824-1-2013

7.9 Тип DocumentTypeDeclaration

7.9.1 Тип DocumentTypeDeclaration определен следующим образом; DocumentTypeDeclaration ::= SEQUENCE { system-identifier IdentifyingStringOrlndex OPTIONAL

— Категория OTHER URI ~~, public-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI --, children SEQUENCE (SIZE(0..MAX)) OF

Processinginstruction )

7.9.2 Тип IdentifyingStringOrlndex определен в 7.13.

7.9.3 Тип DocumentTypeDeclaration представляет информационный элемент document type declaration инфо-набора XML.

7.9.4 Компонент system-identifier представляет свойство [system identifier] информационного элемента documenttypedeclaration. Типомданногокомпонентаявляется Identif yingStringOrlndex (cm. 7.13). представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа DocumentTypeDeclaration указывает на то. что свойство [system identifier] не имеет значения.

7.9.5 Компонент public-identifier представляет свойство [public identifier] информационного элемента documenttypedeclaration. Типомданногокомпонентаявляется identif yingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа DocumentTypeDeclaration указывает на то. что свойство [public identifier] не имеет значения.

7.9.6 Компонент children представляет свойство [children] информационного элемента document type declaration.

7.9.7 Свойство [parent] информационного элемента document type declaration не включено в тип DocumentTypeDeclaration. Значением этого свойства для любого заданного информационного элемента document type declaration является информационный элемент document, содержащий заданный информационный элемент в качестве члена свойства [children].

7.10 Тип UnparsedEntity

7.10.1 Тип UnparsedEntity определен следующим образом:

UnparsedEntity ::= SEQUENCE {

пате

IdentifyingStringOrlndex

- Категория OTHER NCNAME -.

system-identifier

IdentifyingStringOrlndex

-- Категория OTHER URI -.

public-identifier

IdentifyingStringOrlndex OPTIONAL - Категория OTHER URI -.

notation-name

IdentifyingStringOrlndex - Категория OTHER NCNAME -}

7.10.2 Тип IdentifyingStringOrlndex определен в 7.13.

7.10.3 Тип UnparsedEntity представляет информационный элемент unparsed entity инфо-набора XML.

7.10.4 Компонент name представляет свойство [name] информационного элемента unparsed entity. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER NCNAME.

7.10.5 Компонент system-identifier представляет свойство [system identifier] информационного элемента unparsed entity. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER URI.

7.10.6 Компонент public-identifier представляет свойство [public identifier] информационного элемента unparsed entity. Тилом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа UnparsedEntity указывает на то. что свойство [public identifier] не имеет значения.

17

ГОСТ ISO/IEC 24824-1—2013

7.10.7 Компонент notation-name представляет свойство [notation name] информационного элемента unparsed entity. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории OTHER NCNAME.

7.10.8 Свойство [declaration base URI] информационного элемента unparsed entity не включено в тип UnparsedEntity и не поддерживается в настоящем стандарте.

7.10.9 Свойство [notation] информационного элемента unparsed entity не включено в тип UnparsedEntity.

Примечание — В ограниченном инфо-наборе XML (см. 11.3) свойство [notation] информационного элемента unparsed entity может быть определено из свойства [notation name] информационного элемента unparsed entity и свойства [notations] информационного элемента document.

7.11 Тил Notation

7.11.1 Тип Notation определен следующим образом:

Notation ::= SEQUENCE {

name IdentifyingStringOrlndex

-- Категория OTHER NCNAME --,

system-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI --, public-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI -- }

7.11.2 Тип IdentifyingStringOrlndex определен в 7.13.

7.11.3 Тип Notation представляет информационный элемент notation инфо-набора XML.

7.11.4 Компонент name представляет свойство [name] информационного элемента notation. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER NCNAME.

7.11.5 Компонент system-identifier представляет свойство [system identifier] информационного элемента notation. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа Notation указывает на то, что свойство [system identifier] не имеет значения.

7.11.6 Компонент public-identifier представляет свойство [public identifier] информационного элемента notation. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории OTHER URI. Отсутствие данного компонента в абстрактном значении типа Notation указывает на то. что свойство [public identifier] не имеет значения.

7.11.7 Свойство [declaration base URI] информационного элемента notation не включено в тип Notation и не поддерживается в настоящем стандарте.

7.12 Тип NamespaceAttribute

7.12.1 Тип NamespaceAttribute определен следующим образом:

NamespaceAttribute ::■ SEQUENCE (

prefix IdentifyingStringOrlndex OPTIONAL

-- Категория PREFIX --, namespace-name IdentifyingStringOrlndex OPTIONAL

-- Категория NAMESPACE NAME -- }

7.12.2 Тип IdentifyingStringOrlndex определен в 7.13.

7.12.3 Тип NamespaceAttribute представляет информационный элемент attribute, который является членом свойства [namespace attributes] информационного элемента element инфо-набора XML.

Примечание — В инфо-наборе XML атрибуты и пространства имен являются информационными элементами attribute. В настоящем стандарте использованы разные типы с целью оптимизации.

7.12.4 В инфо-наборе XML имеется два типа атрибутов пространств имен:

а) принимаемые по умолчанию декларации пространств имен: свойство [prefix] информационного элемента attribute не имеет значения, а значением свойства [local name] является «xmlns»;

b) принимаемые не по умолчанию декларации пространств имен: свойство [prefix] информационного элемента attribute имеет значение «xmlns». а свойство [local name] предоставляет префикс декларации пространства имен.

18

ГОСТ ISO/IEC 24824-1-2013

В обоих случаях свойство [normalized value] информационного элемента attribute предоставляет имя пространства имен декларации пространства имен.

7.12.5 Если атрибут пространства имен является принимаемой по умолчанию декларацией пространства имен (7.12.4. перечисление а), то компонент prefix должен отсутствовать, в противном случае (7.12.4. перечисление Ь) он должен присутствовать, представляя свойство [local name] информационного элемента attribute. Типом данного компонента является identifyingStringOrindex (см. 7.13). представляющий в данном случае строку символов категории PREFIX.

7.12.6 Если свойство [normalized value] информационного элемента attribute является пустой строкой, то компонент namespace-name должен отсутствовать, в противном случае он должен присутствовать. представляя свойство [normalized value] информационного элемента attribute. Типом данного компонента является IdentifyingStringOrindex (см. 7.13). представляющий в данном случае строку символов категории NAMESPACE NAME.

7.12.7 Свойство [namespace name] информационного элемента attribute всегда имеет значение «http://www.w3.org/2000/xmlns/» (см. инфо-набор W3CXML) и не включено втипNamespaceAttribute.

7.13 Тип IdentifyingStringOrindex

7.13.1 Тип IdentifyingStringOrindex определен следующим образом:

IdentifyingStringOrindex ::= CHOICE {

literal-character-string NonEmptyOctetString,

string-index INTEGER (1..one-meg) )

7.13.2 Тип NonEmptyOctetString и значение one-meg определены в 7.2.1.

7.13.3 Тип IdentifyingStringOrindex представляет строку символов, несущую идентификационную информацию.

Примечание — Примерами таких строк символов являются префиксы, имена пространств имен и локальные имена элементов и атрибутов.

7.13.4 Абстрактное значение этого типа ASN.1 содержит либо строку символов (заданной категории) в качестве значения типа NonEmptyOctetString, либо индекс словарной таблицы строки символов (заданной категории) в словарной таблице для данной категории строк (см. 8.4.2), которую называют применяемой таблицей строк.

Примечания

1 При использовании данного типа ASN.1 категория строки всегда специфицирована в соответствующем тексте в предыдущих пунктах (см. 7.5—7.12).

2 Идентифицирующие строки символов трактуются не так. как неидентифицирующие. Неидентифицирующие строки символов могут быть закодированы в одном из многих форматов кодирования, а все идентифицирующие строки символов должны быть закодированы в UTF-8. Кроме этого, неидентифицирующие строки символов могут добавляться или не добавляться (по выбору создателя) в динамические таблицы строк (см. 7.14.6). а идентифицирующие строки символов всегда добавляются в динамические таблицы строк (см. 7.13.7).

7.13.5 Компонент literal-character-string (при его наличии) должен содержать кодирование UTF-8 (см. ISO/IEC 10646. Приложение D) строки символов (см. 7.13.4).

7.13.6 Компонент string-index (при его наличии) должен содержать индекс словарной таблицы какой-либо из идентичных данной строке символов записей применяемой таблицы строк.

7.13.7 Когда создают абстрактное значение этого типа ASN.1 (представляющее заданную строку символов заданной категории), то в случае, если идентичная строка символов существует в текущем содержимом применяемой таблицы строк, создатель документа быстрого инфо-набора должен осуществить одно из перечисленных ниже действий а) или Ь) в зависимости от реализации (но по мере возможности следует выбирать первый вариант, так как при этом создается меньше индексов, указывающих на одну и ту же строку символов), в противном случае (не существует идентичной строки символов) создатель документа быстрого инфо-набора должен действовать согласно перечислению Ь). Действия а) и Ь) приведены ниже:

а) выбрать альтернативу string-index и присвоить string-index словарной таблицы любой из существующих записей, идентичных данной строке символов:

Ь) выбрать альтернативу literal-character-string, присвоить заданную строку символов literal-character-string и добавить в применяемую таблицу строк идентичную строку символов, если данная таблица не содержит 220 записей.

19

ГОСТ ISO/IEC 24824-1—2013

Примечание — Выбор действия Ь) приведет к появлению нескольких идентичных строк символов в таблице строк (если таблица еще не содержит 220 записей). Это не влияет на последующую обработку строк символов (см. 7.13.8).

7.13.8 При обработке абстрактного значения данного типа ASN.1, представляющего строку символов (заданной категории), обработчик документа быстрого инфо-набора должен определить строку символов, представленную абстрактным значением, следующим образом:

а) если имеется альтернатива string-index, то строка символов, представленная абстрактным значением, должна быть строкой символов в текущем содержимом применяемой таблицы строк, индекс словарной таблицы которой является значением string-index;

b) если имеется альтернатива literal-character-string, то строка символов, представленная абстрактным значением, должна быть значением literal-character-string, а идентичная строка символов должна быть добавлена к применяемой таблице строк (см. 7.13.9). когда данная таблица еще не содержит 2м записей.

Примечание — Выбор действия Ь) приведет к появлению нескольких идентичных строк символов в таблице строк (если таблица еще не содержит 220 записей). Это не влияет на последующую обработку строк символов.

7.13.9 Если обработчик документа быстрого инфо-набора не может (по какой-либо причине, включая зависящие от реализации ограничения) добавить строку в словарную таблицу, содержащую менее 220 записей, когда такое добавление требуется согласно 7.13.8. перечисление Ь). то он должен прекратить обработку документа быстрого инфо-набора и сообщить об ошибке.

7.14 Тип NonldentifyingStringOrlndex

7.14.1 Тип NonldentifyingStringOrlndex определен следующим образом:

NonldentifyingStringOrlndex ::= CHOICE {

literal-character-string SEQUENCE {

add-to-table BOOLEAN,

character-string EncodedCharacterString },

string-index INTEGER (0..one-meg) }

7.14.2 Тип EncodedCharacterString и значение one-meg определены в 7.17 и 7.2.1 соответственно.

7.14.3 Тип NonldentifyingStringOrlndex представляет строку символов, не несущую идентификационную информацию.

Примечание — Примером такой строки символов служит значение атрибута.

7.14.4 Абстрактное значение типа NonldentifyingStringOrlndex содержит либо строку символов (заданной категории) в качестве значения типа EncodedCharacterString (см. 7.17), либо индекс словарной таблицы строки символов заданной категории в словарной таблице для этой категории строк (см. 8.4.2). которую называют применяемой таблицей строк.

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

7.14.5 Компонент string-index (при его наличии) должен либо иметь значение, равное нулю (обозначая строку символов нулевой длины — см. 7.14.6). либо содержать индекс словарной таблицы какой-либо из записей применяемой таблицы строк, которая идентична данной строке символов.

7.14.6 Для строки символов нулевой длины создатель документа быстрого инфо-набора всегда должен использовать альтернативу string-index с целым значением, равным нулю. Обработчик документа быстрого инфо-набора должен трактовать такое значение как представление строки символов нулевой длины.

7.14.7 Когда создают абстрактное значение типа NonldentifyingStringOrlndex (представляющее заданную строку символов заданной категории) ненулевой длины, то в случае, если идентичная строка символов существует в текущем содержимом применяемой таблицы строк, создатель документа быстрого инфо-набора должен осуществить одно из перечисленных ниже действий а) или Ь) в зависимости от реализации (но по мере возможности следует выбирать первый вариант, так как при этом создается меньше индексов, указывающих на одну и ту же строку символов), в противном случае (не существует идентичной строки символов) создатель документа быстрого инфо-набора должен действовать согласно перечислению Ь). Действия а) и Ь) приведены ниже:

20

ГОСТ ISO/IEC 24824-1-2013

а) выбрать альтернативу string-index и присвоить string-index индекс любой из существующих записей словарной таблицы, идентичных данной строке символов,

Ь) выбрать альтернативу literal-character-string, присвоить заданную строку символов literal-character-string и:

1) добавить в применяемую таблицу строк идентичную строку символов и установить компонент add-to-table равным TRUE [данное действие Ы) не должно использоваться в случае, если применяемая таблица строк уже содержит 2 записей] или

Примечание — Если применяемая таблица строк уже содержит 220 записей, то возможны только действия а) или Ь2).

2) установить компонент add-to-table равным FALSE.

Примечание — Выбор действия Ы} приведет к появлению нескольких идентичных строк символов в текущем содержимом. Это не влияет на последующую обработку строк символов (см. 7.14.8).

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

а) если имеется альтернатива string-index, то строка символов, представленная абстрактным значением, должна быть строкой символов в применяемой таблице строк, индекс словарной таблицы которой является значением string-index.

Примечание 1 — Если значение string-index превышает текущий размер этой словарной таблицы, то документ быстрого инфо-набора ошибочен;

Ь) если имеется альтернатива literal-character-string и компонент add-to-table имеет значение TRUE, то строка символов, представленная абстрактным значением, должна быть значением literal-character-string. Обработчик документа быстрого инфо-набора должен добавить идентичную строку символов к применяемой таблице строк (см. 7.14.9).

Примечание 2 — Если применяемая таблица строк уже содержит 220 строк, то документ быстрого инфонабора ошибочен;

с) если имеется альтернатива literal-character-string и компонент add-to-table имеет значение FALSE, то строка символов, представленная данным абстрактным значением, должна быть значением компонента character-string.

7.14.9 Если обработчик документа быстрого инфо-набора не может (по какой-либо причине, включая зависящие от реализации ограничения) добавить строку в словарную таблицу, когда такое добавление требуется согласно 7.14.8. перечисление Ь). то он должен прекратить обработку документа быстрого инфо-набора и сообщить об ошибке.

7.15 Тип NameSurrogate

7.15.1 Тип Namesurrogate определен следующим образом;

NameSurrogate ::= SEQUENCE { prefix-string-index INTEGER(1..one-meg) OPTIONAL,

namespace-name-string-index INTEGER(1..one-meg) OPTIONAL, local-name-string-index INTEGER(1..one-meg) }

(CONSTRAINED BY {-- prefix-string-index должен присутствовзть, -- только если присутствует -- namespece-name-scring-index --}) 7.15.2 Значение one-meg определено в 7.2.1. 7.15.3 Тип NameSurrogate содержит три положительных целых значения (первые два являются необязательными), образующих идентификатор имени (см. 8.5.2).

Примечание — Данный тип встречается только в компоненте initial-vocabulary типа Document.

7.15.4 Компоненты prefix-string-index (При его наличии), namespace-name-string-index (при его наличии) и local-name-string-index должны быть больше нуля и не больше числа записей в таблицах PREFIX, NAMESPACE NAME и LOCAL-NAME исходного словаря соответственно.

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

21

ГОСТ ISO/IEC 24824-1—2013

7.15.5 Компонент prefix-string-index должен отсутствовать, если отсутствует компонент namespace-name-string-index.

7.16 Тип QualifiedNameOrlndex

7.16.1 Тил QualifiedNameOrlndex определен следующим образом:

QualifiedNameOrlndex : := CHOICE {

literal-qualified-name SEQUENCE {

prefix IdentifyingStringOrlndex OPTIONAL

-- Категория PREFIX --,

namespace-name IdentifyingStringOrlndex OPTIONAL

— Категория NAMESPACE NAME --,

local-name IdentifyingStringOrlndex

-- Категория LOCAL NAME — },

name-surrogate-index INTEGER (1..one-meg) }

7.16.2 Тип IdentifyingStringOrlndex и значение one-meg определены в 7.13 и 7.2.1 соответственно.

7.16.3 Тил QualifiedNameOrlndex лредставляет квалифицированное имя (см. 3.4.11).

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

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

7.16.5 Компонент name-surrogate-index (при его наличии) должен содержать индекс словарной таблицы идентификатора имени в применяемой таблице имен.

7.16.6 Если компонент namespace-name отсутствует, то компонент prefix также должен отсутствовать.

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

7.16.7.1 Должна быть выполнена проверка следующих условий в указанном порядке:

а) квалифицированное имя не имеет префикса или префикс квалифицированного имени существует в текущем содержимом таблицы PREFIX;

b) квалифицированное имя не имеет имени пространства имен или имя пространства имен квали-фицированного имени существует в текущем содержимом таблицы NAMESPACE NAME.

с) локальное имя квалифицированного имени существует в текущем содержимом таблицы LOCAL NAME;

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

7.16.7.2 Если все перечисленные выше условия выполнены, то должна быть выбрана альтернатива name-surrogate-index, и она должна быть установлена равной индексу словарной таблицы идентификатора имени, определенному в 7.16.7.1. перечисление d). в применяемой таблице имен, завершая процедуры 7.16.7.

7.16.7.3 В противном случае должна быть выбрана альтернатива literal-qualified-name, и ее компонентам должны быть присвоены следующие значения:

а) если квалифицированное имя не имеет префикса, то компонент prefix должен отсутствовать, в противном случае компоненту prefix должен быть присвоен префикс по 7.13.7 с ограничением, что действие 7.13.7, перечисление Ь) не должно выполняться, если идентичная строка символов существует в текущем содержимом применяемой таблицы строк. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории PREFIX;

b) если квалифицированное имя не имеет имени пространства имен, то компонент namespace-name должен отсутствовать, в противном случае компоненту namespace-name должно быть присвоено имя пространства имен по 7.13.7 с ограничением, что действие 7.13.7, перечисление Ь) не должно выполняться, если идентичная строка символов существует в текущем содержимом применяемой таблицы строк. Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории NAMESPACE NAME (см. 8.4.2);

22

ГОСТ ISO/IEC 24824-1-2013

с) компоненту local-name должно быть присвоено локальное имя квалифицированного имени (по 7.13.7). Типом данного компонента является IdentifyingStringOrlndex (см. 7.13), представляющий в данном случае строку символов категории LOCAL NAME (см. 8.4.2).

Примечание — Выполнение действий согласно 7.13.7 в настоящем подпункте может вызывать добавление локального имени в таблицу LOCAL NAME.

7.16.7.4 Если выполнение действий согласно 7.13.7 в подпункте 7.16.7.3 к одной или нескольким из трех указанных выше строк символов не привело к добавлению строки в словарную таблицу в связи с тем. что в таблица уже содержит 220 записей [см. 7.13.7. перечисление Ь)]. то идентификатор имени для данного квалифицированного имени не может быть создан.

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

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

7.16.8.1 Если имеется альтернатива name-surrogate-index, то квалифицированное имя. представленное абстрактным значением, должно быть именем, представленным идентификатором имени заданной категории (см. 8.5.2) в применяемой таблице имен, индекс словарной таблицы которого равен значению name-surrogate-index.

7.16.8.2 Если имеется альтернатива literal-qualified-name, то:

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

1) префикс квалифицированного имени должен быть определен (по 7.13.8) из компонента prefix (при его наличии): ТИПОМ этого компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории PREFIX:

2) имя пространства имен квалифицированного имени должно быть определено (по 7.13.8) из компонента namespace-пате (при его наличии); типом этого компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории NAMESPACE NAME (см. 8.4.2);

3) локальное имя квалифицированного имени должно быть определено (по 7.13.8) из компонента local-name. ТИПОМ ЭТОГО компонента является IdentifyingStringOrlndex (см. 7.13). представляющий в данном случае строку символов категории LOCAL NAME (см. 8.4.2).

Примечание — Указанные действия могут потребовать добавления в соответствующие словарные таблицы согласно 7.13.8. перечисление Ь);

Ь) если после возможных добавлений в результате обработки компонентов literal-qualified-name индексы доступны для всех присутствующих компонентов, то идентификатор имени, состоящий из этих индексов словарных таблиц, должен быть добавлен в применяемую таблицу имен, если только она уже не содержит 220 идентификаторов имен (см. 7.16.9).

7.16.9 Если обработчик документа быстрого инфо-набора не может (по какой-либо причине, включая связанные с реализацией ограничения) добавить идентификатор имени в словарную таблицу, содержащую менее 2м записей, когда такое добавление требуется по 7.16.8.2, перечисление Ь). то он должен прекратить обработку документа быстрого инфо-набора и сообщить об ошибке.

7.17 Тип EncodedCharacterString

7.17.1 Тип EncodedCharacterString определен следующим образом: EncodedCharacterString ::= SEQUENCE { encoding-format CHOICE ( utf-8 NULL,

utf-16 NULL,

restricted-alphabet INTEGER(1..256), encoding-algorithm INTEGER(1..256) },

octets NonEmptyOctetString }

23

ГОСТ ISO/IEC 24824-1—2013

7.17.2 Тип EncodedCharacterString содержит кодирование строки символов. Он определяет строку октетов, которая является обратимым отображением строки символов в строку октетов. Создатель документа быстрого инфо-набора определяет в encoding-format использованное кодирование, а обработчик документа быстрого инфо-набора использует эту информацию для декодирования октетов в компоненте octets в строку символов.

7.17.3 Компонент octets передает значение строки октетов, которая является кодированием строки символов, заданным в компоненте encoding-format.

Примечание — В общем случае существует несколько кодирований, которые могут быть использованы для данной строки символов. Создатель документа быстрого инфо-набора может выбрать кодирование на основании определенных критериев (например, он может постараться оптимизировать размер или скорость обработки), но может предпочесть удобство и универсальную применимость UTF-8 или UTF-16BE. Возможны случаи, когда некоторые кодирования будут применимы только для строк символов, которые содержат только подмножество символов ISO/IEC 10646.

7.17.4 Формат кодирования utf -8 может быть использован для любой строки символов. Данный формат кодирования следует применять, создавая кодирование UTF-8 (см. ISO/IEC 10646) строки символов и присваивая его компоненту octets.

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

7.17.5 Формат кодирования utf-16 может быть использован для любой строки символов. Данный формат кодирования следует применять, создавая кодирование UTF-16BE (см. Unicode, п. 2.6) строки символов и присваивая его компоненту octets.

Примечания

1 Этот формат кодирования наиболее подходит для строк символов, в которых присутствует широкий диапазон символов ISO/IEC 10646 и когда нет других применимых или более полезных форматов кодирования.

2 Порядок байтов в кодировании UTF-16BE определен в Unicode, п. 2.6: самый старший байт первый (наиболее ранний байт в строке октетов).

7.17.6 Формат кодирования restricted-alphabet основан на использовании алфавита с ограниченной областью распространения, выбираемого из имеющихся в таблице алфавитов с ограниченной областью распространения. Компонент restricted-alphabet должен содержать индекс словарной таблицы алфавитов с ограниченной областью распространения. Это кодирование может быть использовано только для строки символов, которая полностью состоит из символов алфавита с ограниченной областью распространения в записи таблицы алфавитов с ограниченной областью распространения. проиндексированной компонентом restricted-alphabet. Формат кодирования restricted-alphabet следует применять, как определено в 7.17.6.1—7.17.6.6.

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

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

7.17.6.3 Каждое целое значение должно быть представлено как целое двоичное значение без знака в битовом поле. Размер битового поля должен определяться целым значением, присвоенным последнему символу в алфавите с ограниченной областью распространения. Это целое значение должно быть увеличено на 1. чтобы получить другое целое значение (например. N). Размер битового поля должен быть равен минимальному количеству битов, необходимых для кодирования N как целого значения без знака.

Примечания

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

2 Например, если в алфавите с ограниченной областью распространения содержится 24 символа, то каждый из символов будет кодироваться в 5 битов, но если в алфавите 32 символа, то каждый из них будет кодироваться в 6 битов.

7.17.6.4 Все полученные битовые поля должны быть сцеплены (по порядку) в битовую строку.

24

ГОСТ ISO/IEC 24824-1-2013

7.17.6.5 Если длина полученной битовой строки не кратна 8. то в конец строки должны быть добавлены биты 1 до длины, кратной 8.

7.17.6.6 Полученная битовая строка (кратная 8 битам), интерпретируемая как строка октетов, должна быть присвоена компоненту octets.

7.17.7 Формат кодирования encoding-algorithm определяется алгоритмом кодирования (см. 8.3), который содержится в записи таблицы алгоритмов кодирования, индекс словарной таблицы для которой равен значению компонента encoding-algorithm. Индекс словарной таблицы алгоритмов кодирования должен быть присвоен компоненту encoding-algorithm, полученная в результате кодирования строка октетов должна быть присвоена компоненту octets.

8 Построение и обработка документа быстрого инфо-набора

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

Примечание — Словарные таблицы для документа быстрого инфо-набора создают при построении документа быстрого инфо-набора. Их создают динамически из содержимого документа быстрого инфо-набора при обработке данного документа. Обмен таблицами в какой-либо форме не проводят.

8.1 Концептуальный порядок компонентов абстрактного значения типа Document

8.1.1 Концептуальный порядок компонентов абстрактного значения типа Document определен для того, чтобы разные реализации присваивали индексы словарных таблиц одним и тем же способом при создании и обработке документа быстрого инфо-набора. При построении и обработке таких абстрактных значений следует использовать данный концептуальный порядок, например, при добавлении строк (см. 7.13.7 и 7.14.6) и идентификаторов имен (см. 7.16.7) в словарные таблицы.

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

8.1.2 Концептуальный порядок для построения и обработки документа быстрого инфо-набора определен следующим образом: компоненты абстрактного значения типа Document должны быть рассмотрены в соответствии с алгоритмом, установленным в 8.1.2.1—8.1.2.5. Порядок, в котором рассматривают компоненты, определяет концептуальный порядок.

8.1.2.1 Компонент верхнего уровня абстрактного значения (соответствующий типу Document) должен быть рассмотрен первым.

8.1.2.2 Если рассматриваемый компонент относится к типу sequence (последовательность), то компоненты данного типа, присутствующие в абстрактном значении, следует рассмотреть в порядке их определения по тексту — от первого присутствующего компонента до последнего, выполняя для каждого рассматриваемого компонента действия 8.1.2.1—8.1.2.5 рекурсивно.

8.1.2.3 Если рассматриваемый компонент относится к типу sequence-of (последовательность-из), то все появления компонента sequence-of следует рассмотреть в порядке sequence-of — от первого появления компонента до последнего, выполняя для каждого рассматриваемого компонента действия 8.1.2.1—8.1.2.5 рекурсивно.

8.1.2.4 Если рассматриваемый компонент относится к типу choice (выбор), то следует рассмотреть альтернативу, присутствующую в абстрактном значении, выполняя для данной альтернативы действия 8.1.2.1—8.1.2.5 рекурсивно.

8.1.2.5 Если рассматриваемый компонент относится к какому-либо иному TnnyASN.1, то никаких дальнейших действий для данного компонента не требуется.

25

ГОСТ ISO/IEC 24824-1—2013

8.2 Таблица алфавитов с ограниченной областью распространения

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

8.2.2 Каждая запись в таблице алфавитов с ограниченной областью распространения должна быть упорядоченным набором разных символов по ISO/IEC 10646 размером от 2 до 220 символов.

Примечание — Алфавит с ограниченной областью распространения допускает компактное кодирование любой строки символов, полностью состоящей из символов этого набора, путем присвоения по нарастанию целых значений символам в наборе и использования этих целых значений для кодирования символов строки (см. 7.17.6}.

8.3 Таблица алгоритмов кодирования

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

8.3.2 Каждая запись данной таблицы специфицирует кодирование строки символов с некоторыми заданными характеристиками в строку октетов (см. 7.17.7).

Примечание — Заданные характеристики могут относиться к длине строки, появляющимся в строке символам или к произвольно сложным образцам последовательности символов. В общем случав данный алгоритм кодирования применяют только к ограниченному и определенному подмножеству строк символов no ISO/IEC 10646.

8.3.3 Для алгоритмов кодирования установлены следующие ограничения:

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

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

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

Примечания

1 Вышеизложенное подразумевает, что не может существовать строка символов S. для которой кодирование из S в Е. с последующим декодированием из Е в S’, приведет к S' # S. даже если различив между S' и S незначительно (например, дополнительный SPACE). С другой стороны, не требуется, чтобы можно было закодировать любую строку символов S. и также не требуется, чтобы кодировки были каноническими.

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

3 Алгоритмы кодирования (отличные от встроенных) могут быть определены в других стандартах или согласованы между создателем и обработчиками документа быстрого инфо-набора.

8.4 Динамически© таблицы строк

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

8.4.2 В настоящем стандарте все строки символов, которые можно встретить в документе быстрого инфо-набора, классифицированы по следующим восьми категориям, каждая из которых имеет динамическую таблицу строк:

a) PREFIX: данную категорию составляют строки символов, которые являются свойством [prefix] информационных элементов element, attribute или namespace.

26

ГОСТ ISO/IEC 24824-1-2013

b) NAMESPACE NAME: данную категорию составляют строки символов, которые являются свойством [namespace name] информационных элементов element, attribute или namespace;

с) LOCAL NAME: данную категорию составляют строки символов, которые являются свойством [local name] информационных элементов element или attribute;

d) OTHER NCNAME: данную категорию составляют строки символов, которые являются свойством [target] информационного элемента processing instruction, свойством [name] информационных элементов unexpanded entity reference, unparsed entity или notation или свойством [notation name] информационного элемента unparsed entity;

e) OTHER URI: данную категорию составляют строки символов, которые являются свойством [system identifier] или [public identifier] информационных элементов unexpanded entity reference, document type declaration, unparsed entity или notation:

f) ATTRIBUTE VALUE: данную категорию составляют строки символов, которые являются свойством [normalized value] информационного элемента attribute.

g) CONTENT CHARACTER CHUNK: данную категорию составляют строки символов, которые являются свойством [character code] блока информационных элементов character, являющихся, в свою очередь, последовательными дочерними элементами заданного информационного элемента element.

h) OTHER STRING: данную категорию составляют строки символов, которые являются свойством [version] информационного элемента document или свойством [content] информационных элементов processing instruction или comment.

8.5 Динамические таблицы имен и идентификаторы имен

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

8.5.2 Идентификаторы имен представляют собой набор максимум из трех индексов:

а) (опционально) индекса строки в таблице PREFIX.

b) (опционально) индекса строки в таблице NAMESPACE NAME и

с) индекса строки в таблице LOCAL NAME.

Первый индекс словарной таблицы не должен присутствовать, если отсутствует второй.

8.5.3 Возможны три случая:

а) все три индекса присутствуют, в этом случае идентификатор имени представляет квалифицированное имя с префиксом;

Ь) присутствуют только второй и третий индексы, в этом случае идентификатор имени представляет квалифицированное имя без префикса, которое имеет имя пространства имен;

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

8.5.4 В настоящем стандарте все квалифицированные имена, которые можно встретить в документе быстрого инфо-набора, классифицированы по двум следующим категориям, каждая из которых имеет динамическую таблицу имен:

a) ELEMENT NAME: данную категорию составляют идентификаторы имен, представляющие квалифицированное имя информационного элемента element;

b) ATTRIBUTE NAME: данную категорию составляют идентификаторы имен, представляющие квалифицированное имя информационного элемента attribute.

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

а) первый индекс словарной таблицы (при его наличии) должен интерпретироваться как индекс словарной таблицы строки символов в таблице PREFIX.

b) второй индекс словарной таблицы (при его наличии) должен интерпретироваться как индекс словарной таблицы строки символов в таблице NAMESPACE NAME и

с) третье целое значение должно интерпретироваться как индекс словарной таблицы строки символов в таблице LOCAL NAME.

27

ГОСТ ISO/IEC 24824-1—2013

9 Встроенные алфавиты с ограниченной областью распространения

9.1 «Цифровой» алфавит с ограниченной областью распространения

9.1.1 Данный алфавит с ограниченной областью распространения имеет индекс словарной таблицы 1 и состоит из следующих пятнадцати символов no ISO/1EC 10646 (в указанном порядке):

- DIGIT ZERO —DIGIT NINE

- HYPHEN-MINUS

- PLUS SIGN

- FULL STOP

- LATIN SMALL LETTER E

- SPACE

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

9.2 Алфавит с ограниченной областью распространения «дата и время»

9.2.1 Данный алфавит с ограниченной областью распространения имеет индекс словарной таблицы 2 и состоит из следующих пятнадцати символов no ISO/IEC 10646 (в указанном порядке):

- DIGIT ZERO —DIGIT NINE

- HYPHEN-MINUS

- COLON

- LATIN CAPITAL LETTER T

- LATIN CAPITAL LETTER Z

- SPACE

9.2.2 Данный алфавит с ограниченной областью распространения пригоден для кодирования строк символов, представляющих наиболее общие выражения даты и времени по ISO 8601. Одна строка символов может содержать несколько таких выражений, разделенных пробелами.

10 Встроенные алгоритмы кодирования

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

10.1.1 В данном разделе определены встроенные алгоритмы кодирования. Встроенные алгоритмы кодирования не имеют связанных с ними URI.

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

10.1.2 В данном разделе термин «слово» обозначает любую группу последовательных символов в данной строке символов, которая:

а) не содержит SPACE и

Ь) находится в начале строки символов или предваряется SPACE либо

с) находится в конце строки символов или за ней следует SPACE.

Примечание — Термин «слово» не ограничивается алфавитными символами.

10.2 Алгоритм кодирования «hexadecimal»

10.2.1 Данный алгоритм кодирования имеет индекс словарной таблицы 1 и может быть применен только к строкам символов, состоящим из следующих шестнадцати символов no ISO/IEC 10646:

- DIGIT ZERO —DIGIT NINE

- LATIN CAPITAL LETTER A — LATIN CAPITAL LETTER F

и содержащим четное число символов (включая ноль).

Примечание — Использование встроенных пробельных символов XML не допускается.

10.2.2 Строка символов должна интерпретироваться как шестнадцатеричное кодирование строки октетов с первым символом строки, соответствующим самому старшему полубайту первого октета, и т. д.

28

ГОСТ ISO/IEC 24824-1-2013

10.3 Алгоритм кодирования «baso64»

10.3.1 Данный алгоритм кодирования имеет индекс словарной таблицы 2 и может быть применен только к строкам символов, которые:

а) состоят полностью из символов LATIN CAPITAL LETTER А — LATIN CAPITAL LETTER Z. LATIN SMALL LETTER A — LATIN SMALL LETTER Z. DIGIT ZERO — DIGIT NINE. PLUS SIGN. SOLIDUS и EQUALS SIGN и

Примечание — Присутствие в строке символов пробельных символов XML не допускается.

Ь) представляют собой действительный экземпляр кодирования передачи содержимого (Content Transfer Encoding) по IETF RFC 2045. n. 6.8 или становятся действительным экземпляром этого кодирования после вставки пробельных символов XML там. где требуется IETF RFC 2045.

10.3.2 Строка символов должна интерпретироваться как кодирование Base64 (no IETF RFC 2045) строки октетов (при условии, что пробельные символы XML присутствуют там. где требуется IETF RFC 2045). Полученная строка октетов является строкой октетов, определенной кодированием Base64.

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

10.4 Алгоритм кодирования «short»

10.4.1 Данный алгоритм кодирования имеет индекс словарной таблицы 3 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов полностью состоит из символов DIGIT ZERO — DIGIT NINE, HYPHEN-MINUS и SPACE;

b) первый и последний символы не являются символами SPACE, и в строке нет пары смежных символов SPACE;

с) строка символов содержит по крайней мере одно слово (см. 10.1.2);

d) каждый присутствующий символ HYPHEN-MINUS является первым символом слова;

е) за каждым из символов HYPHEN-MINUS следует по крайней мере один символ DIGIT ONE — DIGIT NINE;

f) каждый символ DIGIT ZERO является единственным символом в слове или ему предшествует символ DIGIT ONE — DIGIT NINE;

g) каждое слово в строке символов, интерпретированное как строка цифровых символов, представляющая целое десятичное значение со знаком, дает значение в диапазоне от минус 32768 до плюс 32767.

10.4.2 Каждое слово (см. 10.1.2) в строке символов должно быть интерпретировано как строка цифровых символов, представляющая целое десятичное значение со знаком, и представлено как 16-битное целое значение с дополнением до двух.

10.4.3 Каждая группа из 8 битов в 16-битном целом с дополнением до двух для слова дает октет строки октетов, начиная с самой старшей группы из 8 битов. Самый старший бит в каждой группе из 8 битов становится самым старшим битом соответствующего октета. Если в строке символов имеется несколько слое, то они должны быть закодированы по порядку, а октеты, задаваемые 16-битными целыми значениями с дополнением до двух, должны быть сцеплены а этом порядке.

10.4.4 Данный алгоритм кодирования пригоден для кодирования строк символов, представляющих целые значения в диапазоне от минус 32768 до плюс 32767 (представляемые как 16-битное целое значение с дополнением до двух), или их списков.

10.5 Алгоритм кодирования «int»

10.5.1 Данный алгоритм кодирования имеет индекс словарной таблицы 4 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов удовлетворяет условиям 10.4.1, перечисления а) — f);

b) каждое слово в строке символов, интерпретированное как строка цифровых символов, представляющая целое десятичное значение со знаком, дает значение в диапазоне от минус 2147483648 до плюс 2147483647.

10.5.2 Каждое слово (см. 10.1.2) в строке символов должно быть интерпретировано как строка цифровых символов, представляющая целое десятичное значение со знаком, и представлено как 32-битное целое значение с дополнением до двух.

29

ГОСТ ISO/IEC 24824-1—2013

10.5.3 Каждая группа из 8 битов в 32-битном целом значении с дополнением до двух для слова дает октет строки октетов, начиная с самой старшей группы из 8 битов. Самый старший бит в каждой группе из 8 битов становится самым старшим битом соответствующего октета. Если в строке символов имеется несколько слов, то они должны быть закодированы по порядку, а октеты, даваемые 32-битными целыми значениями с дополнением до двух, должны быть сцеплены в этом порядке.

10.5.4 Данный алгоритм кодирования применим для кодирования строк символов, представляющих целые значения в диапазоне от минус 2147483648 до плюс 2147483647 (представляемые как 32-битное целое значение с дополнением до двух), или их списков.

10.6 Алгоритм кодирования «long»

10.6.1 Данный алгоритм кодирования имеет индекс словарной таблицы 5. Он может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов удовлетворяет условиям 10.4.1, перечисления а) — f):

b) каждое слово в строке символов, интерпретированное как строка цифровых символов, представляющая целое десятичное значение со знаком, дает значение в диапазоне от минус 9223372036854775808 до плюс 9223372036854775807.

10.6.2 Каждое слово (см. 10.1.2) в строке символов должно быть интерпретировано как строка цифровых символов, представляющая целое десятичное значение со знаком, и представлено как 64-битное целое значение с дополнением до двух.

10.6.3 Каждая группа из 8 битов в 64-битном целом с дополнением до двух для слова дает октет строки октетов, начиная с самой старшей группы из 8 битов. Самый старший бит в каждой группе из 8 битов становится самым старшим битом соответствующего октета. Если в строке символов имеется несколько слов, то они должны быть закодированы по порядку, а октеты, даваемые 64-битными целыми с дополнением до двух, должны быть сцеплены в этом порядке.

10.6.4 Данный алгоритм кодирования применим для кодирования строк символов, представляющих целые значения в диапазоне от минус 9223372036854775808 до плюс 9223372036854775807 (представляемые как 64-битное целое значение с дополнением до двух), или их списков.

10.7 Алгоритм кодирования «boolean»

10.7.1 Данный алгоритм кодирования имеет индекс словарной таблицы 6 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов полностью состоит из одного или нескольких слов «истина» (true) или «ложь» (false) и символов SPACE;

b) первый и последний символы в строке символов не являются символами SPACE, и в строке нет пары смежных символов SPACE;

с) строка символов содержит по крайней мере одно слово (см. 10.1.2).

10.7.2 Каждое слово «ложь» (false) или «истина» (true) в строке символов должно быть закодировано как один бит (равный нулю или единице соответственно) создаваемой строки октетов, начиная с пятого до восьмого бита первого октета. Последующие биты помещают в последующие октеты, начиная с первого бита каждого октета до восьмого бита этого октета, используя только то количество октетов, которое требуется. Все неиспользованные биты последнего октета должны быть установлены равными нулю.

10.7.3 Первые четыре бита первого октета содержат число неиспользованных битов в последнем октете, закодированное как 4-битное целое значение без знака.

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

10.8 Алгоритм кодирования «float»

10.8.1 Данный алгоритм кодирования имеет индекс словарной таблицы 7 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов полностью состоит из символов DIGIT ZERO — DIGIT NINE. HYPHEN-MINUS, FULL STOP. LATIN CAPITAL LETTER E и SPACE.

Примечание — Использование символа LATIN SMALL LETTER E не допускается, так как в этом случае кодирование не будет обратимым;

30

ГОСТ ISO/IEC 24824-1-2013

b) первый и последний символы в строке символов не являются символами SPACE, и в строке нет лары смежных символов SPACE;

с) строка символов содержит хотя бы одно слово (см. 10.1.2):

d) каждое слово в строке символов соответствует каноническому лексическому представлению числа с плавающей точкой по схеме W3C XML. часть 2. п. 3.2.4;

е) каждое слово (см. 10.1.2) в строке символов, интерпретированное как строка символов, представляющая десятичное число с плавающей точкой, дает значение, которое может быть представлено как 32-битное число с плавающей точкой по IEEE 754.

10.8.2 Каждое слово (см. 10.1.2) в строке символов должно быть интерпретировано как строка символов, представляющая десятичное число с плавающей точкой, и представлено как 32-битное число с плавающей точкой no IEEE 754.

10.8.3 Каждая группа из 8 битов в 32-битном числе с плавающей точкой по IEEE 754 для слова дает октет в строке октетов, начиная с самой старшей группы из 8 битов. Самый старший бит в каждой группе из 8 битое становится самым старшим битом соответствующего октета. Если в строке символов есть несколько слов, то они должны быть закодированы по порядку, а октеты, создаваемые 32-битными числами с плавающей точкой по IEEE 754. должны быть сцеплены в этом порядке.

10.8.4 Данный алгоритм кодирования пригоден для кодирования строк символов, представляющих числа с плавающей точкой (представляемые как 32-битные числа с плавающей точкой по IEEE 754) или списки таких чисел.

10.9 Алгоритм кодирования «double»

10.9.1 Данный алгоритм кодирования имеет индекс словарной таблицы 8 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов удовлетворяет условиям 10.8.1, перечисления а) — с);

Ь) каждое слово в строке символов соответствует каноническому лексическому представлению числа с плавающей точкой двойной точности по схеме W3C XML, часть 2. п. 3.2.5;

с) каждое слово (см. 10.1.2) в строке символов, интерпретированное как строка символов, представляющая десятичное число с плавающей точкой двойной точности, дает значение, которое может быть представлено как 64-битное число с плавающей точкой двойной точности по IEEE 754.

10.9.2 Каждое слово (см. 10.1.2) в строке символов должно быть интерпретировано как строка символов, представляющая десятичное число с плавающей точкой двойной точности, и должно быть представлено как 64-битное число с плавающей точкой двойной точности no IEEE 754.

10.9.3 Каждая группа из 8 битов в 64-битном числе с плавающей точкой двойной точности по IEEE 754 для слова дает октет в строке октетов, начиная с самой старшей группы из 8 битов. Самый старший бит в каждой группе из 8 битов становится самым старшим битом соответствующего октета. Если в строке символов есть несколько слов, то они должны быть закодированы по порядку, а октеты, создаваемые 64-битными числами с плавающей точкой двойной точности по IEEE 754. должны быть сцеплены в этом порядке.

10.9.4 Данный алгоритм кодирования пригоден для кодирования строк символов, представляющих числа с плавающей точкой (представляемые как 64-битные числа с плавающей точкой двойной точности по IEEE 754) или списки таких чисел.

10.10 Алгоритм кодирования «uuid»

10.10.1 Данный алгоритм кодирования имеет индекс словарной таблицы 8 и может быть применен только к строкам символов, которые удовлетворяют всем следующим условиям:

а) строка символов полностью состоит из символов DIGIT ZERO — DIGIT NINE. LATIN SMALL LETTER A — LATIN SMALL LETTER F. HYPHEN-MINUS и SPACE;

b) первый и последний символы в строке символов не являются символами SPACE, и в строке нет пары смежных символов SPACE;

с) строка символов содержит хотя бы одно слово (см. 10.1.2):

d) каждое слово содержит ровно 36 символов.

е) в каждом слове есть ровно четыре символа HYPHEN-MINUS, занимающих позиции 9. 14. 19 и 24 (считая от единицы).

10.10.2 Каждое слово в строке символов должно интерпретироваться как шестнадцатеричное представление UUID (по ISO/IEC 9834-8. п. 6.4) и быть представлено как 16-битное целое значение без

31

ГОСТ ISO/IEC 24824-1—2013

знака, как определено в ISO/IEC 9834-8. п. 6.3. Если в строке символов несколько слов, то соответствующие 16-октетные целые значения без знака должны быть сцеплены.

10.10.3 Данный алгоритм кодирования пригоден для кодирования строк символов, представляющих UUID или список UUID.

10.11 Алгоритм кодирования «cdata»

10.11.1 Данный алгоритм кодирования имеет индекс словарной таблицы 8 и может быть применен к любой строке символов.

10.11.2 Полученная строка октетов должна быть кодированием UTF-8 (по ISO/IEC 10646) строки символов.

10.11.3 Данный алгоритм следует использовать только с инфо-наборами XML созданными в результате синтаксического анализа документа XML, когда дополнительная информация идентифицирует, что строка символов соответствует всему разделу CDATA (по W3C XML 1.0 и W3C XML 1.1). Если данный алгоритм кодирования используют в документе быстрого инфо-набора, то ко всем строкам символов, которые соответствуют разделам CDATA. следует применять этот алгоритм кодирования.

11 Ограничения на поддерживаемые инфо-наборы XML

и некоторые упрощения

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

11.2 В настоящем разделе термин «XML-самосогласованный» используют в следующем значении: набор свойств одного или нескольких информационных элементов является XML-самосогласованным, если этот набор свойств может быть получен в результате синтаксического анализа подходящего корректно сформированного в отношении пространств имен документа XML.

11.3 Поддерживаемые инфо-наборы XML удовлетворяют следующим условиям:

а) свойство [all declarations processed] информационного элемента document имеет значение true (истина);

Ь) свойство [In-scope namespaces] каждого информационного элемента element и свойства [namespace attributes] всех информационных элементов element вместе образуют XML-самосогласованный набор:

с) свойство [namespace name] каждого информационного элемента element, свойства [namespace attributes] всех информационных элементов element и свойство [prefix] этого информационного элемента element вместе образуют XML-самосогласованный набор;

d) свойство [namespace name] каждого информационного элемента attribute, свойства [namespace attributes] всех информационных элементов element и свойство [prefix] этого информационного элемента attribute вместе образуют XML-самосогласованный набор:

е) свойство [references] каждого информационного элемента attribute и свойство [normalized value] информационного элемента attribute вместе образуют XML-самосогласованный набор.

0 свойство [notation] каждого информационного элемента processing instruction, свойство [target] информационного элемента processing instruction и свойство [notations] информационного элемента document вместе образуют XML-самосогласованный набор;

д) свойство [notation] каждого информационного элемента unparsed entity, свойство [notation name] информационного элемента unparsed entity и свойство [notations] информационного элемента document вместе образуют XML-самосогласованный набор;

h) свойство [element content whitespace] всех информационных элементов character, которые не представляют пробельные символы, имеет значение false (ложь);

i) свойство [element content whitespace] каждого информационного элемента character и свойство [character code] информационного элемента character вместе образуют XML-самосогласованный набор;

j) свойство [normalized value] всех информационных элементов attribute и свойство [content] всех информационных элементов comment и processing instruction содержат не более 232 символов.

11.4 Следующие свойства информационных элементов инфо-набора XML не включены в типы ASN.1. представляющие эти информационные элементы:

32

ГОСТ ISO/IEC 24824-1-2013

а) свойства [document element], [base URI] и [all declarations processed] информационного элемента document (см. 7.2.30. 7.2.31 и 7.2.32):

b) свойства [in-scope namespaces], [base URI] и [parent] информационного элемента element (см. 7.3.8. 7.3.9 и 7.3.10):

с) свойства [specified], [attribute type], [references] и [owner element] информационного элемента attribute (см. 7.4.7, 7.4.8. 7.4.9 и 7.4.10):

d) свойства [notation] и [parent] информационного элемента processing instruction (cm. 7.5.7 и 7.5.8):

e) свойства [declaration base URI] и [parent] информационного элемента unexpanded entity reference (cm. 7.6.7 и 7.6.8);

f) свойство [element content whitespace] информационного элемента character (см. 7.7.7);

g) свойство [parent] информационного элемента character (см. 7.7.8);

h) свойство [parent] информационного элемента comment (см. 7.8.6);

i) свойство [parent] информационного элемента document type declaration (см. 7.9.7);

j) свойства [declaration base URI] и [notation] информационного элемента unparsed entity (cm. 7.10.8 и 7.10.9);

к) свойство [declaration base URI] информационного элемента notation (см. 7.11.7).

12 Битовое кодирование типа Document

12.1 В данном разделе определены специальные кодирования типа Document для создания документа быстрого инфо-набора.

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

12.2 Кодирования определены в терминах действий, которые должны быть выполнены кодировщиком и привести к присоединению битов к потоку битов. Исходный поток битов либо пуст, либо состоит из декларации XML (см. 12.3).

12.3 Декларация XML (по W3C XML 1.1. п. 2.8) может быть (по выбору создателя документа быстрого инфо-набора) включена в начало потока битов. Декларация XML (при ее наличии) должна быть одной из следующих строк символов, закодированной в UTF-8:

1) <?xml encoding='finf’?>

2) <?xml encoding='finf standalone='yes ?>

3) <?xml encoding=’flnf’ standalone=’no'?>

4) <?xml version='1.0‘ encoding='finf’?>

5) <?xml version='1.0‘ encoding='finf standalone='yes'?>

6) <?xml version=’1.0’ encoding='finf’ standalone='no'?>

7) <?xml version='1.1’encoding=finf’?>

8) <?xml version=’1.1' encoding='finf standalone='yes’?>

9) <?xml version=’1.1’ encoding='finf’ standalone='no'?>

12.4 Номер версии (при его наличии) в декларации XML должен быть установлен равным соответствующему свойству [version] информационного элемента document. Декларация XML не должна содержать номер версии, если свойство [version] не имеет значения.

12.5 Декларация отдельного расположения (при ее наличии) в декларации XML должна быть установлена равной соответствующему свойству [standalone] информационного элемента document. Декларация XML не должна содержать декларации отдельного расположения, если свойство [standalone] не имеет значения.

12.6 В конце потока битов должны быть добавлены шестнадцать битов '1110000000000000'.

Примечание — Указанные биты будут находиться либо в начале документа быстрого инфо-набора, либо следом за декларацией XML. При отсутствии декларации XML синтаксический анализатор может отличить, просматривая первые 16 битов кодирования, потенциальный документ быстрого инфо-набора от любого другого корректно сформированного документа W3C XML 1.0 или W3C XML 1.1. так как эти 16 битов никогда не встречаются в начале корректно сформированного документа XML.

12.7 Далее к потоку битов должно быть добавлено битовое поле из 16 битов, содержащее номер версии настоящего стандарта (см. 12.9). закодированный как 16-битное целое значение без знака.

33

ГОСТ ISO/IEC 24824-1—2013

12.8 Далее к потоку битое должен быть добавлен бит 'О’ (забивка).

Примечание — Это делается для обеспечения выравнивания байтовв последующих частях кодирования.

12.9 Номер версии данной редакции настоящего стандарта равен 1.

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

12.10 К концу потока битов должно быть добавлено кодирование ECN (по ISO/IEC 8825-3) абстрактного значения типа Document, определенное модулем связи кодирования в А.2.

Примечание — В Приложении С приведено неформальное описание кодирований, определенных в А.2.

12.11 Если кодирование абстрактного значения типа Document не заканчивается на последнем бите октета, то к потоку битов должны быть добавлены четыре бита 0000' (забивка), завершающие последний октет.

12.12 После выполнения всех указанных выше шагов содержимое потока битов является документом быстрого инфо-набора.

34

ГОСТ ISO/IEC 24824-1-2013

Приложение А (обязательное)

Модуль ASN.1 и модули ECN для документов быстрого инфо-набора

А.1 Определение модуля ASN.1

Fastinfoset {joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) modules(0) fast-infoset(0)}

DEFINITIONS AUTOMATIC TAGS ::■ BEGIN

finf-doc-opt-decl OBJECT IDENTIFIER ::= {joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) encodings(1) optional-xml-declaration(0)}

finf-doc-no-decl OBJECT IDENTIFIER ::■ {joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) encodings(1) no-xml-declaration(1)}

Document ::» SEQUENCE { additional-data SEQUENCE (SIZE(1..one-meg)) OF additional-datum SEQUENCE { id URI, data NonEmptyOctetString ) OPTIONAL, initial-vocabulary SEQUENCE ( external-vocabulary URI OPTIONAL, restricted-alphabets SEQUENCE (SIZE(1..256)) OF NonEmptyOctetString OPTIONAL, encoding-algorithms SEQUENCE (SIZE (1..256)) OF NonEmptyOctetString OPTIONAL, prefixes SEQUENCE (SIZE (1.. one-meg)) OF NonEmptyOctetString OPTIONAL, namespace-names SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, local-names SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, other-ncnames SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, other-uris SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, attribute-values SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, content-character-chunks SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, other-strings SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, element-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL, attribute-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL ) (CONSTRAINED BY {

-- Если присутствует компонент -- initial~vocabL'lary, то должен -— присутствовать котя оы един ~~ из его компонентов -- }) OPTIONAL, notations SEQUENCE (SIZE(1..MAX)) OF

35

ГОСТ ISO/IEC 24824-1—2013

Notation OPTIONAL, unparsed-entities SEQUENCE (SIZE(1..MAX)) OF UnparsedEntity OPTIONAL, character-encoding-scheme NonEmptyOctetString OPTIONAL, standalone BOOLEAN OPTIONAL, version NonldentifyingStringOrlndex OPTIONAL

-- Категория OTHER STRING --, children SEQUENCE (SIZE (0. .MAX)) OF CHOICE { element Element, processing-instruction Processinginstruction, comment Comment, document-type-declaration DocumentTypeDeclaration }} one-meg INTEGER ::■ 1048576 -- Два в степени 20 four-gig INTEGER ::■ 4294967296 -- Два в степени 32 NonEmptyOctetString ::= OCTET STRING (SIZE(1..four-gig)) URI ::= NonEmptyOctetString Element ::■ SEQUENCE ( namespace-attributes SEQUENCE (SIZE(1..MAX)) OF NamespaceAttribute OPTIONAL, qualified-name QualifiedNameOrlndex

-- Категория ELEMENT NAME --, attributes SEQUENCE (SIZE(1..MAX)) OF Attribute OPTIONAL, children SEQUENCE (SIZE(0..MAX)) OF CHOICE ( element Element, processing-instruction Processinginstruction, unexpanded-entity-reference

UnexpandedEntityReference, character-chunk Characterchunk, comment Comment }} Attribute ::= SEQUENCE { qualified-name QualifiedNameOrlndex

-- Категория ATTRIBUTE NAME --, normalized-value NonldentifyingStringOrlndex

-- Категория ATTRIBUTE VALUE -- } Processinginstruction ::= SEQUENCE { target IdentifyingStringOrlndex

— Категория OTHER NCNAME —z content NonldentifyingStringOrlndex

-- Категория OTHER STRING — ) UnexpandedEntityReference ::■ SEQUENCE { name IdentifyingStringOrlndex

-- Категория OTHER NCNAME --, system-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI --, public-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI — } Characterchunk ::■ SEQUENCE { character-codes NonldentifyingStringOrlndex

-- Категория CONTENT CHARACTER CHUNK — } Comment ::» SEQUENCE (

content NonldentifyingStringOrlndex

-- Категория OTHER STRING -- }

36

ГОСТ ISO/IEC 24824-1-2013

DocumentTypeDeclaration ::= SEQUENCE { system-identifier IdentifyingStringOrindex OPTIONAL -- Категория OTHER URI --, public-identifier IdentifyingStringOrindex OPTIONAL — Категория OTHER URI --, children SEQUENCE (SIZE(0..MAX)) OF Processinginstruction } UnparsedEntity ::■ SEQUENCE { name IdentifyingStringOrindex

-- Категория OTHER NCNAME --, system-identifier IdentifyingStringOrindex

-- Категория OTHER URI —, public-identifier IdentifyingStringOrindex OPTIONAL

-- Категория OTHER URI --, notation-name IdentifyingStringOrindex

-- Категория OTHER NCNAME -- }

Notation ::■ SEQUENCE { name IdentifyingStringOrindex

— Категория OTHER NCNAME --, system-identifier IdentifyingStringOrindex OPTIONAL

-- Категория OTHER URI --, public-identifier IdentifyingStringOrindex OPTIONAL — Категория OTHER URI -- )

NamespaceAttribute ::= SEQUENCE { prefix IdentifyingStringOrindex OPTIONAL -- Категория PREFIX --, namespace-name IdentifyingStringOrindex OPTIONAL

-- Категория NAMESPACE NAME -- } IdentifyingStringOrindex ::= CHOICE {

literal-character-string NonEmptyOctetString, string-index INTEGER (1..one-meg) }

NonldentifyingStringOrlndex ::= CHOICE { literal-character-string SEQUENCE { add-to-table BOOLEAN, character-string EncodedCharacterString }, string-index INTEGER (0..one-meg) )

NameSurrogate ::= SEQUENCE (

prefix-string-index INTEGER(1.. one-meg) OPTIONAL,

namespace-name-string-index INTEGER(1..one-meg) OPTIONAL, local-name-string-index INTEGER(1..one-meg) }

(CONSTRAINED BY {-- prefix-string-index должен

-- присутствовать, только если

-- присутствует namespace-narne-string-index ” })

QualifiedNameOrIndex : :■ CHOICE { literal-qualified-name SEQUENCE { prefix IdentifyingStringOrindex OPTIONAL — Категория PREFIX --, namespace-name IdentifyingStringOrindex OPTIONAL -- Категория NAMESPACE NAME --, local-name IdentifyingStringOrindex

-- Категория LOCAL NAME -- },

name-surrogate-index INTEGER (1..one-meg) } EncodedCharacterString ::= SEQUENCE (

encoding-format CHOICE {

37

ГОСТ ISO/IEC 24824-1—2013

utf-8 NULL, utf-16 NULL, restricted-alphabet INTEGER(1..256), encoding-algorithm INTEGER(1..256) }, octets NonEmptyOctetString }

END

A.2 Определения модуля ECN

FastlnfosetEDM {joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) modules(O) fast-infoset-edm(l)} ENCODING-DEFINITIONS ::= BEGIN EXPORTS FastlnfosetEncodingSet;

RENAMES

SINTEGER AS #PositiveOrNonNegativeInteger IN #IdentifyingStringOrlndex.string-index, SNonldentifyingStringOrlndex.string-index, SQualifiedNameOrlndex. name-surrogate-index, SNameSurrogate.namespace-name-string-index, #NameSurrogate. prefix-string- index, SNameSurrogate.local-name-string-index

FROM Fastinfoset;

/* RENAMES автоматически импортирует:

#Document, SNonEmptyOctetString, #NameSurrogate, SProcessinglnstruction,SUnexpandedEntityReference, #Comment, UDocumentTypeDeclaration, SUnparsedEntity, #Notation. SElement, SAttribute, SCharacterChunk, SNamespaceAttribute, #IdentifyingStringOrlndex, SNonldentifyingStringOrlndex, SQualifiedNameOrlndex, SEncodedCharacterString FROM Fastinfoset;

*/

-- Полезные классы кодирования

SPositiveOrNonNegativelnteger ::= SINTEGER

SNonEmptySequenceOfLength :: = SINT(1..1048576) #NonEmptyOctetStringLength ::= HINT(1..4294967296) STwoAlternativeDiscriminant ::= SINT(O..l) #ThreeAlternativeDiscriminant ::= SINT(0..2) SFourAlternativeDiscriminant ::= SINT(O..3) SFiveAlternativeDiscriminant ::= SINT(0..4) -- Используют при кодировании длины SEQUENCE Oi' (см. С.21} SNonEmptySequenceOfLengthAlternativesl ::= SALTERNATIVES { small SINT(1..128), large SINT(129..1048576) )

-- Используют при кодировании длины NonEmptyOctetString (см. С.22) #NonEmptyOctetStringLengthAlternatives2 ::» SALTERNATIVES {

small SINT(1..64),

medium SINT(65..320),

large SINT(321..4294967296) }

-- Используют при кодировании длины NonEmptyOctetString (см. С.23) #NonEmptyOctetStringLengthAlternatives5 ::■ SALTERNATIVES {

small SINT(1..8),

medium SINT(9..264),

large SINT(265..4294967296) }

-- Используют при кодировании длины NonEmptyOctetString (см. С.24) #NonEmptyOctetStringLengthAlternatives7 ::» SALTERNATIVES {

38

ГОСТ ISO/IEC 24824-1-2013

small «INT(1..2), medium «INT(3..258), large «INT(259..4294967296) }

-- Использует при кодировании положительного целого значения (см. С.25} #PositiveIntegerAlternatives2 ::■ «ALTERNATIVES {

small «INT(1..64), medium «INT(658256), large «INT(8257..1048576) }

-- Использует при кодировании положительного целого значения (см. С.27)

#PositiveintegerAlternatives3 ::= «ALTERNATIVES { small «INT(1..32), medium HINT<33..2080), medium-large «INT(2081..526368), large «INT(526369..1048576) }

-- Использует при кодировании положительного целого значения (см. С.28) #PositiveIntegerAlternatives4 ::■ «ALTERNATIVES {

small #INT(1..16), medium #INT (17..1040), medium-large «INT(1041..263184), large «INT(263185..1048576) }

-- Использует при кодировании неотрицательного целого значения (см. С.26) #NonNegativeIntegerAlternatives2 ::= «ALTERNATIVES {

zero #INT(0), small «INT(1..64), medium «INT(65..8256), large «INT (8257..1048576) }

--Во многих случаях используют для вставки начальной заОивки #PrecededByPrepadding{<«C>) : : = «CONCATENATION { prepadding «PAD, original «С }

-- Использует для вставки двухвариантного дискриминанта -- перед кодированием

#PrecededByTwoAlternativeDiscriminant{<#C>) ::■ «CONCATENATION { discriminant «TwoAlternativeDiscriminant, original «С }

-- Используют для вставки трехвариантного дискриминанта -- перед кодированием

#PrecededByThreeAlternativeDiscriminant{<«C>) ::» «CONCATENATION ( discriminant «ThreeAlternativeDiscriminant, original «С }

-- Использует для вставки четьрехвариантного дискриминанта -- перед кодированием

#PrecededByFourAlternativeDiscriminant{<«C>} ::■ «CONCATENATION { prepadding «PAD, discriminant «FourAlternativeDiscriminant, original «С )

-- Использует для вставки пятивариантного дискриминанта -- перед кодированием

#PrecededByFiveAlternativeDiscriminant{<«C>) ::■ «CONCATENATION { prepadding «PAD, discriminant «FiveAlternativeDiscriminant, original «С }

-- Использует для вставки поля длины перед кодированием SEQUENCE OF «PrecededByNonEmptySequenceOfLength{<«С>) ::= «CONCATENATION { length «NonEmptySequenceOfLength.

39

ГОСТ ISO/IEC 24824-1—2013

original КС }

-- Используют для вставки поля длины перед

-- кодированием NonEmptyOctetString

UPrecededByNonEmptyOctetStringLength{<4С>} ::■ 4CONCATENATION (

length 4NonEmptyOctetStringLength, original #C )

-- Кодируют элемент компонента notations типа Document (см. С.2.6.1) eNotationDriverl 4Notation ::= {

ENCODE STRUCTURE { STRUCTURED WITH eNotationPrepaddingAdderl )

WITH FastlnfosetEncodingSet }

-- Кодируют элемент компонента unparsed-entities типа Document (см. С.2.7.1) eUnparsedEntityDriverl 4UnparsedEntity ::= {

ENCODE STRUCTURE {

STRUCTURED WITH eUnparsedEntityPrepaddingAdder1 }

WITH FastlnfosetEncodingSet )

-- Кодируют элемент компонента namespace-attributes типа Element (см. C.3.4.2) eNamespaceAttributeDriver1 SNamespaceAttribute ::= {

ENCODE STRUCTURE {

STRUCTURED WITH eNaraespaceAttributePrepaddingAdder1 }

WITH FastlnfosetEncodingSet )

-- Кодируют элемент компонента attributes типа Element (см. С.3.6.1) eAttributeDriver1 4Attribute ::■ {

ENCODE STRUCTURE { STRUCTURED WITH eAttributePrepaddingAdderl }

WITH FastlnfosetEncodingSet }

-- Кодируют элемент компонентов attribute-values,

-- content-character-chunks и other-strings типа Document (см. С.2.5.4) eEncodedCharacterStringDriverl #EnccdedCharacterString ::= {

ENCODE STRUCTURE { STRUCTURED WITH eEncodedCharacterStringPrepaddingAdderl }

WITH FastlnfosetEncodingSet )

-- Кодируют элемент компонентов element-name-surrogates и

— attribute-name-surrogates типа Document (см. С.2.5.5) eNarceSurrogateDriverl #NameSurrogate ::= {

ENCODE STRUCTURE {

STRUCTURED WITH eNameSurrogatePrepaddingAdderl }

WITH FastlnfosetEncodingSet }

-- Кодируют компонент initial-vocabulary типа Document (см. С.2.5) elnitialVocabularyPrepaddingAdderl 4SEQUENCE ::= {

REPLACE STRUCTURE WITH #PrecededByPrepadding

ENCODED BY elnitialVocabularyWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента notations типа Document (см. С.2.6.1)

eNotationPrepaddingAdderl 4SEQUENCE ::■ {

REPLACE STRUCTURE WITH #PrecededByPrepadding

ENCODED BY eNotationWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента unparsed-entities типа Document (см. С.2.7.1)

eUnparsedEntityPrepaddingAdderl 4SEQUENCE ::■ {

REPLACE STRUCTURE WITH #PrecededByPrepadding

ENCODED BY eUnparsedEntityWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента standalone типа Document (см. С.2.9)

40

ГОСТ ISO/IEC 24824-1-2013

eStandalonePrepaddingAdderl iBOOL ::■ (

REPLACE STRUCTURE WITH #PrecededByPrepadding

ENCODED BY eStandaloneWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента children типа DocumentTypeDeclaration (см. С.9.6)

eDocTypeDeclChildPrepaddingAdderl «SEQUENCE ::= {

REPLACE STRUCTURE WITH «PrecededByPrepadding ENCODED BY eDocTypeDeclChildWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента namespace-attributes типа Element (см. С.3.4.2)

eNamespaceAttributePrepaddingAdder1 «SEQUENCE ::■ {

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eNamespaceAttributeWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента attributes типа Element (см. С.3.6.1)

eAttributePrepaddingAdder1 «SEQUENCE ::■ (

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eAttributeWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента - - компонента 1 i ter а 1 -qua 1 i tied-name типа Qua 1 ifiedNameOrIndex.

-- Используют, когда кодирование начинается со второго бита

-- октета (см. С. 17.3)

eLiteralQualifiedNamePrepaddingAdder2 «SEQUENCE : :■ {

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eLiteralQualifiedNameWithPrepadding2 }

-- Вставляют начальную забивку перед кодированием элемента

-- компонента literal-qualified-name типа QualifiedfiameQrIndex.

-- Используют, когда кодирование начинается с третьего бита

-- октета (см. С.18.3)

eLiteralQualifiedNamePrepaddingAdder3 «SEQUENCE : :■ {

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eLiteralQualifiedNarr.eWithPrepadding3 }

-- Вставляют начальную забивку перед кодированием элемента

— компонентов restricted-alphabets, encoding-algorithms,

-- prefixes, namespace-names, local-names, other-ncnames и

-- other-uris типа Document (см. C.2.5.3)

eNonEmptyOctetStringPrepaddingAdderl «OCTET-STRING ::■ (

REPETITION-ENCODING {

REPLACE STRUCTURE WITH «PrecededByPrepadding ENCODED BY eNonEmptyOctetStringWithPrepaddingl )}

-- Вставляют начальную забивку перед кодированием элемента

-- компонентов attribute-values, content-character-chunks и

-- other-strings типа Document (см. С.2.5.4)

eEncodedCharacterStringPrepaddingAdderl «SEQUENCE ::= {

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eEncodedCharacterStringWithPrepaddingl }

-- Вставляют начальную забивку перед кодированием элемента

-- компонентов element-name-surrogates и

-- attribute-name-surrogates типа Document (см. С.2.5.5)

eNameSurrogatePrepaddingAdderl «SEQUENCE ::= {

REPLACE STRUCTURE WITH «PrecededByPrepadding

ENCODED BY eNameSurrogateWithPrepaddingl }

-- Вставляют дискриминант перед кодированием элемента компонента

-- children типа Document (см. С.2.11.2 -- С.2.11.5)

41

ГОСТ ISO/IEC 24824-1—2013

eDocumentChildDiscriminantAdderlor5 #CHOICE ::= {

REPLACE STRUCTURE WITH #PrecededByFourAlternativeDiscriminant ENCODED BY eDocumentChildWithDiscriminantlor5 |

-- Вставляют дискриминант перед кодированием элемента компонента

-- children типа Element: (см. С.3.7.2 -- С.3.7.6)

eElementChildDiscriminantAdderlor5 ЦСНО1СЕ ::= {

REPLACE STRUCTURE WITH #PrecededByFiveAlternativeDiscriminant ENCODED BY eElementChildWithDiscriminantlor5 )

-- Вставляют дискриминант перед кодированием длины SEQUENCE OF,

-- идентифицируя один из двух способов кодирования длины (см. С.21) eNonEmptySequenceOfLengthDiscriminantAdderl #CHOICE : : = {

REPLACE STRUCTURE WITH #PrecededByTwoAlternativeDiscriminant ENCODED BY eNonEmptySequenceOfLengthWithDiscriminantl }

-- Вставляют дискриминант перед кодированием длины

-- NonEmptyOctetString, идентифицируя один из трек способов

— кодирования длины. Используют, когда кодирование

-- начинается со второго бита октета (см. С.22)

eNonEmptyOctetStringLengthDiscriminantAdder2 #СНО1СЕ ::■ {

REPLACE STRUCTURE WITH #PrecededByThreeAlterпаtiveDisсriminant ENCODED BY eNonEmptyOctetStringLengthWithDiscriminant2 }

-- Вставляют дискриминант перед кодированием длины

-- NonEmptyOctetString, идентифицируя один из трех способов

-- кодирования длины. Используют, когда кодирование начинается

--с пятого бита октета (см. С.23)

eNonEmptyOctetStringLengthDiscriminantAdder5 #СНО1СЕ ::= {

REPLACE STRUCTURE WITH #PrecededByThreeAlternativeDisсriminant ENCODED BY eNonEmptyOctetStringLengthWithDiscriminant5 }

-- Вставляют дискриминант перед кодированием длины

-- NonEmptyOctetString, идентифицируя один из трех способов

-- кодирования длины. Используют, когда кодирование начинается

-- с седьмого бита октета (см. С.24)

eNonEmptyOctetStringLengthDiscriminantAdder? #СНО1СЕ ::= {

REPLACE STRUCTURE WITH #PrecededByThreeAlternativeDiscriminant ENCODED BY eNonEmptyOctetStringLengthWithDiscriminant7 }

-- Вставляют дискриминант перед кодированием положительного

-- целого значения, идентифицируя один из трех способов его

-- кодирования. Используют, когда кодирование начинается со

-- второго бита октета (см. С.25)

ePositive!ntegerDiscriminantAdder2 ^CHOICE ::= {

REPLACE STRUCTURE WITH #PrecededByThreeAlternativeDiscriminant ENCODED BY ePositiveIntegerWithDiscriminant2 }

-- Вставляют дискриминант перед кодированием положительного

-- целого значения, идентифицируя один из четырех способов его

-- кодирования. Используют, когда кодирование начинается с

-- третьего бита октета (см. С.27)

ePositive!ntegerDiscriminantAdder3 ffCHOICE : : = {

REPLACE STRUCTURE WITH #PrecededByFourAlternativeDiscriminant ENCODED BY ePositiveIntegerWithDiscriminant3 )

-- Вставляют дискриминант перед кодированием положительного

-- целого значения, идентифицируя один из четырех способов его

-- кодирования. Используют, когда кодирование начинается с

-- четвертого бита октета (см. С.28)

ePositiveIntegerDiscriminantAdder4 ^CHOICE ::= (

REPLACE STRUCTURE WITH #PrecededByFourAlternativeDiscriminant

42

ГОСТ ISO/IEC 24824-1-2013

ENCODED BY ePositiveIntegerWithDiscriminant4 }

-- Вставляют дискриминант перед кодированием неотрицательного

-- целого значения, идентифицируя один из трех способов его

-- кодирования (см. С.26) eNonNegativeIntegerDiscriminantAdder2 #CHOICE : : = { REPLACE STRUCTURE WITH UPrecededByFourAlternativeDiscriminant ENCODED BY eNonNegativeIntegerWithDiscriminant2 }

-- Устанавливает начальную забивку, которая была добавлена

-~ перед компонентом initial-vocabulary типа Document, и

-- кодируют этот компонент (см. С.2.5) elnitialVocabularyWithPrepaddingl{<#С>} #PrecededByPrepadding{<#C>} ::= { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 3 PAD-PATTERN bits:'ООО'В }, original { ENCODE STRUCTURE { restricted-alphabets { ENCODE STRUCTURE { STRUCTURED WITH

eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet }

OPTIONAL-ENCODING USE-SET, encoding-algorithms { ENCODE STRUCTURE { STRUCTURED WITH

eRepetitionWithLengthNonEmptyOctetStringl ) WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, prefixes { ENCODE STRUCTURE { STRUCTURED WITH

eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet }

OPTIONAL-ENCODING USE-SET, namespace-names { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet }

OPTIONAL-ENCODING USE-SET, local-names { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet }

OPTIONAL-ENCODING USE-SET, other-ncnames { ENCODE STRUCTURE {

43

ГОСТ ISO/IEC 24824-1—2013

STRUCTURED WITH

eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, other-uris { ENCODE STRUCTURE { STRUCTURED WITH

eRepetitionWithLengthNonEmptyOctetStringl } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, attribute-values { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthEncodedCharacterStringl > WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, content-character-chunks ( ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthEncodedCharacterStringl } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, other-strings { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthEncodedCharacterStringl ) WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, element-name-surrogates { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthNameSurrogatel } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, attribute-name-surrogates { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthNameSurrogatel } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET } WITH FastlnfosetEncodingSet }} WITH FastlnfosetEncodingSet }

-- Устанавливаем начальную забивку, которая была добавлена перед -- каждым элементом компонента notations типа Document, и -- кодируют этот элемент (см. С.2.6.1) eNotationWithPrepaddingl{<#С>} #PrecededByPrepadding{<#C>} ::= { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 6 PAD-PATTERN bits:'110000'В }, original eNotation? }

44

ГОСТ ISO/IEC 24824-1-2013

WITH FastlnfosetEncodingSet )

-- Уста на влив ают начальную забивку, которая была добавлена перед -- каждым элементом компонента unparsed-entities типа Document:, -- и кодируют этот элемент (см. С.2.7.1) eUnparsedEntityWithPrepaddingl(<|С>) #PrecededByPrepadding{<#C>} : : = { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 7 PAD-PATTERN bits:'1101000'В }, original eUnparsedEntity8 } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- компонентом standalone типа Document, и кодируют этот -- компонент (см. С.2.9) eStandaloneWithPrepaddingl(<#С>) #PrecededByPrepadding{<#C>} ::= ( ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 7 PAD-PATTERN bits:'0000000'В ), original USE-SET } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- каждым элементом компонента namespace-at tributes типа -- Element, и кодируют этот элемент (см. С.3.4.2) eNamespaceAttributeWithPrepaddingl{<#С>}

#PrecededByPrepadding{<#C>) ::= { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 6 PAD-PATTERN bits:'110011'В EXHIBITS HANDLE «nsa» AT{0|l|2|3|4|5} AS bits:'110011'В }, original eNamespaceAttribute7 STRUCTURED WITH { ENCODING-SPACE EXHIBITS HANDLE «nsa» AT{0|l|2|3|4|5} AS bits:'110011'В }} WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- каждым элементом компонента attributes типа Element, и -- кодируют этот элемент (см. С.3.6.1) eAttributeWithPrepaddingl{<#С>} #PrecededByPrepadding{<#C>} ::■ { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 1 PAD-PATTERN bits:'0'В ), original eAttribute2 } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- каждым элементом компонента children типа

-- DocumentTypeDeclaration, и кодируют этот элемент (см. С. 9.6) eDocTypeDeclChildWi thPrepaddingl(<#С>} #PrecededByPrepadding{<#С>} ::» ( ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 8

45

ГОСТ ISO/IEC 24824-1—2013

PAD-PATTERN bits:'11100001'В }, original eProcessinglnstructionl } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена -- перед каждым элементом компонентов restricted-alphabets, -- encoding-algorithms, prefixes, namespace-names, local-names, -- other-ncnames и other-uris типа document, и кодируют этот -- элемент (см. С.2.5.3) eNonEmptyOctetStringWithPrepaddingl{<#С>} #PrecededByPrepadding{<#C>} ::= { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 1 PAD-PATTERN bits:'0'B ), original USE-SET } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- каждым элементом компонентов attribute-values, -- content-character-chunks и other-strings типа Document, и -- кодируют этот элемент (см. С.2.5.4) eEncodedCharacterStringWithPrepaddingl{<#С>) #PrecededByPrepadding{<#C>} ::= { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 2 PAD-PATTERN bits:'00'В }, original USE-SET }

WITH FastlnfosetEncodingSet ) eNameSurrogateWithPrepaddingl{<#C>} #PrecededByPrepadding{<#C>} ::= {

ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 6 PAD-PATTERN bits:'000000'В }, original eNameSurrogate? } WITH FastlnfosetEncodingSet }

-- Устанавливают начальную забивку, которая была добавлена перед -- компонентом liter al-qualified-name типа QualifiedNameOrlndex, -- и кодируют этот компонент. Используют, когда кодирование -- начинается со второго бита октета (см. 0.17.3) eLiteralQualifiedNameWithPrepadding2{<#С>} #PrecededByPrepadding{<#C>} : := { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 5 PAD-PATTERN bits:'11110'В }, original ( ENCODE STRUCTURE (

prefix eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, namespace-name eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, local-name eldentifyingStringOrlndexl } WITH FastlnfosetEncodingSet ) STRUCTURED WITH { ENCODING-SPACE EXHIBITS HANDLE «qn» AT { 0 | 1 | 2 | 3 } AS bits:'llll'B )} WITH FastlnfosetEncodingSet }

46

ГОСТ ISO/IEC 24824-1-2013

-- Устанавливает начальную забивку, которая Сила добавлена перед -- компонентом literal-qualified-name типа QualifiedNameOrlndex, -- и кодирует этот компонент. Использует, когда кодирование -- начинается с третьего бита октета {см. С.18.3) eLiteralQualifiedNameWi thPrepadding3 {<#С>) #PrecededByPrepadding{<#С>} ::■ { ENCODE STRUCTURE { prepadding { ENCODING-SPACE SIZE 4

PAD-PATTERN bits:'1111'В EXHIBITS HANDLE «qn» AT { 0 | 1 | 2 | 3 } AS bits:'llll'B }, original ( ENCODE STRUCTURE ( prefix eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, namespace-name eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, local-name eldentifyingStringOrlndexl } WITH FastlnfosetEncodingSet ) STRUCTURED WITH { ENCODING-SPACE EXHIBITS HANDLE «qn» AT { 0 | 1 | 2 | 3 } AS bits:'1111'В )} WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед SEQUENCE -- Of, и кодируют SEQUENCE Of NonEmptyOctetString (см. С.21) eNonEmptySequenceOfWithLengthNonEmptyOctetStringl{<#С>} #PrecededByNonEmptySequenceOfLength{<#C>) ::= { ENCODE STRUCTURE { length eNonEmptySequenceOfLengthl, original ( ENCODE STRUCTURE { eNonEmptyOctetStringPrepaddingAdderl STRUCTURED WITH eRepetitionltemsl(<length>)

} WITH PER-BASIC-UNALIGNED }} WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед SEQUENCE -- Of, и кодируют SEQUENCE Of EncodedCharacterString (см. С.21) eNonEmptySequenceOfWithLengthEncodedCharacterStringl{<#С>} #PrecededByNonEmptySequenceOfLength(<|С>) ::= { ENCODE STRUCTURE { length eNonEmptySequenceOfLengthl, original ( ENCODE STRUCTURE {

eEncodedCharacterStringDriverl STRUCTURED WITH eRepetitionltemsl{<length>} } WITH PER-BASIC-UNALIGNED }) WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед SEQUENCE -- Of, и кодируют SEQUENCE Of NameSurrogate (см. С.21) eNonEmptySequenceOfWithLengthNameSurrogatel{<#С>} SPrecededByNonEmptySequenceOfLength{<#С>} ::= { ENCODE STRUCTURE { length eNonEmptySequenceOfLengthl, original {

47

ГОСТ ISO/IEC 24824-1—2013

ENCODE STRUCTURE ( eNameSurrogateDriverl STRUCTURED WITH eRepetitionltemsl{<length>} } WITH PER-BASIC-UNALIGNED }} WITH FastlnfosetEncodingSet }

-- Кодируют поде длины, которое было добавлено перед SEQUENCE

-- ОГ, и кодируют SEQUENCE ОЕ additional-datum (см. С.21) eNonEmptySequenceOfWithLengthAdditionalDatuml{<#С>} #PrecededByNonEmptySequenceOfLength{<#С>} ::= {

ENCODE STRUCTURE { length eNonEmptySequenceOfLengthl, original {

ENCODE STRUCTURE ( additional-datum { ENCODE STRUCTURE { id eNonEmptyOctetStringPrepaddingAdderl, data eNonEmptyOctetStringPrepaddingAdder1 } WITH FastlnfosetEncodingSet} STRUCTURED WITH eRepetitionltemsl{<length>}

} WITH PER-BASIC-UNALIGNED }} WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед

-- NonEmptyOctetString, и кодируют NonEmptyOctetString.

-- Используют, когда кодирование нанимается со второго бита

-- октета (см. С.22)

eNonEmptyOcte tStringWi thLength2{<#C>}

#PrecededByNonEmptyOctetStringLength{<#C>) ::■ {

ENCODE STRUCTURE {

length eNonEmptyOctetStringLength2, original eOctetStringOctetsl{<length>} } WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед

-- NonEmptyOctetString, и кодируют NonEmptyOctetString.

-- Используют, когда кодирование нанимается с пятого Оита октета (см. С.23) eNonEmptyOctetStringWi thLength5{<#C>} #PrecededByNonEmptyOctetStringLength{<#C>} ::= {

ENCODE STRUCTURE {

length eNonEmptyOctetStringLength5, original eOctetStringOctetsl{<length>} } WITH FastlnfosetEncodingSet }

-- Кодируют поле длины, которое было добавлено перед

-- NonEmptyOctetString, и кодируют NonEmptyOctetString.

-- Используют, когда кодирование нанимается с седьмого бита

-- октета (см. С.24)

eNonEmptyOctetStringWithLength7{<#C>}

#PrecededByNonEmptyOctetStringLength{<#C>} ::■ {

ENCODE STRUCTURE {

length eNonEmptyOctetStringLength7, original eOctetStringOctetsl{<length>} } WITH FastlnfosetEncoingSet }

-- Кодируют дискриминант, который был добавлен перед элементом

-- компонента children типа Document, и кодируют этот элемент

-- (см. С.2.11.2 - С.2.11.5)

eDocumentChildWithDiscriminantlor5{<#C>} #PrecededByFourAlternativeDiscriminant{<#С>} ::= {

48

ГОСТ ISO/IEC 24824-1-2013

ENCODE STRUCTURE { prepadding { ALIGNED TO NEXT octet ENCODING-SPACE SIZE 0 ), discriminant { USE #BIT-STRING MAPPING TO BITS ( 0 TO 'O'B, 1 TO '11100001'B, 2 TO ’11100010'B, 3 TO ’110001'В } WITH FastlnfosetEncodingSet }, original ( ENCODE STRUCTURE ( element eElement2, processing-instruction eProcessinglnstructionl, comment eCommentl, document-type-declaration eDocumentTypeDeclaration? STRUCTURED WITH ( ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet }}

WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед элементом -- компонента children типа Element, и кодируют этот элемент -- (см. С.З. 7.2 - 2.3. 7.6} eElementChildWithDiscriminantlor5{<#С>} #PrecededByFiveAlternativeDiscriminant(<KC>) ::= {

ENCODE STRUCTURE { prepadding { ALIGNED TO NEXT octet ENCODING-SPACE SIZE 0 ), discriminant { USE KBIT-STRING MAPPING TO BITS ( 0 TO ’O'B, 1 TO 41100001'B, 2 TO ’110010'B, 3 TO '10'В, 4 TO '11100010'B } WITH FastlnfosetEncodingSet ), original ( ENCODE STRUCTURE ( element eElement2, processing-instruction eProcessinglnstructionl, unexpanded-entity-reference eUnexpandedEntityReference7, character-chunk eCharacterChunk3. comment eCommentl STRUCTURED WITH { ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet }}

WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед длиной -- SEQUENCE ОК (идентифицируя один из двух способов кодирования

49

ГОСТ ISO/IEC 24824-1—2013

-- длины), и кодируют эту длину (см. С.21) eNonEmptySequenceOfLengthWithDiscriminantl(<|C>) #PrecededByTwoAlternativeDiscriminant{<#C>} ::= { ENCODE STRUCTURE { discriminant { USE #BIT-STRING MAPPING TO BITS ( 0 TO ’O'B, 1 TO '1000'В } WITH FastlnfosetEncodingSet }, original ( ENCODE STRUCTURE ( STRUCTURED WITH { ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet )} WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед длиной -- NonEmpsyGctetString Идентифицируя один из трек

-- способов кодирования длины), и кодируют длину. Используют, -- когда кодирование начинается со второго бита октета (см. С.22} eNonEmptyOctetStringLengthWithDiscriminant2{<#С>} #PrecededByThreeAlternativeDiscriminant{<#C>} ::= {

ENCODE STRUCTURE { discriminant { USE KBIT-STRING MAPPING TO BITS ( 0 TO 'O'B, 1 TO '1000000'B, 2 TO '1100000'В } WITH FastlnfosetEncodingSet }, original { ENCODE STRUCTURE ( STRUCTURED WITH ( ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }) WITH FastlnfosetEncodingSet }}

WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед длиной -- NonEmptyOctetString (идентифицируя один из трех способов -- кодирования длины), и кодируют длину. Используют, когда -- кодирование начинается с пятого бита октета (см. С.23) eNonEmptyOctetStringLengthWithDiscriminant5{<#C>} KPrecededByThreeAlternativeDiscriminant(<|C>) ::= { ENCODE STRUCTURE { discriminant { USE KBIT-STRING MAPPING TO BITS ( 0 TO ’O'B, 1 TO ’1000'B, 2 TO ’1100'B } WITH FastlnfosetEncodingSet |, original ( ENCODE STRUCTURE { STRUCTURED WITH {

50

ГОСТ ISO/IEC 24824-1-2013

ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }) WITH FastlnfosetEncodingSet )} WITH FastlnfosetEncodingSet )

-- Кодируют дискриминант, который был добавлен перед длиной -- NonEmptyOctetString (идентифицируя один из трех способов -- кодирования длины), и кодируют длину. Используют, когда -- кодирование начинается с седьмого бита октета (см. С.24) eNonEmptyOctetStringLengthWithDiscriminant7{<#C>} #PrecededByThreeAlternativeDiscriminant{<#C>} ::■ { ENCODE STRUCTURE { discriminant { USE #BIT-STRING MAPPING TO BITS ( 0 TO ’O'B, 1 TO ’10'В, 2 TO ’ll'В } WITH FastlnfosetEncodingSet }, original { ENCODE STRUCTURE ( STRUCTURED WITH { ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }) WITH FastlnfosetEncodingSet )} WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед — положительным целым значением (идентифицируя один из трех -- способов кодирования целого), и кодируют целое значение. -- Используют, когда кодирование начинается со второго бита -- октета (см. С.25) ePositiveIntegerWithDiscriminant2 {<#О) #PrecededByThreeAlternativeDiscriminant{<#C>} ::= { ENCODE STRUCTURE { discriminant { USE #BIT-STRING

MAPPING TO BITS ( 0 TO ’O'B, 1 TO ’10'B, 2 TO ’110’В } WITH FastlnfosetEncodingSet }, original ( ENCODE STRUCTURE ( STRUCTURED WITH {

ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet } STRUCTURED WITH { ENCODING-SPACE SIZE self-delimiting-values EXHIBITS HANDLE «qn» AT { 0 | 1 | 2 | 3 } AS range:{low 0, high 12})} -- Меньше *1110'В WITH FastlnfosetEncodingSet } -- Кодируют дискриминант, который был добавлен перед -- положительным целым значением (идентифицируя один из четырех -' способов кодирования целого), и кодируют целое значение. -- Используют, когда кодирование начинается с третьего бита -- октета (см. С.27)

51

ГОСТ ISO/IEC 24824-1—2013

ePositiveIntegerWithDiscriminant3{<|C>) #PrecededByFourAlternativeDiscriminant{<#C>} ::= { ENCODE STRUCTURE { discriminant { USE KBIT-STRING

MAPPING TO BITS ( 0 TO 'O'B, 1 TO ’100B, 2 TO '101'B, 3 TO 410000000'В } WITH FastlnfosetEncodingSet }, original ( ENCODE STRUCTURE ( STRUCTURED WITH ( ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet } STRUCTURED WITH { ENCODING-SPACE SIZE self-delimiting-values EXHIBITS HANDLE «qn» AT { 0 | 1 | 2 | 3 } AS range:{low 0, high 14}}} -- Меньше '1111'В WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед

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

-- Используют, когда кодирование начинается с четвертого бита -- октета (см. С.28) ePositivelntegerWithDiscriminant4{<#С>} #PrecededByFourAlternativeDiscriminant(<#C>} ::= {

ENCODE STRUCTURE { discriminant { USE KBIT-STRING MAPPING TO BITS { 0 TO ’O'B, 1 TO ’100'B, 2 TO '101'B, 3 TO ’110000000'В } WITH FastlnfosetEncodingSet }, original { ENCODE STRUCTURE ( STRUCTURED WITH { ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet }}

WITH FastlnfosetEncodingSet }

-- Кодируют дискриминант, который был добавлен перед

-- неотрицательным целым значением (идентифицируя один из трех -- способов кодирования этого целого значения), и кодирует целое -- значение (см. С.26) eNonNegativeIntegerWithDiscriminant2{<#С>} #PrecededByFourAlternativeDiscriminant{<KC>) ::= { ENCODE STRUCTURE { discriminant { USE KBIT-STRING

MAPPING TO BITS ( 0 TO ’lllllll'B,

52

ГОСТ ISO/IEC 24824-1-2013

1 то 'О'в, 2 ТО ЧО'В, 3 ТО '110'В } WITH FastlnfosetEncodingSet }, original ( ENCODE STRUCTURE ( STRUCTURED WITH ( ALTERNATIVE DETERMINED BY field-to-be-set USING discriminant }} WITH FastlnfosetEncodingSet }} WITH FastlnfosetEncodingSet )

-- Кодируют тип Document (см. С.2) eDocument2 ^Document :: = { ENCODE STRUCTURE { additional-data { ENCODE STRUCTURE { STRUCTURED WITH eRepetitionWithLengthAdditionalDatuml } WITH FastlnfosetEncodingSet }

OPTIONAL-ENCODING USE-SET, initial-vocabulary { ENCODE STRUCTURE ( STRUCTURED WITH elnitialVocabularyPrepaddingAdderl } WITH FastlnfosetEncodingSet ) OPTIONAL-ENCODING USE-SET, notations { ENCODE STRUCTURE ( eNotationDriver1 STRUCTURED WITH eRepetitionWithTerminator8bitl } WITH FastlnfosetEncodingSet ) OPTIONAL-ENCODING USE-SET, unparsed-entities ( ENCODE STRUCTURE ( eUnparsedEntityDriver1 STRUCTURED WITH eRepetitionWithTerminator8bitl } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, character-encoding-scheme eNonEmptyOctetStringPrepaddingAdder1 OPTIONAL-ENCODING USE-SET, standalone eStandalonePrepaddingAdderl OPTIONAL-ENCODING USE-SET, version eNonldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, children ( ENCODE STRUCTURE ( { ENCODE STRUCTURE { STRUCTURED WITH eDocumentChildDiscriminantAdderlor5 } WITH FastlnfosetEncodingSet } STRUCTURED WITH eRepetitionWithTerminator4bitl } WITH FastlnfosetEncodingSet }} WITH FastlnfosetEncodingSet } -- Кодируют тип Element, (см. С.З) eElement2 ^Element ::■ ( ENCODE STRUCTURE {

53

ГОСТ ISO/IEC 24824-1—2013

namespace-attributes { ENCODE STRUCTURE ( eNamespaceAttributeDriverl STRUCTURED WITH eRepetitionWithTerminatorlObitl } WITH FastlnfosetEncodingSet )

OPTIONAL-ENCODING eNamespaceAttributesOptionality3, qualified-name eQualifiedNameOrIndex3, attributes { ENCODE STRUCTURE { eAttributeDriverl STRUCTURED WITH eRepetitionWithTerminator4bitl } WITH FastlnfosetEncodingSet } OPTIONAL-ENCODING USE-SET, children { ENCODE STRUCTURE ( { ENCODE STRUCTURE { STRUCTURED WITH eElementChildDiscriminantAdderlorS } WITH FastlnfosetEncodingSet }

STRUCTURED WITH eRepetitionWithTerminator4bitl } WITH FastlnfosetEncodingSet }} WITH FastlnfosetEncodingSet }

-- Кодируют тип Attribute {см. С.4) eAttribute2 #Attribute ::» { ENCODE STRUCTURE { qualified-name eQualifiedNameOr!ndex2, normalized-value eNonldentifyingStringOrlndexl } WITH FastlnfosetEncodingSet }

-- Кодируют тип Processing instruct ion {см. C.5) eProcessinglnstructionl #ProcessingInstruction ::= { ENCODE STRUCTURE {

target eldentifyingStringOrlndexl, content eNonldentifyingStringOrlndexl } WITH FastlnfosetEncodingSet }

-- Кодируют тип UnexpandedEntityReference (см. С.6) eUnexpandedEntityReference7 #UnexpandedEntityRefегепсе : : = ( ENCODE STRUCTURE {

name eldentifyingStringOrlndexl, system-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, public-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET } WITH FastlnfosetEncodingSet }

-- Кодируют тип CharacterChunk (см. С.7) eCharacterChunk3 #CharacterChunk ::= { ENCODE STRUCTURE { character-codes eNonIdentifyingStringOr!ndex3 } WITH FastlnfosetEncodingSet }

-- Кодируют тип Continent (см. С. 8) eCommentl #Comment ::= { ENCODE STRUCTURE { content eNonldentifyingStringOrlndexl ) WITH FastlnfosetEncodingSet }

-- Кодируют тип OocumentTypeUeclaration (см. С. 9) eDocumentTypeDeclaration7 #DocumentTypeDeclaration ::= {

54

ГОСТ ISO/IEC 24824-1-2013

ENCODE STRUCTURE { system-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, public-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, children ( ENCODE STRUCTURE ( { ENCODE STRUCTURE { STRUCTURED WITH eDocTypeDeclChildPrepaddingAdderl } WITH FastlnfosetEncodingSet }

STRUCTURED WITH eRepetitionWithTerrainator4bi11 } WITH FastlnfosetEncodingSet }} WITH FastlnfosetEncodingSet } -- Кодируют тип UnparsedEntity (сы. С.10) eUnparsedEntity8 ^UnparsedEntity ::= { ENCODE STRUCTURE { name eldentifyingStringOrlndexl, system-identifier eldentifyingStringOrlndexl, public-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, notation-name eldentifyingStringOrlndexl } WITH FastlnfosetEncodingSet } -- Кодируют тип dotation (сы. С.11) eNotation7 ^Notation ::= { ENCODE STRUCTURE { name eldentifyingStringOrlndexl, system-identifier eldentifyingStringOrlndexl

OPTIONAL-ENCODING USE-SET, public-identifier eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET } WITH FastlnfosetEncodingSet } -- Кодируют тип NamespaceAttribute (см. С.12) eNamespaceAttribute7 #NamespaceAttribute ::= { ENCODE STRUCTURE { prefix eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET, namespace-name eldentifyingStringOrlndexl OPTIONAL-ENCODING USE-SET } WITH FastlnfosetEncodingSet } -- Кодируют тип IdentifyingStringOrlndex (см. С.13) eldentifyingStringOrlndexl #IdentifyingStringOrlndex ::= { ENCODE STRUCTURE { literal-character-string eNonEmptyOctetString2, string-index ePositiveInteger2 } WITH FastlnfosetEncodingSet }

-- Кодируют тип NonldentifyingStringOrlndex. Используют, когда -- кодирование начинается с первого Оита октета (см. С.14) eNonldentifyingStringOrlndexl #NonIdentifyingStringOrIndex ::= { ENCODE STRUCTURE { literal-character-string { ENCODE STRUCTURE ( add-to-table USE-SET, character-string eEncodedCharacterString3 } WITH FastlnfosetEncodingSet ),

55

ГОСТ ISO/IEC 24824-1—2013

string-index eNonNegativeInteger2 } WITH FastlnfosetEncodingSet }

-- Кодируют тип NonldentifyingStringOrlndex. Используют, когда -- кодирование начинается с третьего Оита октета (см. С.15) eNonIdentifyingStringOrIndex3 #NonIdentifyingStringOrlndex i: = {

ENCODE STRUCTURE { literal-character-string { ENCODE STRUCTURE ( add-to-table USE-SET, character-string eEncodedCharacterString5 } WITH FastlnfosetEncodingSet }, string-index ePositiveInteger4 }

WITH FastlnfosetEncodingSet }

-- Кодируют тип NameSurrogate (ом. С.16) eNameSurrogate7 #NameSurrogate : : = ( ENCODE STRUCTURE { prefix-string-index ePositiveInteger2 OPTIONAL-ENCODING USE-SET, namespace-name-string-index ePositiveInteger2 OPTIONAL-ENCODING USE-SET, local-name-string-index ePositiveInteger2 } WITH FastlnfosetEncodingSet }

-- Кодируют тип QualifiedNameOrlndex. Используют, когда

-- кодирование начинается со второго бита октета (см. С.17) eQualifiedNameOr!ndex2 #QualifiedNameOrIndex ::= (

ENCODE STRUCTURE { literal-qualified-name { ENCODE STRUCTURE ( STRUCTURED WITH eLi teralQual ifiedNaxnePrepaddingAdder2 } WITH FastlnfosetEncodingSet }, name-surrogate-index ePositiveInteger2 STRUCTURED WITH eQualifiedNameAlternatives3 }

WITH FastlnfosetEncodingSet }

-- Кодируют тип QualifiedNameOrlndex. Используют, когда

-- кодирование начинается с третьего бита октета (см. С.18) eQualifiedNameOr!ndex3 #QualifiedNameOrIndex : : = (

ENCODE STRUCTURE { literal-qualified-name { ENCODE STRUCTURE ( STRUCTURED WITH eLiteralQualifiedNamePrepaddingAdder3 } WITH FastlnfosetEncodingSet ), name-surrogate-index ePositiveInteger3 STRUCTURED WITH eQualifiedNameAlternatives3 }

WITH FastlnfosetEncodingSet }

-- Кодируют тип EncodedCharacterString. Используют, когда -- кодирование начинается с третьего бита октета (см. С.19) eEncodedCharacterString3 ^EncodedCharacterString :: = (

ENCODE STRUCTURE { encoding-format USE-SET, octets eNonEmptyOctetString5 ) WITH FastlnfosetEncodingSet }

-- Кодируют тип EncodedCharacterString. Используют, когда -- кодирование начинается с пятого бита октета (см. С.20) eEncodedCharacterString5 #EncodedCharacterString ::= (

56

ГОСТ ISO/IEC 24824-1-2013

ENCODE STRUCTURE {

encoding-format USE-SET,

octets eNonEmptyOctetString7 }

WITH FastlnfosetEncodingSet )

-- Кодируют повторение (SEQUENCE OF NonEmptyOctetString},

-- вставляя перед ним поле длины (см. С.2.5.3 - С.2.5.5}

eRepetitionWithLengthNonEmptyOctetStringl #REPETITION ::= { REPETITION-ENCODING {

REPLACE STRUCTURE WITH SPrecededByNonEmptySequenceOfLength

ENCODED BY eNonEmptySequenceOfWithLengthNonEmptyOctetStringl I)

-- Кодируют повторение (SEQUENCE Ob' EncodedCharacterString),

-- вставляя перед ним поле длины (см. С.2.5.3 - С.2.5.5)

eRepetitionWithLengthEncodedCharacterStringl #REPETITION ::= { REPETITION-ENCODING {

REPLACE STRUCTURE WITH #PrecededByNonEmptySequenceOfLength ENCODED BY eNonEmptySequenceOfWithLengthEncodedCharacterStringl }}

-- Кодируют повторение (SEQUENCE OF NameSurrogate), вставляя

-- перед ним поле длины (см. С.2.5.3 - С.2.5.5}

eRepetitionWithLengthNameSurrogatel #REPETITION ::* {

REPETITION-ENCODING {

REPLACE STRUCTURE WITH #PrecededByNonEmptySequenceOfLength

ENCODED BY eNonEmptySequenceOfWithLengthNameSurrogatel })

-- Кодируют повторение (SEQUENCE OF additional-datum}, вставляя

-- перед ним поле длины (см. С.2.5.3 - С.2.5.5}

eRepetitionWithLengthAdditionalDatuml ^REPETITION ::» { REPETITION-ENCODING {

REPLACE STRUCTURE WITH UPrecededByNonEmptySequenceOfLength

ENCODED BY eNonEmptySequenceOfWithLengthAdditionalDatuml }} -- Кодируют тип NonEmptyOctetString. Используют, когда -- кодирование начинается со второго бита октета (см. С.22) eNonEmptyOctetString2 ^NonEmptyOctetString ::= ( REPETITION-ENCODING {

REPLACE STRUCTURE WITH #PrecededByNonEmptyOctetStringLength

ENCODED BY eNonEmptyOctetStringWithLength2 })

-- Кодируют тип NonEmptyOctetString. Используют, когда

-- кодирование начинается с пятого бита октета (см. С.23)

eNonEmptyOctetString5 ^NonEmptyOctetString ::= ( REPETITION-ENCODING {

REPLACE STRUCTURE WITH #PrecededByNonEmptyOctetStringLength

ENCODED BY eNonEmptyOctetStringWithLength5 }}

-- Кодируют тип NonEmptyOctetString. Используют, когда

-- кодирование начинается с седьмого бита октета (см. С.24)

eNonEmptyOctetString7 #NonEmptyOctetString ::= {

REPETITION-ENCODING {

REPLACE STRUCTURE WITH #PrecededByNonEmptyOctetStringLength

ENCODED BY eNonEmptyOctetStringWithLength7 }}

-- Кодируют поле длины, вставленное перед кодированием

-- SEQUENCE OF (см. С.21)

eNonEmptySequenceOfLengthl #NonEmptySequenceOfLength ::= { USE UNonEmptySequenceOfLengthAlternatives1 MAPPING ORDERED VALUES

WITH { ENCODE STRUCTURE { STRUCTURED WITH

57

ГОСТ ISO/IEC 24824-1—2013

eNonEmptySequenceOfLengthDiscriminantAdderl ) WITH FastlnfosetEncodingSet }}

-- Кодируют поле длины, вставленное перед кодированием

-- NonEmptyOccetString. Используют, когда кодирование начинается ~- со второго бита октета (cu. С.22)

eNonEmptyOctetStringLength2 SNonEmptyOctetStringLength : : = (

USE #NonEmptyOctetStringLengthAlternatives2 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE { STRUCTURED WITH eNonEmptyOctetStringLengthDiscriminantAdder2 } WITH FastlnfosetEncodingSet }}

-- Кодируют поле длины, вставленное перед кодированием

-- NonEmpEyOctetString. Используют, когда кодирование начинается -- с пятого бита октета {см. С.23) eNonEmptyOctetStringLength5 #NonEmptyOctetStringLength ::= {

USE ffNonEmptyOctetStringLengthAlternatives5 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE { STRUCTURED WITH eNonEmptyOctetStringLengthDiscriminantAdder5 } WITH FastlnfosetEncodingSet }}

-- Кодируют поле длины, вставленное перед кодированием

-- NonEnptyOctetString. Используют, когда кодирование начинается -~ с седьмого бита октета (см. С.24} eNonEmptyOctetStringLength7 UNonEmptyOctetStringLength ::= (

USE MNonEmptyOctetStringLengthAlternatives7 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE { STRUCTURED WITH eNonEmptyOctetStringLengthDiscriminantAdder7 } WITH FastlnfosetEncodingSet }}

-- Кодируют положительное целое значение. Используют, когда -- кодирование начинается со второго бита октета (см. С.25) ePositiveInteger2 #PositiveOrNonNegativeInteger ::= {

USE 4PositiveIntegerAlternatives2 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE {

STRUCTURED WITH ePositive!ntegerDiscriminantAdder2 } WITH FastlnfosetEncodingSet }}

-- Кодируют положительное целое значение. Используют, когда -- кодирование начинается с третьего бита октета (см. С.27) ePositiveInteger3 #PositiveOrNonNegativeInteger ::= {

USE #PositiveIntegerAlterпаtives3 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE {

STRUCTURED WITH ePositivelntegerDiscriminantAdder3 } WITH FastlnfosetEncodingSet }} — Кодируют положительное целое значение. Используют, когда -- кодирование начинается с четвертого бита октета (см. С.28) ePositiveInteger4 #PositiveOrNonNegativeInteger ::= {

58

ГОСТ ISO/IEC 24824-1-2013

USE #PositiveIntegerAlternatives4 MAPPING ORDERED VALUES

WITH { ENCODE STRUCTURE { STRUCTURED WITH ePositiveIntegerDiscriminantAdder4 } WITH FastlnfosetEncodingSet }}

-- Кодируют неотрицательное целое значение (см. С.26} eNonNegativeInteger2 #PositiveOrNonNegativeInteger ::= {

USE #NonNegativeIntegerAlternatives2 MAPPING ORDERED VALUES WITH { ENCODE STRUCTURE {

STRUCTURED WITH eNonNegativeIntegerDiscriminantAdder2 } WITH FastlnfosetEncodingSet }}

-- Специфицируют, как определить наличие компонента

-- namespace-attributes типа Element (см. С.3.4.2) eNamespaceAttributesOptionality3 #OPTIONAL : : = ( PRESENCE DETERMINED BY handle HANDLE «nsa» }

-- Специфицируют, как определить альтернативу типа

-- QualifiedNameOrlndex (см. С. 17.3 и С. 18.3) eQualifiedNameAlternatives3 SALTERNATIVES ::» { ALTERNATIVE DETERMINED BY handle

HANDLE «qn»

EXHIBITS HANDLE «nsa» AT(0|l|2|3|4|5}

AS range:{low 0, high 50}} -- Меньше '110011'B

-- Специфицируют, как определить окончание повторения, используя

-- 4-битный ограничитель 'illl' (см. С.2.12, С.3.6.2, С.3.8 и С.9.7) eRepetitionWithTerminator4bitl «REPETITION ::= {

REPETITION-ENCODING { REPETITION-SPACE SIZE variable-with-determinant DETERMINED BY pattern PATTERN bits:'1111'В }}

-- Специфицируют, как определить окончание повторения, используя -- S-битный ограничитель '11110000' (см. С.2.6.2 и С.2.7.2) eRepetitionWithTerminatorSbitl «REPETITION ::= {

REPETITION-ENCODING { REPETITION-SPACE SIZE variable-with-determinant DETERMINED BY pattern PATTERN bits:'11110000'В }}

-- Специфицируют, как определить окончание повторения, используя -- 18~битный ограничитель '1111000800' (см. С.3.4.3) eRepetitionWithTerminatorlObitl ^REPETITION ::= {

REPETITION-ENCODING { REPETITION-SPACE SIZE variable-with-determinant DETERMINED BY pattern PATTERN bits:'1111000000'В EXHIBITS HANDLE «nsa» AT{0|l|2|3|4|5) AS bits:’110011’B )}

-- Кодируют элементы SEQUENCE Of, следующие за добавленным

-- полем длины (см. С.2.5.3 - С.2.5.5)

eRepetitionlterns1{<REFERENCE:len>} «REPETITION ::= { REPETITION-ENCODING {

REPETITION-SPACE SIZE variable-with-determinant MULTIPLE OF bit DETERMINED BY field-to-be-set USING len )}

-- Кодируют октеты NonEmptyOctetString, следующие за добавленным -- полем длины (см. С.22, С.23 и С.24) eOctetStringOctetsl{<REFERENCE:len>) «OCTETS ::= {

59

ГОСТ ISO/IEC 24824-1—2013

REPETITION-ENCODING {

REPETITION-SPACE SIZE variable-with-determinant

MULTIPLE OF bit

DETERMINED BY field-to-be-set USING len }} empty-padding ftPAD ::= ( ENCODING-SPACE SIZE 0 } FastlnfosetEncodingSet ftENCODINGS::= { eDocument2 | empty-padding } COMPLETED BY PER-BASIC-UNALIGNED

END FastlnfosetELM {joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset (0) modules(0) fast-infoset-elm(2)} LINK-DEFINITIONS ::= BEGIN

IMPORTS FastlnfosetEncodingSet, Document FROM FastlnfosetEDM; ENCODE ftDocument WITH FastlnfosetEncodingSet END

60

ГОСТ ISO/IEC 24824-1-2013

Приложение В (обязательное)

MIME-мсдиатип для документов быстрого инфо-набора

В настоящем приложении определен медиатип «application/fastinfoset». который описывает документы быстрого инфо-набора.

Данный MIME-медиатип определен ниже с помощью IETF MIME-шаблона регистрации. Зарегистрирован он в соответствии с процедурами IETF.

Название MIME-медиатипа:

application

Название MIME-подтипа:

fastinfoset

Обязательные параметры: Нет.

Необязательные параметры:

Нет.

Аспекты кодирования:

Инфо-наборы XML, закодированные как документы быстрого инфо-набора, приводят к созданию двоичных данных. Данный MIME-тип может потребовать последующее кодирование при передаче, не поддерживающей двоичные данные.

Аспекты безопасности:

Так как инфо-наборы XML, закодированные как документы быстрого инфо-набора, могут переносить определенные приложением данные, семантика которых не зависит от семантики MIME-оболочки (или контекста, в котором используется MIME-оболочка>, не следует ожидать, что семантику документа быстрого инфо-набора можно понять на основе семантики только MIME-оболочки. Следовательно, при использовании медиатипа «application/fastinfoset» настоятельно рекомендуется, чтобы вопросы безопасности контекста, в котором используют документ быстрого инфо-набора, были полностью понятны.

Аспекты совместимости:

Известных проблем совместимости не существует.

Опубликованная спецификация:

Рек. МСЭ-Т Х.891 I ISO/IEC 2482-1-1

Приложения, использующие данный медиатип:

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

Дополнительная информация:

Магическое(ие) число (а):

Документ быстрого инфо-набора может начинаться с опциональной декларации XML, которая должна быть одной из следующих строк, закодированных в UTF-8:

<?xml encoding-' finf' ?>

<?xml encoding-'finf' standalone-'yes'?>

<?xml encoding-'finf' standalone-'no'?>

<?xml version-'1.0' encoding-'finf' ?>

<?xml version-'1.0' encoding-'finf' standalone-' yes' ?>

<?xml version-'1.0' encoding-'finf' standalone-'no'?>

<?xml version-'1.1' encoding-' finf' ?>

<?xml version-'1.1' encoding-'finf' standalone-' yes' ?>

<?xml version-'1.1' encoding-'finf' standalone-' no'?>

Первые пять октетов декларации XML, закодированной в UTF-8, являются шестнадцатеричными цифрами ЗС 3F 7В 6D 6С. Четыре октета, идентифицирующие документ быстрого инфо-набора, соответствующие закодированной в UTF-В подстроке «finf», являются шестнадцатеричными цифрами 66 69 6Е 66.

Документ быстрого инфо-набора должен начинаться с шестнадцатеричной последовательности октетов ЕО 00 00 01, если опциональная декларация XML отсутствует.

61

ГОСТ ISO/IEC 24824-1—2013

Расширение(я) файла(оз):

* .finf

Контактное лицо и адрес электронной почти для получения дополнительной информации:

ITU-T ASN.1 докладчик (E3bmail@icu.int)

ISO/IEC JTCL/SC6 ASH.1 докладчик <ittf@iso.org>

Предполагаемое использование:

ОБЩЕЕ

Автор/Ответетаенный за изменения:

Совместные процедуры голосования 1TU-T и ISO/IEC з соответствии с Рек. МСЭ-Т А.23 Сотрудничество с Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (1ЕС) по вопросам информационных технологий, приложение А и Директивы ISO/IEC JTC1, приложение К.

62

ГОСТ ISO/IEC 24824-1-2013

Приложение С (справочное)

Описание кодирования документа быстрого инфо-набора

С.1 Документ быстрого инфо-набора

С.1.1 В настоящем приложении неформально (но точно и полно) описаны кодирования, определенные в разделе 12 и приложении А. Для удобства реализации все определения типов ASN.1, приведенные в нормативном тексте, скопированы в данном приложении.

С.1.2 Кодирования описаны в терминах действий, осуществляемых кодировщиком, в результате которых биты добавляются к потоку битов. Действия, которые должны выполняться декодером, не описаны в явном виде в настоящем приложении, но могут быть выведены на основе описанных в настоящем приложении действий кодировщика.

С.1.3 Документ быстрого инфо-набора может начинаться либо с декларации XML (см. 12.3). за которой следуют:

а) шестнадцать битов ’1110000000000000' (идентификация).

Ь) шестнадцать битов 000000000000000Г (номер версии), с) бит 'О' (забивка) либо с этих же тридцати трех битов без предшествующей им декларации XML. Непосредственно после тридцати трех битов следует кодирование абстрактного значения типа Document, как описано в С.2. Это кодирование заканчивается на восьмом или четвертом бите октета в зависимости от содержимого документа быстрого инфо-набора. В последнем случае к потоку битов добавляют четыре бита 0000' (забивка).

С.2 Кодирование типа Document

С.2.1 Тип Document определен в 7.2 следующим образом:

Document ::= SEQUENCE ( additional-data SEQUENCE (SIZE(1..one-meg)) OF additional-datum SEQUENCE { id URI, data NonEmptyOctetString ) OPTIONAL, initial-vocabulary SEQUENCE { external-vocabulary URI OPTIONAL, restricted-alphabets SEQUENCE (SIZE(1..256)) OF NonEmptyOctetString OPTIONAL, encoding-algorithms SEQUENCE (SIZE(1..256)) OF NonEmptyOctetString OPTIONAL, prefixes SEQUENCE (SIZE (1.. one-meg)) OF NonEmptyOctetString OPTIONAL, namespace-names SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, local-names SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, other-ncnames SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, other-uris SEQUENCE (SIZE(1..one-meg)) OF NonEmptyOctetString OPTIONAL, attribute-values SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, content-character-chunks SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL, other-strings SEQUENCE (SIZE(1..one-meg)) OF EncodedCharacterString OPTIONAL,

63

ГОСТ ISO/IEC 24824-1—2013

element-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL, attribute-name-surrogates SEQUENCE (SIZE(1..one-meg)) OF NameSurrogate OPTIONAL } CONSTRAINED BY {

-- Если присутствует компонент initial-

-- vocabulary, то должен присутствовать как

-- минимум один из его компонентов — )) OPTIONAL, notations SEQUENCE (SIZE(1..MAX)) OF

Notation OPTIONAL, unparsed-entities SEQUENCE (SIZE (1. .MAX)) OF UnparsedEntity OPTIONAL, character-encoding-scheme NonEmptyOctetString OPTIONAL, standalone BOOLEAN OPTIONAL, version NonldentifyingStringOrlndex OPTIONAL -- Категория OTHER STRING --, children SEQUENCE (SIZE(0..MAX)) OF CHOICE ( element Element, processing-instruction Processinginstruction, comment Comment, document-type-declaration DocumentTypeDeclaration )}

С.2.2 Значение типа Document кодируют, выполняя следующие действия (в указанном порядке).

Примечание — Кодирование данного типа всегда начинается со второго бита октета и заканчивается на четвертом или восьмом бите другого октета (который является последним битом указателя конца П1Г. описанного в С.2.12).

С.2.3 Для каждого из семи опциональных компонентов additional-data, initialvocabulary, notations, unparsed-entities, character-encoding-scheme, standalone и version (в указанном порядке) при наличии компонента к потоку битов добавляют бит Г (наличие), в противном случае добавляют бит 'О' (отсутствие).

С.2.4 Если опциональный компонент additional-data присутствует, то количество компонентов additional-datum кодируют, как описано в С.21. и каждый из компонентов additional-datum кодируют, как описано в двух следующих подпунктах.

С.2.4.1 Бит О' (забивка) добавляют к потоку битов, и компонент id кодируют, как описано в С.22.

С.2.4.2 Бит 'О' (забивка) добавляют к потоку битов, и компонент data кодируют, как описано в С.22.

С.2.5 Если опциональный компонент initial-vocabulary присутствует, то к потоку битов добавляют три бита ООО' (забивка) и этот компонент кодируют, как описано в пяти следующих пунктах.

С.2.5.1 Для каждого из тринадцати опциональных компонентов компонента initial-vocabulary (в текстуальном порядке) при его наличии к потоку битов добавляют бит 'Г (наличие), в противном случае добавляют бит '0' (отсутствие).

С.2.5.2 При наличии опционального компонента external-vocabulary компонента initialvocabulary к потоку битов добавляют бит О' (забивка) и компонент кодируют, как описано в С.22.

С.2.5.3 Для каждого ИЗ компонентов restricted-alphabets, encoding-algorithms, prefixes, namespace-names, local-names, other-ncnames и other-uris (в указанном порядке) при его наличии кодируют число элементов NonEmptyOctetString в компоненте, как описано в С.21. и затем каждый элемент кодируют (по порядку) следующим образом: к потоку битов добавляют бит 'О' (забивка) и NonEmptyOctetString кодируют, как описано в С.22.

С.2.5.4 Для каждого ИЗ компонентов attribute-values, content-character-chunks и oth-ег-вЬг1пд8(вуказанномпорядке)приегоналичиикодируютчислоэлементоа EncodedCharacterString в компоненте, как описано в С.21, и затем каждый элемент кодируют (по порядку) следующим образом: к потоку битов добавляют два бита '00' (забивка) и EncodedCharacterString кодируют, как описано в С.19.

С.2.5.5 Для каждого ИЗ компонентов element-name-surrogates и attribute-пате-surrogates (в указанном порядке) при его наличии кодируют ЧИСЛО элементов NameSurrogate в

64

ГОСТ ISO/IEC 24824-1-2013

компоненте, как описано в С.21, и затем каждый элемент кодируют (по порядку) следующим образом: к потоку битов добавляют шесть битов 000000' (забивка) и Namesurrogate кодируют, как описано в С.16. С.2.6 При наличии опционального компонента notations его кодируют, как описано в двух следующих пунктах.

С.2.6.1 Каждый элемент notations (по порядку) кодируют следующим образом: к потоку битов добавляют шесть битов '110000' (идентификация) и Notation кодируют, как описано в С.11.

С.2.6.2 К потоку битов добавляют четыре бита '111Г (указатель конца) и четыре бита 0000' (забивка).

Примечание — Данные биты не добавляют, если компонент notations отсутствует.

С.2.7 При наличии опционального компонента unparsed-entities его кодируют так. как описано в двух следующих подпунктах.

С.2.7.1 Каждый элемент unparsed-entities (по порядку) кодируют следующим образом: к потоку битов добавляют семь битов '1101000' (идентификация) и UnparsedEntity кодируют, как описано в С. 10.

С.2.7.2 К потоку битов добавляют четыре бита '111Г (указатель конца) и четыре бита 0000’ (забивка).

Примечание — Данные биты не добавляют, если компонент unparsed-enti ties отсутствует.

С.2.8 При наличии опционального компонента character-encoding-scheme к потоку битов добавляют бит '0' (забивка) и NonEmptyOctetString кодируют, как описано в С.22.

С.2.9 При наличии опционального компонента standalone его кодируют следующим образом: к потоку битов добавляют семь битов 0000000' (забивка). Если значением standalone является TRUE, то к потоку битов добавляют бит '1'. в противном случае — бит О'.

С.2.10 При наличии опционального компонента version его значение кодируют, как описано в С.14.

С.2.11 Если компонент children имеет один или несколько элементов, то каждый элемент кодируют (по порядку), как описано в следующих пяти подпунктах.

С.2.11.1 Кодирование каждого элемента обязательно начинают с первого бита октета. Однако последний добавленный бит может быть восьмым или четвертым битом октета. Если это был четвертый бит октета, то к потоку битов добавляют биты 0000' (забивка), чтобы кодирование элемента начиналось с первого бита следующего октета.

С.2.11.2 При наличии альтернативы element к потоку битов добавляют бит 'О' (идентификация) и element кодируют, как описано в С.З.

С.2.11.3 При наличии альтернативы processing-instruction к потоку битов добавляют восемь битов '11100001' (идентификация) и processing-instruction кодируют, как описано в С.5.

С.2.11.4 При наличии альтернативы comment к потоку битов добавляют восемь битов '11100010' (идентификация) и comment кодируют, как описано в С.8.

С.2.11.5 При наличии альтернативы document-type-declaration к потоку битов добавляют шесть битов '11000Г (идентификация) и document-type-declaration кодируют так, какописано в С.9. С.2.12 Добавляют четыре бита '1111' (указатель конца).

Примечание — Данные биты не добавляют, если компонент children не имеет элементов.

С.З Кодирование типа Element

С.3.1 Тип Element определен в 7.3 следующим образом:

Element ::= SEQUENCE { namespace-attributes SEQUENCE (SIZE(1..MAX)) OF NamespaceAttribute OPTIONAL, qualified-name QualifiedNameOrlndex

-- Категория ELEMENT NAME --, attributes SEQUENCE (SIZE(1..MAX)) OF Attribute OPTIONAL, children SEQUENCE (SIZE(0..MAX)) OF CHOICE {

element Element,

65

ГОСТ ISO/IEC 24824-1—2013

processing-instruction Processinginstruction, unexpanded-entity-reference UnexpandedEntityReference, character-chunk Characterchunk, comment Comment }}

С.3.2 Значение типа Element кодируют, выполняя следующие действия (в указанном порядке).

Примечание — Кодирование этого типа всегда начинают со второго бита октета и заканчивают на четвертом или восьмом бите другого октета (который является последним битом указателя конца ’ШТ. описанного в С.3.8).

С.3.3 При наличии опционального компонента attributes к потоку битов добавляют бит 'Г (наличие). в противном случае добавляют бит '0' (отсутствие).

С.3.4 При наличии опционального компонента namespace-attributes его кодируют, как описано в трех следующих подпунктах.

С.3.4.1 К потоку битов добавляют четыре бита '1110' (наличие) и два бита '00' (забивка).

С.3.4.2 Каждый элемент namespace-attributes (по порядку) кодируют следующим образом: к потоку битов добавляют шесть битов '110011' (идентификация) и NamespaceAttribute кодируют, как описано в С.12.

С.3.4.3 Добавляют четыре бита 1111' (указатель конца) и шесть битов '000000' (забивка).

Примечание — Данные биты не добавляют, если компонент namespace-attributes отсутствует.

С.3.5 Значение компонента qualified-name кодируют, как описано в С.18.

С.3.6 При наличии опционального компонента attributes его кодируют, как описано в двух следующих подпунктах.

С.3.6.1 Каждый элемент attributes (по порядку) кодируют следующим образом: к потоку битов добавляют бит О' (идентификация) и Attribute кодируют, как описано в С.4.

С.3.6.2 Добавляют четыре бита 1111' (указатель конца).

Примечание — Данные биты не добавляют, если компонент attributes отсутствует.

С.3.7 Если компонент children имеет один или несколько элементов, то каждый элемент кодируют (по порядку), как описано в шести следующих подпунктах.

С.3.7.1 Кодирование каждого элемента обязательно начинают с первого бита октета. Однако последний добавленный бит может быть восьмым или четвертым битом октета. Если это был четвертый бит октета, то к потоку битов добавляют биты 0000' (забивка), чтобы кодирование элемента начиналось с первого бита следующего октета.

С.3.7.2 При наличии альтернативы element к потоку битов добавляют бит 'О' (идентификация) и element кодируют, как описано в С.З.

С.3.7.3 При наличии альтернативы processing-instruction к потоку битов добавляют восемь битов '11100001' (идентификация) и processing-instruction кодируют, как описано в С.5.

С.3.7.4 При наличии альтернативы unexpanded-entity-reference к потоку битов добавляют шесть битов 11001 О' (идентификация) и unexpanded-entity-reference кодируют, как описано в С.6.

С.3.7.5 При наличии альтернативы character-chunk к потоку битов добавляют два бита '10' (идентификация) и character-chunk кодируют, как описано в С.7.

С.3.7.6 При наличии альтернативы comment к потоку битов добавляют восемь битов '11100010' (идентификация) и comment кодируют, как описано в С.8.

С.3.8 Добавляют четыре бита '1111' (указатель конца).

Примечание — Данные биты не добавляют, если компонент children не имеет элементов.

С.4 Кодирование типа Attribute

С.4.1 Тип Attribute определен в 7.4 следующим образом:

Attribute ::» SEQUENCE (

qualified-name QualifiedNameOrlndex

-- Категория ATTRIBUTE NAME --, normalized-value NonldentifyingStringOrlndex

-- Категория ATTRIBUTE VALUE -- )

66

ГОСТ ISO/IEC 24824-1-2013

С.4.2 Значение типа Attribute кодируют, выполняя следующие действия (в указанном порядке).

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

С.4.3 Значение qualified-пате кодируют так, как описано в С.17.

С.4.4 Значение normalized-value кодируют так, как описано в С.14.

С.5 Кодирование типа Processinginstruction

С.5.1 Тип Processinginstruction определен в 7.5 следующим образом.

Processinginstruction ::= SEQUENCE (

target IdentifyingStringOrindex

-- Категория OTHER NONANE -~,

content NonldentifyingStringOrlndex

-- Категория OTHER STRING -- }

С.5.2 Значение типа Processinginstruction кодируют, выполняя следующие действия (в указанном порядке).

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

С.5.3 Значение target кодируют, как описано в С.13.

С.5.4 Значение content кодируют, как описано в С.14.

С.6 Кодирование типа UnexpandedEntityReference

С.6.1 Тип UnexpandedEntityReference определен в 7.6. следующим образом:

UnexpandedEntityReference ::= SEQUENCE {

name IdentifyingStringOrindex

-- Категория OTHER NCR АМЕ --,

system-identifier IdentifyingStringOrindex OPTIONAL

-- Категория OTHER URI --,

public-identifier IdentifyingStringOrindex OPTIONAL

-- Категория OTHER ORI -- }

С.6.2 Значение типа UnexpandedEntityReference кодируют, выполняя следующие действия (в указанном порядке).

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

С.6.3 При наличии опциональных компонентов system-identifier и public-identifier (в указанном порядке) к потоку битов добавляют бит 'Г (наличие) для каждого из них. в противном случае добавляют бит О' (отсутствие).

С.6.4 Значение name кодируют, как описано в С. 13.

С.6.5 При наличии опционального компонента system-identifier его кодируют, как описано в С.13.

С.6.6 При наличии опционального компонента public-identifier его кодируют, как описано в С.13.

С.7 Кодирование типа Characterchunk

С.7.1 Тип Characterchunk определен в 7.7 следующим образом:

Characterchunk ::= SEQUENCE {

character-codes NonldentifyingStringOrlndex

-- Категория CONTENT CHARACTER CHUNK -- )

С.7.2 Значение типа Characterchunk кодируют, выполняя следующее действие.

67

ГОСТ ISO/IEC 24824-1—2013

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

С.7.3 Значение character-codes кодируют, как описано в С.15.

С.8 Кодирование типа Comment

С.8.1 Тип Comment определен в 7.8 следующим образом:

Comment ::= SEQUENCE {

content NonldentifyingStringOrlndex

-- Категория OTHER STRING --)

С.8.2 Значение типа Comment кодируют, выполняя следующее действие.

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

С.8.3 Значение content кодируют, как описано в С.14.

С.9 Кодирование типа DocumentTypeDeclaration

С.9.1 Тип DocumentTypeDeclaration определен в 7.9 следующим образом:

DocumentTypeDeclaration ::■ SEQUENCE {

system-identifier IdentifyingStringOrlndex OPTIONAL

- Категория OTHER URI --,

public-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория OTHER URI --,

children SEQUENCE (SIZE(0..MAX)) OF

Processinginstruction }

С.9.2 Значение типа DocumentTypeDeclaration кодируют, выполняя следующие действия (в указанном порядке).

Примечание — Кодирование данного типа всегда начинают с седьмого бита октета и заканчивают на четвертом бите другого октета (являющемся последним битом указателя конца И1Г, описанного в С.9.7).

С.9.3 При наличии опциональных компонентов system-identifier и public-identifier (в указанном порядке) к потоку битов добавляют бит 'Г (наличие) для каждого из них. в противном случае добавляют бит 'О’ (отсутствие).

С.9.4 При наличии опционального компонента system-identifier его кодируют, как описано в С.13.

С.9.5 При наличии опционального компонента public-identifier его кодируют, как описано в С. 13.

С.9.6 Если компонент children имеет один или несколько элементов, то каждый элемент кодируют следующим образом: к потоку битов добавляют восемь битов '11100001' (идентификация), и Processinginstruction кодируют, как описано в С.5.

С.9.7 Добавляют четыре бита '1111' (указатель конца).

Примечание — Данные биты не добавляют, если компонент children не имеет элементов.

С.10 Кодирование типа UnparsedEntity

С.10.1 Тип UnparsedEntity определен в 7.10 следующим образом:

UnparsedEntity ::= SEQUENCE {

name IdentifyingStringOrlndex

—• Категория OTHER NCNAME --,

system-identifier IdentifyingStringOrlndex

-- Категория OTHER URI -~, public-identifier IdentifyingStringOrlndex OPTIONAL

68

ГОСТ ISO/IEC 24824-1-2013

-- Категория ОТМЕН UH1 --, notation-name IdentifyingStringOrlndex

-- Категория ОТМЕН NCNAME -- )

С.10.2 Значение типа UnparsedEntity кодируют, выполняя следующие действия (в указанном порядке).

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

С.10.3 При наличии опционального компонента public-identifier к потоку битов добавляют бит ’Г (наличие), в противном случае добавляют бит ’О’ (отсутствие).

С.10.4 Значение name кодируют, как описано в С.13.

С.10.5 Значение system-identifier кодируют, как описано в С.13.

С. 10.6 При наличии опционального компонента public-identifier его кодируют, какописано в С. 13.

С. 10.7 Значение пате кодируют, как описано в С. 13.

С.11 Кодирование типа Notation

С.11.1 Тип Notation определен в 7.11 следующим образом:

Notation ::= SEQUENCE {

name IdentifyingStringOrlndex

— Категория ОТМЕН NCNAME --,

system-identifier IdentifyingStringOrlndex OPTIONAL

-- Категория ОТМЕН URI —, public-identifier IdentifyingStringOrlndex OPTIONAL — Категория ОТМЕН UHI — )

С.11.2 Значение типа Notation кодируют, выполняя следующие действия (в указанном порядке).

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

С.11.3 При наличии опциональных компонентов system-identifier и public-identifier (в указанного порядке) к потоку битов добавляют бит Г (наличие) для каждого из них. в противном случае добавляют бит 'О' (отсутствие).

С.11.4 Значение пате кодируют, как описано в С.13.

С.11.5 При наличии опционального компонента system- identifier его кодируют, как описано в С.13.

С. 11.6 При наличии опционального компонента public-identifier его кодируют, какописано в С. 13.

С.12 Кодирование типа Name spaceAttribute

С.12.1 Тип NamespaceAttribute определен в 7.12 следующим образом:

NamespaceAttribute ::= SEQUENCE (

prefix IdentifyingStringOrlndex OPTIONAL

-- Категория PREFIX --, namespace-name IdentifyingStringOrlndex OPTIONAL

-- Категория NAMESPACE NAME -- }

С.12.2 Значение типа NamespaceAttribute кодируют, выполняя следующие действия (в указанном порядке).

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

С. 12.3 При наличии опционального компонента prefix к потоку битов добавляют бит 'Г (наличие), в противном случае добавляют бит 'О’ (отсутствие).

69

ГОСТ ISO/IEC 24824-1—2013

С.12.4 При наличии опционального компонента namespace-пате к потоку битов добавляют бит ’Г (наличие), в противном случае добавляют бит О' (отсутствие).

С.12.5 При наличии опционального компонента prefix его кодируют, как описано в С.13.

С.12.6 При наличии опционального компонента name space-name его кодируют, как описано в С.13.

С.13 Кодирование типа IdentifyingStringOrlndex

С.13.1 Тип IdentifyingStringOrlndex определен в 7.13 следующим образом:

IdentifyingStringOrlndex ::= CHOICE { literal-character-string NonEmptyOctetString, string-index INTEGER (1..one-meg) }

С.13.2 Значение типа IdentifyingStringOrlndex кодируют, выполняя следующие действия (в указанном порядке).

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

С.13.3 При наличии альтернативы literal-character-string к потоку битов добавляют бит 'О' (дискриминант) и literal-character-string кодируют, какописано в С.22.

С.13.4 При наличии альтернативы string-index к потоку битов добавляют бит 'Г (дискриминант) и string-index кодируют, как описано в С.25.

С.14 Кодирование типа NonldentifyingStringOrlndex, начиная с первого бита октета

С.14.1 Тип NonldentifyingStringOrlndex определен в 7.14 следующим образом:

NonldentifyingStringOrlndex ::= CHOICE { literal-character-string SEQUENCE { add-to-table BOOLEAN, character-string EncodedCharacterString }, string-index INTEGER (0..one-meg) }

C.14.2Bдaннoмnyнктe(C.14)oлиcaнoкoдиpoвaниeзиaчeниятипaNonIdentif yingStringOrlndex. когда кодирование должно начаться с первого бита октета (см. также С.15). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.14.3 При наличии альтернативы literal-character-string к потоку битов добавляют бит О' (дискриминант) и literal-character-string кодируют, как описано в двух следующих подпунктах.

С.14.3.1 Если значение компонента add-to-table равно TRUE, то к потоку битов добавляют бит 'Г, в противном случает добавляют бит 'О’.

С.14.3.2 Значение компонента character-string кодируют, как описано в С.19.

С.14.4 При наличии альтернативы string-index к потоку битов добавляют бит 'Г (дискриминант) и string-index кодируют, как описано в С.26.

С.15 Кодирование типа NonldentifyingStringOrlndex, начиная с третьего бита октета

С.15.1 Тип NonldentifyingStringOrlndex определен в 7.14 следующим образом:

NonldentifyingStringOrlndex ::= CHOICE { literal-character-string SEQUENCE { add-to-table BOOLEAN, character-string EncodedCharacterString }, string-index INTEGER (0..one-meg) }

70

ГОСТ ISO/IEC 24824-1-2013

С.15.2 В данном пункте (С.15) описано кодирование значения типа NonldentifyingStringOrlndex, когда кодирование должно начаться с третьего бита октета (см. также С. 14). Данное значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.15.3 При наличии альтернативы literal-character-string к потоку битов добавляют бит 'О' (дискриминант) и literal-character-string кодируют, как описано в двух следующих подпунктах.

С.15.3.1 Если значение компонента add-to-table равно TRUE, то к потоку битов добавляют бит '1 в противном случает добавляют бит О'.

С.15.3.2 Значение компонента character-string кодируют, как описано в С.20.

С.15.4 При наличии альтернативы string-index к потоку битов добавляют бит '1' (дискриминант) и string-index кодируют, как описано в С.28.

С.16 Кодирование типа NameSurrogate

С.16.1 Тип NameSurrogate определен в 7.15 следующим образом.

NameSurrogate : :■ SEQUENCE {

prefix-string-index INTEGER(1. .one-meg) OPTIONAL, namespace-name-string-index INTEGER(1..one-meg) OPTIONAL, local-name-string-index INTEGER(1..one-meg) ) (CONSTRAINED BY {-- prefix-string-index должен

-- присутствовать, только если — присутствует namespace-name-— string-index --})

С.16.2 Значение типа NameSurrogate кодируют, выполняя следующие действия (в указанном порядке).

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

С.16.3 При наличии опционального компонента prefix-string-index к потоку битов добавляют бит 'Г (наличие), в противном случае добавляют бит 'О’ (отсутствие).

С.16.4 При наличии опционального компонента namespace-name-string-index к потоку битов добавляют бит 'Г (наличие), в противном случае добавляют бит О' (отсутствие).

С.16.5 При наличии опционального компонента prefix-string-index к потоку битов добавляют бит 'О' (забивка) и компонент кодируют, как описано в С.25.

С.16.6 При наличии опционального компонента namespace-name-string-index к потоку битов добавляют бит 'О' (забивка) и компонент кодируют, как описано в С.25.

С.16.7 К потоку битов добавляют бит О’ (забивка) и компонент local-name-string-index кодируют. как описано в С.25.

С.17 Кодирование типа QualifiedNameOrlndex, начиная со второго бита октета

С.17.1 Тип QualifiedNameOrlndex определен 8 7.16 следующим образом.

QualifiedNameOrlndex ::= CHOICE (

literal-qualified-name SEQUENCE {

prefix IdentifyingStringOrindex OPTIONAL

-- Категория PREFIX --,

namespace-name IdentifyingStringOrindex OPTIONAL

-- Категория HAMES PACE. NAME —, local-name IdentifyingStringOrindex

— Категория LOCAd NAME -- },

name-surrogate-index INTEGER (1..one-meg) }

71

ГОСТ ISO/IEC 24824-1—2013

С.17.2 В данном пункте (С.17) описано кодирование значения типа QualifiedNameOrlndex. когда кодирование должно начаться со второго бита октета (см. также С.18). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.17.3 При наличии альтернативы literal-qualified-name к потоку битое добавляют четыре бита '111Г (идентификация) и бит ‘О’ (забивка) и literal-qualified-name кодируют, как описано в четырех следующих подпунктах.

С.17.3.1 При наличии опциональных компонентов prefix и namespace-name (в указанном порядке) к потоку битов добавляют бит 'Г (наличие) для каждого из них. в противном случае добавляют бит 'О' (отсутствие).

С.17.3.2 При наличии опционального компонента prefix его кодируют, как описано в С. 13.

С.17.3.3 При наличии опционального компонента namespace-пате его кодируют, как описано в С.13.

С.17.3.4 Компонент local-name кодируют, как описано в С.13.

С.17.4 При наличии альтернативы name-surrogate-index ее кодируют, как описано в С.25.

С.18 Кодирование типа QualifiedNameOrlndex, начиная с третьего бита октета

С.18.1 Тип QualifiedNameOrlndex опредепен в 7.16 следующим образом.

QualifiedNameOrlndex ::= CHOICE ( literal-qualified-name SEQUENCE { prefix IdentifyingStringOrlndex OPTIONAL -- Категория PREFIX --, namespace-name IdentifyingStringOrlndex OPTIONAL -- Категория NAMESPACE NAME --, local-name IdentifyingStringOrlndex

-- Категория LOCAL NAME -- }, name-surrogate-index INTEGER (1..one-meg) }

С.18.2 В данном пункте (С.18) описано кодирование значения типа QualifiedNameOrlndex. когда кодирование должно начаться с третьего бита октета (см. также С. 17). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С. 18.3 При наличии альтернативы literal-qualified-name к потоку битое добавляют четыре бита И1Г (идентификация) и literal-qualified-name кодируют, как описано в четырех следующих подпунктах.

С.18.3.1 При наличии опциональных компонентов prefix и name space-name (в указанном порядке) к потоку битов добавляют бит 'Г (наличие) для каждого из них. в противном случае добавляют бит О' (отсутствие).

С.18.3.2 При наличии опционального компонента prefix его кодируют, как описано в С.13.

С.18.3.3 При наличии опционального компонента namespace-пате его кодируют, как описано в С.13.

С.18.3.4 Компонент local-name кодируют, как описано в С.13.

С.18.4 При наличии альтернативы name-surrogate-index ое кодируют, как описано в С.27.

С.19 Кодирование типа EncodedCharacterString, начиная с третьего бита октета

С.19.1 Тип EncodedCharacterString определен в 7.17 следующим образом;

EncodedCharacterString :: = SEQUENCE {

encoding-format CHOICE {

72

ГОСТ ISO/IEC 24824-1-2013

utf-8 NULL, utf-16 NULL, restricted-alphabet INTEGER(1..256), encoding-algorithm INTEGER(1..256) }, octets NonEmptyOctetString }

С.19.2 В данном пункте (С.19) описано кодирование значения типа EncodedCharacterString, когда кодирование должно начаться с третьего бита октета (см. также С.20). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.19.3 Значение компонента encoding-format кодируют, как описано в четырех следующих подпунктах.

С.19.3.1 При наличии альтернативы utf-8 к потоку битов добавляют два бита 00" (дискриминант).

С.19.3.2 При наличии альтернативы utf-16 к потоку битов добавляют два бита 01' (дискриминант).

С. 19.3.3 При наличии альтернативы restricted-alphabet к потоку битов добавляют два бита '10' (дискриминант) и restricted-alphabet кодируют, как описано в С.29.

С.19.3.4 При наличии альтернативы encoding-algorithm к потоку битов добавляют два бита '1Г (дискриминант) и encoding-algorithm кодируют, как описано в С.29.

С.19.4 Компонент octets кодируют, как описано в С.23.

С.20 Кодирование типа EncodedCharacterString, начиная с пятого бита октета

С.20.1 Тип EncodedCharacterString определен в 7.17 следующим образом:

EncodedCharacterString ::= SEQUENCE { encoding-format CHOICE { utf-8 NULL, utf-16 NULL, restricted-alphabet INTEGER(1..256), encoding-algorithm INTEGER(1..256) }, octets NonEmptyOctetString }

С.20.2 В данном пункте (С.20) описано кодирование значения типа EncodedCharacterString, когда кодирование должно начаться с пятого бита октета (см. также С.19). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.20.3 Значение компонента encoding-format кодируют, как описано в четырех следующих подпунктах.

С.20.3.1 При наличии альтернативы utf-8 к потоку битов добавляют два бита 00' (дискриминант). С.20.3.2 При наличии альтернативы utf-16 к потоку битов добавляют два бита ОТ (дискриминант). С.20.3.3 При наличии альтернативы restricted-alphabet к потоку битов добавляют два бита '10' (дискриминант) и restricted-alphabet кодируют, как описано в С.29.

С.20.3.4 При наличии альтернативы encoding-algorithm к потоку битов добавляют два бита '1Г (дискриминант) и encoding-algorithm кодируют, как описано в С.29.

С.20.4 Компонент octets кодируют, как описано в С.24.

С.21 Кодирование длины типа sequence-of

С.21.1 В данном пункте описывается кодирование длины типа sequence-of. который закодирован с полем длины, предшествующим элементам типа sequence-of.

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

73

ГОСТ ISO/IEC 24824-1—2013

С.21.2 Если значение находится в диапазоне от 1 до 128. то к потоку битов добавляют бит 'О’, значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из семи битов и добавляют к потоку битов.

С.21.3 Если значение находится в диапазоне от 129 до 220, то к потоку битов добавляют бит 'Г и три бита 'ООО' (забивка), значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из двадцати битов и добавляют к потоку битов.

С.22 Кодирование типа NonEmptyOctetString, начиная со второго бита октета

С.22.1 Тип NonEmptyOctetString определен в 7.2 следующим образом.

NonEmptyOctetString ::= OCTET STRING (SIZE(1..four-gig))

С.22.2 В данном пункте (С.22) описано кодирование значения типа NonEmptyOctetString. когда кодирование должно начаться со второго бита октета (см. также С.23 и С.24). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.22.3 Длину строки октетов кодируют, как описано в трех следующих подпунктах.

С.22.3.1 Если длина находится в диапазоне от 1 до 64. то к потоку битов добавляют бит 'О’, длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из шести битов и добавляют к потоку битов.

С.22.3.2 Если длина находится в диапазоне от 65 до 320. то к потоку битов добавляют два бита '10' и пять битов '00000' (забивка), длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из восьми битов и добавляют к потоку битов.

С.22.3.3 Если длина находится в диапазоне от 321 до 232. то к потоку битов добавляют два бита '11' и пять битов 00000' (забивка), длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из тридцати двух битов и добавляют к потоку битов.

С.22.4 Биты, образующие октеты строки октетов, добавляют к потоку битов (по порядку).

С.23 Кодирование типа NonEmptyOctetString, начиная с пятого бита октета

С.23.1 Тип NonEmptyOctetString определен в 7.2 следующим образом:

NonEmptyOctetString ::■ OCTET STRING (SIZE(1..four-gig))

С.23.2 В данном пункте (С.23) описано кодирование значения типа NonEmptyOctetString. когда кодирование должно начаться с пятого бита октета (см. также С.22 и С.24). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.23.3 Длину строки октетов кодируют, как описано в трех следующих подпунктах.

С.23.3.1 Если длина находится в диапазоне от 1 до 8. то к потоку битов добавляют бит ’О', длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из трех битов и добавляют к потоку битов.

С.23.3.2 Если длина находится в диапазоне от 9 до 265, то к потоку битов добавляют два бита '10' и два бита '00' (забивка), длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из восьми битов и добавляют к потоку битов.

С.23.3.3 Если длина находится в диапазоне от 265 до 232, то к потоку битов добавляют два бита '1Т и два бита 00' (забивка), длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из тридцати двух битов и добавляют к потоку битов.

С.23.4 Биты, образующие октеты строки октетов, добавляют к потоку битов (по порядку).

С.24 Кодирование типа NonEmptyOctetString, начиная с седьмого бита октета

С.24.1 Тип NonEmptyOctetString определен в 7.2 следующим образом.

NonEmptyOctetString ::= OCTET STRING (SIZE(1..four-gig))

74

ГОСТ ISO/IEC 24824-1-2013

С.24.2 В данном пункте (С.24) описано кодирование значения типа NonEmptyOctetString. когда кодирование должно начаться с седьмого бита октета (см. также С.22 и С.23). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.24.3 Длину строки октетов кодируют, как описано в трех следующих подпунктах.

С.24.3.1 Если длина находится в диапазоне от 1 до 2. то к потоку битов добавляют бит ’О', длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из одного бита и добавляют к потоку битов.

С.24.3.2 Если длина находится в диапазоне от 3 до 258. то к потоку битов добавляют два бита ’10’, длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из восьми битов и добавляют к потоку битов.

С.24.3.3 Если длина находится в диапазоне от 258 до 232, то к потоку битов добавляют два бита ’1Т, длину минус нижняя граница диапазона кодируют как целое значение без знака в поле из тридцати двух битов и добавляют к потоку битов.

С.24.4 Биты, образующие октеты строки октетов, добавляют к потоку битов (по порядку).

С.25 Кодирование целых значений в диапазоне от 1 до 220, начиная со второго бита октета

С.25.1 В данном пункте (С.25) описано кодирование целых значений в диапазоне от 1 до 220. когда кодирование должно начаться со второго бита октета (см. также С.26. С.27 и С.28). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.25.2 Если значение находится в диапазоне от 1 до 64. то к потоку битов добавляют бит О', значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из шести битов и добавляют к потоку битов.

С.25.3 Если значение находится в диапазоне от 65 до 8256. то к потоку битов добавляют два бита ’1 О', значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из тринадцати битов и добавляют к потоку битов.

С.25.4 Если значение находится в диапазоне от 8257 до 220. то к потоку битов добавляют два бита '10' и бит 'О' (забивка), значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из двадцати битов и добавляют к потоку битов.

С.26 Кодирование целых значений в диапазоне от 0 до 220, начиная со второго бита октета

С.26.1 В данном пункте (С.26) описано кодирование целых значений в диапазоне от 0 до 220, когда кодирование должно начаться со второго бита октета (см. также С.25. С.27 и С.28). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.26.2 Если значение равно нулю, то к потоку битов добавляют семь битов '1111111'. В противном случае значение кодируют, как описано в С.25.

С.27 Кодирование целых значений в диапазоне от 1 до 220, начиная с третьего бита октета

С.27.1 В данном пункте (С.27) описано кодирование целых значений в диапазоне от 1 до 220. когда кодирование должно начаться с третьего бита октета (см. также С.25. С.26 и С.28). Значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.27.2 Если значение находится в диапазоне от 1 до 32. то к потоку битов добавляют бит О', значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из пяти битов и добавляют к потоку битов.

75

ГОСТ ISO/IEC 24824-1—2013

С.27.3 Если значение находится в диапазоне от 33 до 2080. то к потоку битов добавляют три бита ’100'. значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из одиннадцати битов и добавляют к потоку битов.

С.27.4 Если значение находится в диапазоне от 2081 до 526368. то к потоку битов добавляют три бита 'ЮГ. значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из девятнадцати битов и добавляют к потоку битов.

С.27.5 Если значение находится в диапазоне от 526369 до 220, то к потоку битов добавляют три бита НО' и семь битов 0000000’ (забивка), значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из двадцати битов и добавляют к потоку битов.

С.28 Кодирование целых значений в диапазоне от 1 до 220, начиная с четвертого бита октета

С.28.1 В данном пункте (С.28) описано кодирование целых значений в диапазоне от 1 до 2м, когда кодирование должно начаться с четвертого бита октета (см. также С.25. С.26 и С.27). Данное значение кодируют, выполняя следующие действия (в указанном порядке).

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

С.28.2 Если значение находится в диапазоне от 1 до 16. то к потоку битов добавляют бит О’, значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из четырех битов и добавляют к потоку битов.

С.28.3 Если значение находится в диапазоне от 17 до 1040. то к потоку битов добавляют три бита ’100'. значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из десяти битов и добавляют к потоку битов.

С.2 8.4 Если значение находится в диапазоне от 1041 до 263184. то к потоку битов добавляют три бита ’ЮГ. значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из восемнадцати битов и добавляют к потоку битов.

С.28.5 Если значение находится в диапазоне от 263185 до 220, то к потоку битов добавляют три бита ’100’ и шесть битов 000000’ (забивка), значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из двадцати битов и добавляют к потоку битов.

С.29 Кодирование целых значений в диапазоне от 1 до 256

С.29.1 В данном пункте (С.29) описано кодирование целых значений в диапазоне 1 до 256.

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

С.29.2 Значение минус нижняя граница диапазона кодируют как целое значение без знака в поле из восьми битов и добавляют к потоку битов.

76

ГОСТ ISO/IEC 24824-1-2013

Приложение D (справочное)

Примеры кодирования инфо-наборов XML как документов быстрого инфо-набора

D.1 Общее описание примеров

D.1.1 В настоящем приложении используют следующие типографические условные обозначения для чисел:

а) для десятичных чисел используют полужирный шрифт Courier New с последующим нижним индексом «10» (например. 1110);

Ь) для шестнадцатеричных чисел используют полужирный шрифт Courier New с последующим нижним индексом «16» (например, 0blf16);

с) если система счисления указана явно, то нижний индекс опускают.

D.1.2 В настоящем приложении приведены два примера возможных кодирований заказа на универсальном бизнес-языке (UBL) (1] в документ быстрого инфо-набора. UBL разработан для обеспечения универсально понятного и общепризнанного коммерческого синтаксиса для юридически значимых деловых документов.

D.1.3 Инфо-набор XML для примера заказа UBL приведен в D.3.

D.1.4 Первый документ быстрого инфо-набора имеет исходный словарь, который ссылается на внешний словарь. В D.4 описано содержимое внешнего словаря, октеты документа быстрого инфо-на-бора и объяснены некоторые последовательности октетов.

D.1.5 Второй быстрый инфо-набор не имеет исходного словаря. В D.5 описаны октеты документа быстрого инфо-набора и объяснены некоторые последовательности октетов.

Примечание — Окончательный словарь последнего документа быстрого инфо-набора тот же самый, что и окончательный словарь документа быстрого инфо-набора, описанного в D.4.

D.1.6 В D.4 и D.5 октеты представлены рядом таблиц по две графы в каждой. В первой графе перечислены в шестнадцатеричном виде начальные позиции 32 последовательных октетов документа быстрого инфо-набора, а во второй графе приведены эти октеты в шестнадцатеричной нотации. Шестнадцатеричные символы, содержащие биты, которые соответствуют идентификации и указателю конца информационных элементов, подчеркнуты.

D.1.7 Объяснения некоторых последовательностей октетов документов быстрого инфо-набора (в D.4 и D.5) представлены в таблицах в следующих графах:

а) графа 1 содержит в шестнадцатеричном виде позицию октета(ов). лриведенного(ых) в графе 2;

Ь) графа 2 содержит октет(ы) документа быстрого инфо-набора, связанный(е) с соответствующим информационным элементом и его свойствами. Октет представлен в двоичном виде с последующим заключенным в скобки шестнадцатеричным представлением [например, 11110000 (f0) ]:

с) графа 3 содержит подробное описание приведенного в графе 2 октета и ссылки на пункты приложения С для дальнейших объяснений и уточнений:

d) графа 4 содержит часть инфо-набора XML или документа XML 1.0 (если применимо), соответствующую октету(ам). приведенному(ым) в графе 2.

D.1.8 В приведенных примерах все блоки информационных элементов character, содержащие менее 6 символов, добавлены в таблицу CONTENT CHARACTER CHUNK, а значения свойства [normalized value] всех информационных элементов attribute, содержащие менее 6 символов, добавлены в таблицу ATTRIBUTE VALUE.

D.1.9 Размеры документов XML 1.0 и быстрого инфо-набора, а также размеры этих сжатых (с помощью GZIP) документов приведены в D.2.

D.2 Размер документов из примеров (включая сжатые на основании избыточности)

D.2.1 В таблице D.1 приведены размеры всех документов. В графе 1 приведены документы UBL, в графе 2 — размеры документов, в графе 3 — размеры документов, сжатых с помощью GZIP (с принятыми по умолчанию опциями) [2].

Примечания

1 Документ XML 1.0 UBL Order не содержит пробельных символов (см. D.3.1.2).

2 В каждом документе все символы закодированы с использованием кодирования символов UTF-8.

3 Для документов быстрого инфо-набора не сериализована декларация XML (см. 12.3).

77

ГОСТ ISO/IEC 24824-1—2013

Таблица D.1 — Исходные размеры документов и размеры документов после сжатия с помощью GZIP

Документ UBL

Размер

Размер после сжатия GZIP

Документ XML 1.0

3311

893

Документ быстрого инфо-набора с внешним словарем

684

546

Документ быстрого инфо-набора без исходного словаря

1322

860

D.2.2 Размер документа быстрого инфо-набора со ссылкой на внешний словарь является наименьшим. также как и его размер после сжатия с помощью GZIP. Отношение размера сжатого GZIP документа к исходному размеру для документа быстрого инфо-набора указывает, что этот документ быстрого инфо-набора содержит мало избыточной информации.

D.2.3 Во всех случаях размер сжатых GZIP документов быстрого инфо-набора меньше размера сжатых GZIP документов XML 1.0. Более того, размер документа быстрого инфо-набора со ссылкой на внешний словарь меньше размера сжатого GZIP документа XML 1.0.

D.3 Пример UBL Order

D.3.1 Пример Joinery Order

D.3.1.1 Пример порядка UBL взят из [1]. В частности, пример Joinery Order был выбран (см. xml/ joinery/UBL-Order-1.0-Joinery-Example.xml) по следующим причинам:

а) он является примером из реального мира и разработан независимо от настоящего стандарта без учета быстрого инфо-набора;

Ь) он находится в свободном доступе;

с) в нем широко использованы пространства имен XML. и следовательно, это хороший пример представления того, как быстрый инфо-набор поддерживает пространства имен XML.

D.3.1.2 Пример Joinery Order был изменен следующим образом.

а) последние три элемента OrderLino были удалены.

Примечание — Тем самым документ XML 1.0 был уменьшен до разумных размеров для представления в настояшем стандарте;

Ь) все пробельные символы были удалены.

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

D.3.2 Документ XML 1.0 Joinery Order

Ниже приведен документ XML 1.0 Joinery Order с указанными в D.3.1.2. перечисление а) изменениями. но с сохранением пробельных символов для удобства чтения:

<?xml version=«l.0» encoding=«UTF-8»?>

<Order xmlns:res=«urn:oasis:names:tc:ubl:codelist:AcknowledgementResponseCo de:1:0»

xmlns:cbc=«urn:oasis:names:tc:ubl:CommonBasicComponents:1:0»

xmlns:cac=«urn:oasis:names:tc:ubl:CommonAggregateComponents:1:0»

xmlns:cur=«urn:oasis:names:tc:ubl:codelist:CurrencyCode:1:0»

xmlns: xsi=«http: //vrww. w3 . or g/2 001 /XMLSchema - instance »

xmlns=«urn:oasis:names:tc: ubl:Order:1:0»

xsi:schemaLocation=«urn:oasis:names:tc:ubl:Order:1:0 ../../xsd/maindoc/UBL-

Order-1.0.xsd»>

<BuyersID>S03-034257</BuyersID>

<cbc:IssueDate>2003-02-03</cbc:IssueDate>

<cac:BuyerParty>

<cac:Party>

<cac:PartyName>

<cbc:Name>Jerry Builder plc</cbc:Name>

</cac:PartyName>

<cac:Address>

78

ГОСТ ISO/IEC 24824-1-2013

<cbc:StreetName»Marsh Lane</cbc:StreetName»

<cbc:CityName»Nowhere</cbc:CityName»

<cbc:PostalZone»NR18 4XX</cbc:PostalZone»

<cbc:CountrySubentity»Norfolk</cbc:CountrySubentity>

</cac:Address>

<cac:Contact>

<cbc:Name»Eva Brick</cbc:Name»

</cac:Contact»

</cac:Party>

</cac:BuyerParty>

<cac:SellerParty>

<cac:Party>

<cac:PartyName»

<cbc:Name»Specialist Windows plc</cbc:Name»

</cac:PartyName»

<cac:Address>

<cbc:BuildingName»Snowhill Works</cbc:BuildingName»

<cbc:CityName»Little Snoring</cbc:CityName»

<cbc:PostalZone>SM2 3NW</cbc:PostalZone>

<cbc:CountrySubentity»Whereshire</cbc:CountrySubentity»

</cac:Address>

</cac:Party>

</cac:SellerParty>

<cac:Delivery»

<cbc:RequestedDeliveryDateTime>2003-02-24T00 : 00 : 00

</cbc:RequestedDeliveryDateTime»

<cac:DeliveryAddress>

<cbc:StreetName»Riverside Rd.</cbc:StreetName»

<cbc:BuildingName»Plot 17, Whitewater Estate</cbc:BuildingName»

<cbc:CityName>Whetstone</cbc:CityName»

<cbc:CountrySubentity»Middlesex</cbc:CountrySubentity>

</cac:DeliveryAddress>

</cac:Delivery»

<cac:OrderLine»

<cac:Lineitem»

<cac:BuyersID»A</cac:BuyersID»

<cbc:Quantity quantityUnitCode=«unit»>2</cbc:Quantity»

<cac:Itern»

<cac : Seller si temldentification»

<cac:ID»236WV</cac:ID»

<cac:PhysicalAttribute»

<cac:AttributeID»wood</cac:AttributelD»

<cbc:De scription»soft</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac: Attr ibuteID»finish</cac: AttributelD»

<cbc:Description»primed</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac : AttributeID»fittings</cac : AttributelD»

<cbc:Description»satin</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac:AttributeID»glazing</cac:AttributelD»

<cbc:Description»single</cbc:Description»

</cac:PhysicalAttribute»

79

ГОСТ ISO/IEC 24824-1—2013

</сас:Sellersltemldentification>

</cac:Item>

</cac:Lineltern»

</cac:OrderLine»

<cac:OrderLine»

<cac:Lineitem»

<cac:BuyersID»B</cac:BuyersID»

<cbc:Quantity quantityUnitCode=«unit»>3</cbc:Quantity»

<cac:Item»

<cac:Sellersltemldentification»

<cac:ID>340TW</cac:ID>

<cac:PhysicalAttribute»

<cac:AttributeID»hand</cac:AttributelD»

<cbc:Description>RH</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute>

<cac:AttributeID»wood</cac:AttributelD»

<cbc:Description>hard</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac : AttributeID»finish</cac: AttributelD»

<cbc:Description»stain</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac:AttributeID»fittings</cac:AttributelD»

<cbc:Description»brass</cbc:Description»

</cac:PhysicalAttribute»

<cac:PhysicalAttribute»

<cac:AttributeID»glazing</cac:AttributelD»

<cbc:Description»double</cbc:Description»

</cac:PhysicalAttribute»

</cac:SellersItemIdentification>

</cac:Item>

</cac:Lineltern»

</cac:OrderLine»

</Order»

D.4 Документ быстрого инфо-набора UBL Order с внешним словарем

Внешний словарь документа быстрого инфо-набора приведен в D.4.1. Октеты (как шестнадцатеричные символы) приведены в D.4.2. Подробные объяснения некоторых последовательностей октетов в D.4.2 приведены в D.4.3. Документ быстрого инфо-набора не может рассматриваться как самоолисы-вающийся. так как для создания полного инфо-набора XML требуется внешняя информация (внешний словарь).

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

D.4.1 Внешний словарь UBL Order

D.4.1.1 Внешний словарь документа быстрого инфо-набора по определению должен быть окончательным словарем, полученным из инфо-набора XML примера UBL Order (см. D.3.1.2) и после измененным для того, чтобы:

а) не содержать информационных элементов character;

b) содержать пустые свойства [normalized value] информационных элементов attribute.

80

ГОСТ ISO/IEC 24824-1-2013

Примечания

1 Эти изменения представляют реалистичный сценарий, когда заранее неизвестно, каким будет определя-емое приложением содержимое (информационные элементы character и/или свойства [normalized value] информационных элементов attribute) инфо-набора XML

2 На практике не ожидается, что подлежащий сериализации документ будет использован для создания внешнего словаря. Предполагается, что реализующие средства будут использовать схему и потенциально экземпляры инфо-набора XML схемы в результате частотного анализа строк и квалифицированных имен станут такими, что меньшие значения индексов будут присвоены более часто появляющейся информации (например, частота появления свойств [local name] в инфо-наборах XML может быть описана степенным редом).

D.4.1.2 URI внешнего словаря: urn:oasis:names:tc:ubl:Order:1.0:Joinery:example.

D.4.1.3 В таблице D.2 представлен словарь инфо-набора XML UBL Order (словарные таблицы). В графе 1 перечислены индексы словарных таблиц (индекс), в графе 2 — записи словарной таблицы PREFIX (запись префикса), в графе 3 — записи словарной таблицы NAMESPACE NAME (запись имени пространства имен), в графе 4 — записи словарной таблицы LOCAL NAME (запись локального имени), в графе 5 — записи словарной таблицы ELEMENT NAME (запись имени элемента), в графе 6 — записи словарной таблицы ATTRIBUTE NAME (запись имени атрибута). Значения индексов для записей идентификаторов имен таблиц ELEMENT NAME и ATTRIBUTE NAME представлены в порядке, определенном ДЛЯ компонентов типа NameSurrogate (prefix-name-string-index, namespace-name-string-index и local-name-string-index). Символ «_» указывает на отсутствие значения (что возможно ТОЛЬКО ДЛЯ значений компонентов prefix-name-string-index и namespace-name-string-index).

Примечания

1 Первая запись (индекс 1) для префикса и имени пространства имен, соответствующая префиксу XML («хт!») и имени пространства имен XML («http7/www.w3.ofg/XML/1998/namespace»), является встроенной (см. 7.2.21 и 7.2.22).

2 Длинные записи имен пространств имен (URI) были урезаны.

3 Для первой записи имени элемента (индекс 1) нет ссылки на префикс (так как значение отсутствует, на что указывает «_»). есть ссылки на седьмую запись имени пространства имен (индекс 7) для свойства [namespace name] (eurn:oasis:names:tc:ubl:Order:1:0») и на первую запись локального имени (индекс 1) для свойства [local name] («Order»).

ГОСТ ISO/IEC 24824-1—2013

Таблица D.2 — Словарь инфо-набора XML UBL Order

Индекс

Запись префикса

Запись имени пространства имен

Запись локального имени

Запись имени элемента

Запись имени атрибута

1

xml

http:ZAvww.w3. wg/XML/1998/namespace

Order

_ 7 1

6 6 2

2

res

.... AcknowfedgementResponseCode: 1:0

schemaLocation

_ 7 3

__23

3

cbc

... .CommonBasicComponents: 1:0

BuyersID

3 3 4

4

сас

....CommonAggregateComponents: 1:0

IssueDate

■1 4 5

5

cur

... .CurrencyCode: 1:0

BuyerParty

■14 6

6

xsi

....XMLSchema-instance

Party

4 4 7

7

....Order:1:0

Party Name

3 3 8

8

Name

4 4 9

9

Address

3 3 10

10

StreetName

3 3 11

11

CityName

3 3 12

12

PostalZone

3 3 13

13

CountrySubentity

4 4 14

14

Contact

4 4 15

15

SellerParty

3 3 16

16

BuildingName

4 4 17

17

Delivery

3 3 18

18

RequestedDeliveryDate-Time

4 4 19

19

Delivery Address

4 4 20

20

OrderLine

4 4 21

21

Uneltem

4 4 3

22

Quantity

3 3 22

23

quantityUnitCode

4 4 24

24

Item

4 4 25

25

Sellersitemldentificalion

4 4 26

26

ID

4 4 27

27

PhysicalAttribute

4 4 28

28

AttnbutelD

3 3 29

29

Description

82

ГОСТ ISO/IEC 24824-1-2013

D.4.2 Октеты документа быстрого инфо-набора (в виде шестнадцатеричных символов)

В таблице D.3 приведены октеты документа быстрого инфо-набора для примера UBL Order, представленного в D.3.

Примечание — В таблице D.3 подчеркнуты шестнадцатеричные символы, содержащие биты, которые соответствуют идентификации и указателю конца информационных элементов.

Таблица D.3 — Октеты документа быстрого инфо-набора (в виде шестнадцатеричных символов)

000 1 020 3040 50607 08090a0bac0d0a0 Г 1 0 1 2 22’2 32 4 2 526 1 т 1 B191alblCldlelf

сооооо

;001.0 0 002010002£7 57 2 6a3a6r617 36973 3a6e6 2 6d65733a7 4 63 3a7 5 626c3a4£

000020

7264 65723a313a303a6a6£696e65 72 793a65 786 2 6d706c657Bc£_B181c£ B2®2c!

0000'10

8 3B3cf848 4cf8585cd865 0000008 3b75 7 2 6a 3 a 6 f 6 2 7 3 6 9 7 3 3a 6a 6 1 6d 6 5 7 3 3a 7 4

000060

633a75626c3a4£726465723a313a3a202e2a2£2a2a2£7873642£6d61696e646£

000080

6 32 t 5 5 4 2 4c:2d4 £726 4 65722 ilJ 1 2&30 2&7 8 7 3 6 4 I 0 0 1 8 2 0 7 5 3 3 0 3 32d3 0 3 3 3 4 3235

сааоаа

37f0D282D732303a332d30322d3033£003040506820e4a65727279204275696c

ООООсО

6 4 6 5722 070 6c 6 3 __ . ^ 3 2074d6172 7 ’63204 062 6a65£0098204 4 a 6 £ 7 7 6 8 6 57 2

ааооео

■ . ;- 5z •:•-.•; : . . 1 .'■..!6 :c ______ ■ 1576Б1

000100

2042726963 6b £f£fOdO4050682135370656369626c6973742057696a646£7773

000120

2 07 0 6c 6 3 Г£070е820Ь5 3 6a6 £ 7 7 68 696c6c2 0 576£72бЬ73 £ 0 0 9 82 Ob 4 C 6 9 7 4 7 4 6c

0001'10

6 52 0 5 3 6a 6 £7 2 6 9 6a 67 £00a8 2 0 4 5 3'1 d32 2 0 3 3 4a 5 7 £ 0 0b8 2 07 57 6 8 6 572 6 5 7 3 68 6 9

000160

7265f£f£05108210323030332d3C322d32345430303a30303a3030£01108820a

000180

52 6 97 6 6 572736 964652052642ef00e8217S06C6 £ 7420 3 2372c20576B6974657 7

0001.10

6174657220457 37461746 5£00982065768657473746£6e 65 Г 0 Ph S2 064 d 6964 64

oooicd

6 c 6573657 B£££012 1 31 4 90'1 1 £ C 55 C 1 '1 3 7 5 6a 6974 £ 0 9032 £31 6171 89202323336

OOOleO

5 7 56£01 91a&201776 £ 6 £64СО1Ь92О1736 £6674 £ £ 19 I a 820366696a69736 8f01b

000200

8203707269 6d6564 ££191a820566697 47 4 696e 6773£02b920273 617 4 6 9 6a££l9

000220

la 82 0 4 6 7 6 C 6 1 ? a 6 9 6 e 6 7 £01b82C 3 7 3 6 9 6 a 6 7 6 C 6 5 £ £ £ £ £ £ 2 2 1 31 4 9 9 4 2_!_£_^ ■ '

0002'10

£09033£D161718 9202 3334 3 0 5 4 5 7£0191a9202 686 2 6a 6 4£0Lb91524B££191aa3

000260

£01b92D 16 8 61 7264111 9 1a820 366696e697 36 8£01b920 2 7 3 7 4 61 6 96a£f 191a82

000280

05666974746 9 6a6773£01b9202 62 7261737 3££292a8 2 0467 6C 617a 69 6a 6 7£Olb

0002a0

8 2 0 3646175626 c65 £ £ £ £ £ £ £ £

аоагас

83

ГОСТ ISO/IEC 24824-1—2013

D.4.3 Объяснение кодирования

D.4.3.1 Кодирование информационных элементов document и Order element

Ниже приведено объяснение деталей исходного кодирования документа быстрого инфо-набора (включая URI внешнего словаря) и корневого информационного элемента. В частности, объяснено кодирование информационного элемента document, последовательности информационных элементов namespace, информационного элемента element и информационного элемента attribute. В таблице D.4 приведен фрагмент документа быстрого инфо-набора для кодирования информационных элементов document и Order element из D.3.2. В таблице D.5 данное кодирование подробно описано. Данный фрагмент в XML 1.0 представлен следующим образом:

<Order xmlns:res=«urn:oasis:names:tc:ubl:codelist:AcknowledgementResponseCo de :1:0»

xmlns:cbc=«urn:oasis:names:tc:ubl:CommonBasicComponents:1:0»

xmlns:cac=«urn:oasis:names:tc:ubl:CommonAggregateComponents:1:0»

xmlns:cur=«urn:oasis:names:tc:ubl:codelist:CurrencyCode:1:0»

xmlns:xsi=«http://www.w3.org/2001/XMLSchema-instance»

xmlns=«urn:oasis:names:tc:ubl:Order:1:0»

xsi:schemaLocation=«urn:oasis:names:tc:ubl:Order:1:0 ../../xsd/maindoc/UBL-

Order-1.0.xsd»>

Таблица D.4 — Октеты фрагмента (в виде шестнадцатеричных символов)

000102 030 405060708090аОЬ0 С 0dOe□Г 101112131415161718191а 1ЫС 1d1 * 1f

euai6D00201 0002 £7572бе3аб£6173б9733а6е61 6d6 57 3За 7 4 63 За 7 5 62 6с3а 4 f

000020

7264 бьтгзаЗхзазозабаъгбэвебвтг^д^абзтай] t i '. . 6578c1_b1811:£B282g!

000040

Ь'3 8 ЗсГВ4 8 4с£8 5 8Ь££8 6£00Э00С с j : V b .' 2 6 a i .i 4 1 8 1 7 3 6 9 7 3 .1 a 6 a 6 1 6 d 6 5 7 3 3 a 7 4

ооооео

6 3 3.17 562 6c3a4 I 7284 6572За31 ЗаЗО202e2e2£2e2e2Г7873642 f 6d61696e64 6f

000080

6 3 2 f 5 5 4 2 4 c 2 d 4 I 7 2 6 4 6 5 7 2 2 d 3 1 2 a 3 3 2 a 7 8 • • • :

Таблица D.5 — Детали кодирования

Окгвт(ы)

Описание

Инфо-набор XML ипи XML

01

11100000 (eO)

00000000 (00)

Эти октеты присутствуют в начале каждого документа быстрого инфо-набора (см. 12.6)

Информационный элемент document

02

03

00000000 (00)

00000001 (01)

Эти октеты являются кодированием номера версии (см. 12.9)

04

05

06

00100000 (20)

_00.10000 (10)

00000000 (00)

Эти октеты являются кодированием наличия исходного словаря и ссылки на внешний словарь из исходного словаря.

Октет на позиции 0416 со значением 20.6 имеет значение ’О" (забивка) в первом бите (см. 12.8). Третий бит равен'T. обозначая наличие компонента initial-vocabulary и отсутствие остальных шести опциональных компонентов (см. С.2.3).

Октет на позиции 05,6 со значением 10 имеет в трех первых битах ’0" {забивка) (см. С.2.5). Четвертый бит равен Т, обозначая наличие компонента external-vocabulary из initial-vocabulary. Последние четыре бита (с пятого по восьмой) равны 'О', обозначая отсутствие четырех из двенадцати других опциональных компонентов (см. С.2.5.1).

Октет на позиции 06 со значением 0016 имеет значение 'О' во всех бигах, обозначая отсутствие оставшихся восьми из двенадцати опциональных компонентов (см. С.2.5.1)

84

Продолжение таблицы D.5

ГОСТ ISO/IEC 24824-1-2013

Охтет(ы)

Описание

Инфа-набор XML или XML

08

37

ооюии (2Л 03110301 (75)

03300301 (65)

Эти октеты являются кодированием URI внешнего словаря. Октет на позиции 0716 со значением 2f16 имеет значение 'О' (забивка) в первом бите (см. С.2.5.2). URI закодирован как символы UTF-8 (см. С.22). Второй бит равен 'О', обозначая, что длина URI больше или равна 110 октету и меньше или равна 64 октетам и длина минус нижняя граница закодирована в битах с третьего по восьмой как целое без знака (см. С.22.3.1). Целое без знака равно 47,0. и длина равна 48.0 (нижняя граница равна 110).

48,0 октетов символов UTF-8 (URI) закодированы, начиная с октета на позиции 0816 до октета на позиции 3716

38

01131000. (78)

Данный октет является исходным кодированием дочернего элемента информационного элемента document.

Октет на позиции 38,6 со значением 78.6 имеет значение 'О' (идентификация) для первого бита, обозначая, что у информационного элемента document есть дочерний элемент и им является информационный элемент element (см. С.2.11.2). Второй бит равен '1'. обозначая, что информационный элемент element имеет атрибуты (см. С.3.3). Биты с третьего по шестой равны '1110' с последующими W (забивка) в битах с седьмого по восьмой, обозначая наличие пространства имен информационного элемента attribute (см. С.3.4.1)

Информационный элемент element со свойством [namespace attribute]

39

За

ЗЬ

11001111 (СГ)

10000001 (81)

30000001 (81)

Эти октеты являются кодированием пространства имен ин-формационного элемента attribute с индексированными свойствами [prefix] и [normalized value].

Октет на позиции 39.в со значением с£16 имеет значение '11001Г (идентификация) в битах с первого по шестой, обозначая наличие пространства имен информационного элемента attribute (см. С.3.4.2). Седьмой бит равен '1'. обозначая наличие свойства [prefix]. Восьмой бит равен '1'. обозначая наличие свойства [normalized value].

Октет на позиции За, 6 со значением 81,6 имеет Т в первом бите, обозначая, что индекс закодирован и будет идентифицировать свойство [prefix] в таблице PREFIX (см. С.13.4). Второй бит равен О', обозначая, что индекс больше или равен 110 и меньше или равен 64 и закодирован в битах с третьего по восьмой как целое без знака (см. С.25.2). Целое без знака равно 110. и индекс равен 210 (нижняя граница равна 110). что после перенаправления из таблицы PREFIX приводит к значению свойства [prefix], равному «resо.

Октет на позиции ЗЬ. 6 со значением 8116 имеет Т в первом бите, обозначая, что индекс закодирован и идентифицирует свойство [normalized value] в таблице NAMESPACE NAME (см. С.13.4). Второй бит равен О', обозначая, что индекс больше или равен 1.0 и меньше или равен 64,0 и закодирован в битах с третьего по восьмой как целое без знака (см. С.25.2). Целое без знака равно 110, и индекс равен 210 (нижняя граница равна 1.0). что после перенаправления из таблицы NAMESPACE NAME приводит к значению свойства [normalized value], равному «.ResponseCode: 1.0»

xmlns:res= «...ResponseCode: 1:0»

Зе 3d

Зе

32001311 (СГ)

10000010 (82)

10000020 (82)

Эти октеты являются кодированием пространства имен ин-формационного элемента attribute с индексированными свойствами [prefix] и [normalized value]

Индекс свойства [prefix] равен 310, что после перенаправления из таблицы PREFIX дает значение «сЬс».

Индекс свойства [normalized value] равен 310, что после перенаправления из таблицы NAMESPACE NAME дает значение «....sicComponents:1.0»

xmlns:cbc=

«..sicComponents:1:0»

85

ГОСТ ISO/IEC 24824-1—2013

Продолжение таблицы D.5

Охтет(ы)

Описание

Инфа-набор XML или XML

ЗГ 40 41

11001111 (СГ)

10000011 (83)

10000011 (83)

Эти октеты являются кодированием пространства имен информационного элемента attribute с индексированными

свойствами [prefix] и [normalized value]

xmlns:cac= e...ateComponents:1:0»

42

43

44

11001111 (СГ)

10000100 (84)

10000100 (84)

Эти октеты являются кодированием пространства имен информационного элемента attribute с индексированными свойствами [prefix] и [normalized value]

xmlns:cur=

«...CurrencyCode:1:0»

45

46

47

11001111 (СГ)

10000101 (85)

10000101 (85)

Эти октеты являются кодированием пространства имен информационного элемента attribute с индексированными свойствами [prefix] и [normalized value]

xmlns:xsi= «...Schema-instance»

48

49

11001101 (Cd)

10000110 (86)

Эти октеты являются кодированием пространства имен информационного элемента attribute с индексированным свойством [normalized value].

Октет на позиции 4816 со значением cd16 имеет седьмой бит, равный О’, обозначающий, что свойство [prefix] отсутствует, восьмой бит. равный 'Г. означает, что свойство [normalized value] присутствует

xmlns=«...Order:1:0»

11110000 (ГО)

Этот октет является кодированием указателя конца для последовательности пространств имен информационного элемента attribute.

Октет на позиции 4а16 со значением Г0.6 имеет значение "111Г (указатель конца) в первых четырех битах (с первого по четвертый), и эти биты являются указателем конца последовательности. Четыре из шести значений ’О' (забивка) содержатся в битах с пятого по восьмой (см. С.3.4.3)

4 о

00000000 (00)

Этот октет является кодированием индексированного квалифицированного имени информационного элемента element. Октет на позиции 4Ь,6 со значением 0016 содержит два оставшихся из шести О' (забивка) в первом и втором битах (см. С.3.4.3). Третий бит равен О’, обозначая, что квалифицированное имя является не литеральным квалифицированным именем (см. С.18.3). а индексированным. Индекс больше или равен 110 и меньше или равен 3210 и закодирован в битах с четвертого по восьмой как целое без знака (см .С.27.2). Целое без знака равно 0. и индекс равен 1.0 (нижняя граница равна 110). что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя со свойством [namespace name], равным «....Order1.0» и свойством [local name] равным «Order» (для этого квалифицированного имени нет свойства [prefix])

<Order ....

4<1

4 с

41

92

00001000 (08)

01111011 (3b)

02110101 (75)

01101000 (64)

Эти октеты являются кодированием информационного элемента attribute с индексированным квалифицированным именем и со свойством [normalized value]. Наличие информационных элементов attribute было обозначено в октете позиции 3816 (второй бит равен Т).

Октет на позиции 4с16 со значением 00.6 имеет первый бит "О’ (идентификация), обозначая наличие информационного элемента attribute (см. С.3.6.1). Второй бит равен О', обозначая, что квалифицированное имя является не литеральным (см. С.17.3). а индексированным. Индекс больше или равен 110 и меньше или равен 64,0 и закодирован в битах с третьего по восьмой как целое без знака (см. С.25.2). Целое без знака равно 010, и индекс равен 110 (нижняя граница равна 110). что после перенаправления из таблицы ATTRIBUTE NAME дает квалифицированное имя с равным «xsi» свойством [prefix], равным «....Schema-instance» свойством [namespace name] и равным «schemaLocation» свойством [local name]

xsi:schemaLocation=

«...»

86

Окончание таблицы D.5

ГОСТ ISO/IEC 24824-1-2013

Охтет(ы)

Описание

Инфа-набор XML или XML

Октет на позиции 4d16 со значением 08, является исходным кодированием неидентифицирующей строки или индекса (см. С.14) для свойства [normalized value]. Первый бит равен 'О', обозначая наличие литеральной строки символов (см. С.14.3). Второй бит равен О’, обозначая, что литеральную строку символов не следует добавлять в таблицу ATTRIBUTE VALUE. Третий и четвертый биты равны 'О', обозначая, что форматом кодирования строки является UTF-8 (см. С. 19.3.1). Пятый и шестой биты равны 'Г и О’ соответственно, обозначая. что длина октетов закодированных символов UTF-8 (свойство [normalized value]) больше или равна 910 и меньше или равна 26410 октетам и длина минус нижняя граница закодирована в восьми битах следующего октета как целое без знака (см. С.23.3.2). Седьмой и восьмой биты равны 'О' (забивка) (см. С.23.3.2).

Октет на позиции 4е.. со значением ЗЬ,6 является кодированием целого без знака. Длина в октетах закодированных символов UTF-8 равна 68 (нижняя граница равна 910).

68,0 октетов закодированных символов UTF-8 (свойства [normalized value]) являются кодированием с октета на позиции 4£16 до октета на позиции 9216

93

11130000 (10)

Этот октет является кодированием указателя конца последовательности информационных элементов attribute.

Октет на позиции 9316 со значением £0,6 содержит 1111' в первых четырех битах (с первого по четвертый бит), что является указателем конца последовательности. Четыре 'О' (забивка) присутствуют (с пятого по восьмой бит), так как ин-формационный элемент Order element имеет дочерние элементы (CM. D.3.2)

D.4.3.2 Кодирование информационного элемента Address element из информационного элемента BuyerParty element

Ниже приведено объяснение деталей кодирования информационного элемента Address element из информационного элемента BuyerParty element документа быстрого инфо-набора. В частности, объяснено кодирование информационных элементов element и character. В таблице D.6 приведен фрагмент документа быстрого инфо-набора для кодирования информационного элемента Address element из информационного элемента BuyerParty element (D.3.2). В таблице D.7 описаны детали этого кодирования. Такой фрагмент в XML 1.0 выглядит следующим образом:

<сас:Address>

<cbc:StreetName>Marsh Lane</cbc:StreetName>

<cbc:CityName>Nowhere</cbc:CityName>

<cbc:PostalZone>NR18 4XX</cbc:PostalZone>

<cbc:CountrySubentity>Norfolk</cbc:CountrySubentity>

</cac:Address>

Таблица D.6 — Октеты фрагмента (в виде шестнадцатеричных символов)

ООО1020304050607080SOaObOcOdOeOf101112131415161718191а!blcldlelf

ООООсО 070882074d61727368204c616e65f00982044e6f77686572

ООООеО 65fQ0a82054e5231382034585Sf00b82044e6f72666'6c6bff

87

ГОСТ ISO/IEC 24824-1—2013

Таблица D.7 — Детали кодирования

Окгст(ы)

Описание

Инфо-набор XML или XML

са

0DD001LL |07)

Этот октет является кодированием информационного элемента Address element.

Октет на позиции с816 со значением 0716 имеет 'О' (идентификация) в первом бите, обозначая, что у информационного элемента element есть дочерний элемент (дочерний информационного элемента Party element), который является информационным элементом element (см. С.3.7.2). Второй бит равен 'О’, обозначая. что у информационного элемента element нет атрибутов (см. С.3.3). Третий бит равен 'О', обозначая, что квалифицированное имя является не литеральным (см. С.18.3). а индексированным. Индекс больше или равен 110 и меньше или равен 3210 и закодирован в битах с четвертого по восьмой как целое без знака (см. С.27.2). Целое без знака равно 710, и индекс равен 810 (нижняя граница равна 1.0). что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя с равным «сас» свойством [prefix], равным «....gateComponents: 1.0» свойством [namespace name] и равным «Address» свойством [local name]

<cac:Address>

С9

0DD01DD0 108)

Этот октет является кодированием информационного элемента StreetName element.

Информационный элемент element имеет индекс 910, что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя с равным «сЬся свойством [prefix], равным «....BasicComponents:1:0» свойством [namespace name] и равным «StreetName» свойством [local name]

<cbc:Street-Name>

са сь

сс

<15

IDDODDlO {82)

DDDDD111 {D7) 01001101 {4d)

01100101 165)

Эти октеты являются кодированием информационного элемента character из информационного элемента StreetName element.

Октет на позиции cai6 со значением 8216 имеет '10‘ (идентификация) в первых двух битах (с первого по второй биты), обозначая. что у информационного элемента element есть дочерний элемент (дочерний информационного элемента StreetName element), который является блоком информационных элементов character (см. С.3.7.5). Третий бит равен "О', обозначая наличие литеральной строки символов (см. С.15.3). Четвертый бит равен ’О', обозначая, что литеральную строку символов не следует добавлять в таблицу CONTENT CHARACTER CHUNK. Пятый и шестой биты равны 'О', обозначая, что форматом кодирования блока является UTF-8 (см. С.20.3.1). Седьмой и восьмой биты равны ’Г и ‘0’ соответственно, обозначая, что длина октетов закодированных символов UTF-8 (блока информационных элементов character) больше или равна 3,0 и меньше или равна 25810 октетам и длина минус нижняя граница закодирована в восьми битах следующего октета как целое без знака (см. С.23.3.2).

Октет на позиции cb16 со значением 0716 является кодированием целого без знака. Длина в октетах закодированных символов UTF-8 равна Ю10 (нижняя граница равна 3,0).

Ю10 октетов закодированных символов UTF-8 расположены с октета на позиции сс, 6 до октета на позиции d516

Информационные элементы character «Marsh Lane»

<16

::::ээоэ ifO)

Этот октет является указателем конца информационного элемента StreetName element.

Октет на позиции d616 со значением £016 содержит ’1111’ в первых четырех битах (с первого по четвертый бит), что является указателем конца информационного элемента StreetName element. Четыре '0‘ (забивка) присутствуют (с пятого по восьмой бит), так как есть еще дочерний элемент (того же уровня) (информационный элемент CityName element) (см. С.3.7.1)

</

cbc:StreetName>

88

Окончание таблицы D. 7

ГОСТ ISO/IEC 24824-1-2013

Октет(ы)

Описание

Инфо-набор XML или XML

47

30031001 |09)

Этот октет является кодированием информационного элемента CityName element.

Информационный элемент element имеет индекс Ю10. что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя с равным «сЬс» свойством [prefix], равным «....BasicComponents:1:0» свойством [namespace name] и равным «CityName» свойством [local name]

<cbc:CityName>

48

49 4а

eO

10030013 182)

00000100 (04)

01001110 |4е)

01100101 (65)

Эти октеты являются кодированием информационных элементов character из информационного элемента CityName element. 7.0 октетов закодированных символов UTF-8 начинаются с октета на позиции da16 до октета на позиции е016

Информационные элементы character «Nowhere»

el

11113000 (£3)

Этот октет является указателем конца информационного элемента CityName element

</cbc:CityName>

00001010 (0а)

Этот октет является кодированием информационного элемента PostalZone element.

Информационный элемент element имеет индекс 1110, что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя с равным «сЬс» свойством [prefix], равным «....BasicComponents:1:0» свойством [namespace name] и равным «PostalZone» свойством [local name]

<cbc: PostalZone*

еЗ е4 “5

10000010 (82)

00000101 (05)

01031110 (4е)

D101LDDD |5В)

Эти октеты являются кодированием информационных элементов character из информационного элемента PostalZone element.

8.0 октетов закодированных символов UTF-8 начинаются с октета на позиции е516 до октета на позиции ес

Информационные элементы character «NR18 4ХХ»

€4

11110030 (13)

Этот октет является указателем конца информационного элемента PostalZone element

</

cbc:PostalZone>

ее

00001011 (0b)

Этот октет является кодированием информационного элемента CountrySubentity element.

Информационный элемент element имеет индекс 1210. что после перенаправления из таблицы ELEMENT NAME дает квалифицированное имя с равным «сЬс» свойством [prefix], равным «....BasicComponents:1:0B свойством [namespace name] и равным «CountrySubentity» свойством [local name]

<cbcCoirtySubentfty>

е£ го fl

£7

10000010 (82)

OOODO1D0 (04) 31001110 |4е)

01101011 |6Ь)

Эти октеты являются кодированием информационных элементов character из информационного элемента CountrySubentity element.

710 октетов закодированных символов UTF-8 начинаются с октета на позиции £116 до октета на позиции £7.6

Информационные элементы character «Norfolk»

£8

11111111 (ГГ)

Этот октет является указателем конца информационных элементов CountrySubentity element и Address element.

Октет на позиции £ 816 со значением ££ 16 содержит '1111' в первых четырех битах (с первого по четвертый бит), что является указателем конца информационного элемента CountrySubentity element (см. С.3.8). Последние четыре бита (биты с пятого по восьмой) содержат '1111' и являются указателем конца информационного элемента Address element (см. С.3.8)

</cbc:Country-Subentity* </cac:Address>

89

ГОСТ ISO/IEC 24824-1—2013

D.5 Документ быстрого инфо-набора UBL Order без исходного словаря

Октеты (в виде шестнадцатеричных символов) документа быстрого инфо-набора приведены в D.5.1. Подробные объяснения некоторых последовательностей октетов из D.5.1 приведены в D.5.2. Окончательные словари данного и предыдущего документов быстрого инфо-набора должны быть одинаковы. поскольку индексы словарных таблиц во внешнем словаре генерируются в том же порядке. Так как строки встроены в документ быстрого инфо-набора, то размер его будет больше. Затраты на включение строк — 635 байт (размер данного документа быстрого инфо-набора минус размер предыдущего). что составляет примерно половину размера документа (для документов большего размера эта разница будет меньше, так как словарь имеет тенденцию к фиксированному размеру). В отличие от предыдущего документа быстрого инфо-набора данный документ можно рассматривать как само-описывающийся. потому что инфо-набор XML может быть создан без какой-либо внешней информации (внешнего словаря).

D.5.1 Октеты документа быстрого инфо-набора (в виде шестнадцатеричных символов)

В таблице D.8 приведены октеты документа быстрого инфо-набора для примера UBL Order, приведенного в D.3.

Примечание — В таблице D.8 подчеркнуты шестнадцатеричные символы, содержащие биты, которые соответствуют идентификации и указателю конца информационных элементов.

Таблица D.8 — Октеты документа быстрого инфо-набора (в виде шестнадцатеричных символов)

0 001320 30'1360 607 380 90аDbOcOdDeO£101112131415161718191alblc1dlel Г

000000

000020

б2 6сЗа63 6£64 6 5 6Сб97 374 3а4163бЬ6е6Г776с656467656d65бе74526573706 £

оооо <10

6е73б543б£64б53а313а30с£02б362632£75726еЗаб£б173б9733а6е61 6d6573

000060

3a74633a75626c3a436£ 6d6d6£бе 4 261736963436£6d706Г6е656е7 473 За31 За

000080

30c£026361633375726e3a6£617369733a6e616d65733a74633a75626c3a436f

ООООаО

6d6d6£6e416767726567617465436f6d706f6e656e74733a313a30c£02637572

ООООсО

2£75726e3a6£617369733a6ft616d65733a74633a75626c3a636£64656c697374

ООООеО

За43757272656е6379436£64653а31За30с£02787369286874747СЗа2£2£7777

000100

772е77332еб£72672£32303а312£5а4Ц4с53бЗб86Ь6Ц612й696е7374б16е63б5

000120

Cdl£7572 6e3a6£61736 973 3a6e616i«6 57 3 3a74 633a7562 6c3a4£72 64 6572 3a31

0001 <10

3a30£03d86044£72646572_7£85850d736368656d614c6£636174 696£6e083b75

000160

726е3а6£617369733а6е616й65733а74в33а75626с3а4£726465723а313а3о23

000180

2e2e2£2e2e2f7873642f6d61696e646£632£55424c2d4£726465722d312e302e

OOOlaO

787364£03dB607427579657273494482075330332d3033343235371031828208

0001со

4 9737375654 46174658207323030332d30322d3033£O3£838309427579657250

OOOleO

617274793£B3830450617274793163830850617274794e616d65318282034еб1

000200

6d65£20e4a65727279204275696c64657220706c63££31838306416464726573

000220

73££B2 82045 374 726565744e616d658£0 74d617 27 368204c616e65£03£82620 7

0002<10

4 3 6974794e616d65B2044e6£7768657265103£828209506£7374 616c5a6£6e65

000260

32_O5 4e5231 382 034 5858£03£828 2 D£4 36£ 75 6e7 472 7 95 375 6265 6e74 69747 9£2

000280

044e6f72666£6c6b££3£B3B306436f6e7461637406820645766120427269636b

0002а0

£ f £ £ 3 £ a 3 8 3 0 a 5 3 6 5 6 c 6 <: 6 5 т 2 5 0 6 1 < 2 V 4 7 9 04050 6 821 5 5 3 7 0 6 5 6 3 6 9 6 1 6c 6 9 7 37 4

90

Окончание таблицы D.8

ГОСТ ISO/IEC 24824-1-2013

0002c0

205?686e6«f7773207D6i:63lI073£3282l)b4275694ct46?6e67'le616d6SB2oa

0002e0

536е6С77б8б9бСбс205 7б£72ба73 f00982Db4c6974746c652053бебf72696e67

000300

_________ :■•:::•.. .■•.;-: ________ :> -.5-;■;: • ь: fu?-:-•. ;___ ■•:■•• : :

000320

65 6С6 97 6 65 727 93_£_В28218 52657175 6 57 3 74 65644 4 6 56С697 6€572 7 94 4 6174 6 5

0003-10

54696d65821O323030332d3O322d3234543Q3O3a3a3O3a303Or03CB3a3Oe4465

000360

6c69766572794164647265737308B20a5269766572736964652052642efODe82

000380

17506c6£742031372c2057666974657761746572204573746174651009820657

ОООЗаО

6B 6574 7374 6 f 6e 65 £001)82 0 64d69 64 6 46c 65726578 £££03£838 308 4 £72 64 6572

000ScO

4c696e653ГВ 383074c69 бе 654 97 465 6d3£B3 83829041£07£8282075175616^74

ОООЗеО

6974797BO£7175616e74 697479556e69744 36f64654 3756e6974 C09032C03f83

000-100

83034974656d3£83B31В53656c6c6572734974656d4964656e74696669636174

000-120

69 6ГбеЗГВЗВЗО14 94492023233365756 CO 3£8383105068797369 63 616C417474

ooo-i 40

726962757 46 53 183 В30а42 74747269627574654944920-776f6Г 64 Г03 Г82В20а

000460

4465736372697074696 Г бе 9201736С6674f£191а820366696e697368t01Ь8203

000480

7 072 6 96d6564II191а82056 66974746 96е 67 7 3£01Ь9202736174 696&СГ191а82

0004dO

04676с617аб96е67£О1Ъ82037 3б96е676с6 5ГfС ГfС 1213149042 СО 550180f090

0004CO

3 ЗСС161-13 9202333430545 7£0191а92016861 бе 64£01591 524 В С£ 191ааЗ£01Ь

0004eO

>20168617264££191а8203б66 96е697 368£01Ь' . . 96еС£1 9 1 . - - •

000500

б9747АЬ9Ье677 3 ГD 1ЬЗ/02627251737 ЗЕП7Id82046760617d63Ьг67Е01bSz0J

000520

6 4 6С75626С65 ££££££££

00052a

D.5.2 Объяснение кодирования

D.5.2.1 Кодирование информационных элементов document и Order element

Ниже приведено объяснение деталей исходного кодирования документа быстрого инфо-набора и корневого информационного элемента. В частности, объяснено кодирование информационного элемента document, последовательности информационных элементов namespace, информационных элементов element и attribute. В таблице D.9 приведен фрагмент документа быстрого инфо-набора для кодирования информационных элементов document и Order element из D.3.2. В таблице D.10 приведены детали данного кодирования. Фрагмент в XML 1.0 выглядит следующим образом:

<Order xmlns:res=«urn:oasis:names:tc:ubl:codelist:AcknowledgementResponseCode:1:0» xmlns:cbc=«urn:oasis:names:tc:ubl:CommonBasicComponents:1:0»

xmlns:cac=«urn:oasis:names:tc:ubl:CommonAggregateComponents:1:0»

xmlns:cur=«urn:oasis:names:tc:ubl:codelist:CurrencyCode:1:0»

xmlns:xsi=«http://www.w3.org/2001/XMLSchema-instance»

xmlns=«urn:oasis:names:tc:ubl:Order:1:0»

xsi:schemaLocation=«urn:oasis:names:tc:ubl:Order:1:0 ../../xsd/maindoc/UBL-Order-1.0.xsd»>

91

ГОСТ ISO/IEC 24824-1—2013

Таблица D.9 — Октеты фрагмента (в виде шестнадцатеричных символов)

00 0102030 40 50 607 D8D90*01!0c0dO*0£ 10 1 1121 314 151 61713191*lblcldl*l 1

dddaoa

eobio000и 0 7£c£O 27.. 6573•* 75726*3 а 6 г 617369733а 6*616 d65733 а 74633 а 75

000020

626с3*63б£64656с6973743*4163бЬ6*б£77бсб5б4676563656*745265737061

0О0040

6*7365436£64653*313*30с£0263б2632£75726*3*б£617369733*6*616d6573

ооооео

3*74633*75б2бс3*436£6d6d6£6*4261736963436£6d706£6*656*74733*313*

ооооао

30d£D26361633375726*3*6£617369733*6*616d65733*74633*75626с3*4361

0000*0

6d6d616*4167*7726567617465436£63706£6*656*74733*31з*30с£О2637572

ООООсО

2 £75 726*3*616173 6973 3*6*61 6d6573 3*74 633*7 5 62 6i:3*6 36 £64 65 6* 69737 4

ООООеО

За43757272656*6379436164653а31ЗаЗО££0278736928687474703*212£7777

000100

772*77332*61726721323030312£584d4c536368656d612d696*7374616*6365

000120

Cd1 £ 75720*3*616173697 33*6*616d6573За74633а75626сЗа417264657 2 За 31

oooi'jo

: ,JС£03£3 60 4 4 £ 72 64 6 5 7 2 7£8 58 5Od т3 6 J 6с6 56d61 4 С 6 £ 6 J 6 1 7 4 6 96 £ 6*08 3b75

000160

726*3аб161736973За6*616d65733*74633a75626c3a4 £ 726465723*313*3020

000180

2*2*212*2*217 8 ’3 64 2f6d61696*64 6£632f55424c2d4 £72 64 65722d312*302*

0001*0

78736410

Таблица D.10 — Детали кодирования

Октет(ы)

Описание

Инфа-набор XML или XML

DO

01

11100000 1*0)

00000000 (00)

Эти октеты присутствуют в начале каждого документа быстрого инфо-набора (см. 12.6)

Информационный элемент document

02

03

00000000 (00)

00000001 (01)

Эти октеты являются кодированием номера версии (см. 12.9)

04

Эти октеты являются кодированием наличия исходного словаря и других компонентов типа Document.

Октет на позиции 0416 со значением 0016 имеет значение ’О’ (забивка) в первом бите (см. 12.8). Биты со второго по восьмой содержат ’О0ОО0О0', обозначающие отсутствие всех опциональных компонентов типа Document (включая компонент initial-vocabulary. отсутствие которого обозначено третьим битом, см. С.2.3)

05

01111000 (78)

Этот октет является исходным кодированием дочернего элемента информационного элемента document.

Октет на позиции 0516 со значением 7816 имеет значение 'О' (идентификация) для первого бита, обозначая, что у информационного элемента document есть дочерний элемент и им является информационный элемент element (см. С.2.11.2). Второй бит равен Т, обозначая, что информационный элемент element имеет атрибуты (см. С.3.3). Биты с третьего по шестой равны '1110' с последующими '00' (забивка) в битах с седьмого по восьмой, обозначая наличие пространства имен информационных элементов attribute (см. С.3.4.1)

Информационный элемент element со свойством [namespace attribute]

92

Продолжение таблицы D. 10

ГОСТ ISO/IEC 24824-1-2013

Октат(ы)

Описание

Инфо-набор XML или XML

06 07 ОВ

Da Oil ОС

11001111 {CD

00000010 102)

01110010 172)

01110010 173)

00111110 13с)

01110101 175)

31110000 130)

Эти октеты являются кодированием пространства имен информационного элемента attribute с литеральными свойствами [prefix] и [normalized value].

Октет на позиции 0б16 со значением с£16 имеет значение '110011' (идентификация) в битах с первого по шестой, обозначая наличие пространства имен информационного элемента attribute (см. С.3.4.2). Седьмой бит равен ’Г, обозначая наличие свойства [prefix]. Восьмой бит равен 'Г, обозначая наличие свойства [normalized value].

Октет на позиции 0716 со значением 0216 имеет 'О' в первом бите, обозначая, что закодирована литеральная строка символов для свойства [prefix] (см. С. 13.3). Второй бит равен 'О’, обозначая, что длина закодированных символов UTF-8 больше или равна 110 и меньше или равна 6410 и закодирована в битах с третьего по восьмой как целое без знака (см. С.22.3.1).

Целое без знака равно 210. и длина равна 3,0 (нижняя граница равна 110).

Октеты 310 с закодированными символами UTF-8 (свойства [prefix]), расположены с октета на позиции 08,6 до октета на позиции 0а16. Строка «res» будет добавлена в таблицу PREFIX (с индексом 210).

Октет на позиции 0Ь16 со значением Зе,6 имеет О' в первом бите, обозначая, что закодирована литеральная строка символов для свойства [normalized value] (см. С. 13.3). Второй бит равен 'О', обозначая, что длина закодированных символов UTF-8 больше или равна 110 и меньше или равна 6410 и закодирована в битах с третьего по восьмой как целое без знака (см. С.22.3.1). Целое без знака равно 62к и длина равна 63. Q (нижняя граница равна 110).

Октеты 63.0. с закодированными символами UTF-8 (свойства [normalized value]), расположены с октета на позиции 0с16 до октета на позиции 4а16. Строка «....ResponseCode:1:0» будет добавлена в таблицу NAMESPACE NAME (с индексом 210)

xmlns:res= «....ResponseC-ode:1:0»

4 i> 4С

4d

4 Г

50

51

ВО

11001111 icf) 00000010 102) 01100011 163)

01100011 163) 00101111 121) 01110101 175)

01110000 130)

Эти октеты являются кодированием пространства имен информационного элемента attribute с литеральными свойствами [prefix] и [normalized value].

Октеты 310 с закодированными символами UTF-8 (свойства [prefix]) расположены с октета на позиции 4с16 до октета на позиции 4f,6. Строка «сЬс» будет добавлена в таблицу PREFIX (с индексом 310).

48 октетов закодированных символов UTF-8 (свойства [normalized value]) расположены с октета на позиции 5116 до октета на позиции 8016. Строка «....sicComponents:1:0» будет добавлена в таблицу NAMESPACE NAME (с индексом 310)

xmlns:cbc= «....sicCompo-nents:1:0»

В1

82 вз

В5

Вб

В7

Да

11001111 1СГ) 00000010 102) 01100011 163)

01100011 163) 00110011 133) 01110101 175)

01110000 130)

Эти октеты являются кодированием пространства имен информационного элемента attribute с литеральными свойствами [prefix] и [normalized value].

Октеты 310 с закодированными символами UTF-8 (свойства [prefix]) расположены с октета на позиции 8316 до октета на позиции 8516. Строка «сас» будет добавлена в таблицу PREFIX (с индексом 410).

Октеты 5210 с закодированными символами UTF-8 (свойства [normalized value]) расположены с октета на позиции 8716 до октета на позицииЬа16. Строка «....ateComponents: 1:0» будет добавлена в таблицу NAMESPACE NAME (с индексом 410)

xmlns:cac=

«....ateCompo-nents:1:0»

93

ГОСТ ISO/IEC 24824-1—2013

Продолжение таблицы D. 10

Октат(ы)

Описание

Инфо-набор XML или XML

bb ПС •nd

bl сО d

ID

11DD1111 Id)

DDDDDD1D 102) 011DDD11 163)

D11DD011 163)

D01D1111 121) 31110131 175)

0111D00D 130)

Эти октеты являются кодированием пространства имен информационного элемента attribute с литеральными свойствами [prefix] и [normalized value].

Октеты 310 с закодированными символами UTF-8 (свойства [prefix]), расположены с октета на позиции bd, 6 до октета на позиции Ы16. Строка «сиг» будет добавлена в таблицу PREFIX (с индексом 510).

Октеты 4810 с закодированными символами UTF-8 (свойства [normalized value]), расположены с октета на позиции d16 до октета на позиции £016 Строка в....CurrencyCode: 1:0» будет добавлена в таблицу NAMESPACE NAME (с индексом 510)

xmlns:cur= «....CurrencyCode: 1:0»

II 12

13

15

16 17

111

11001111 id) 00000010 102) 01111000 178)

01101001 169) 00101000 126) 31101000 168)

01110111 177)

Эти октеты являются кодированием пространства имен информационного элемента attribute с литеральными свойствами [prefix] и [normalized value].

Октеты 310 с закодированными символами UTF-8 (свойства [prefix]) расположены с октета на позиции £316 до октета на позиции £516. Строка «х&1» будет добавлена в таблицу PREFIX (с индексом б10).

Октеты 4110 с закодированными символами UTF-8 (свойства [normalized value]) расположены с октета на позиции £716 до октета на позиции 11£16. Строка «....Schema-instance» будет добавлена в таблицу NAMESPACE NAME (с индексом 6)

xmlns:xsi= «....Schemainstance»

123

121

122

141

11001101 (Cd)

30011111 HI) 01110101 175)

00110000 130)

Эти октеты являются кодированием пространства имен информационного элемента attribute с индексированным свойством [normalized value].

Октеты 3210 с закодированными символами UTF-8 (свойства [normalized value]) расположены с октета на позиции 122. £ до октета на позиции 141. Строка «....Order1:0» будет добавлена в таблицу NAMESPACE NAME (с индексом 710)

xmlns=«.... Order: 1:0»

142

11113033 ;: 1

Этот октет является кодированием указателя конца для последовательности пространств имен информационного элемента attribute.

Октет на позиции 14216 со значением £016 имеет значение '111Г (указатель конца) в первых четырех битах (с первого по четвертый), и эти биты являются указателем конца последовательности. Четыре из шести значений 'О’ (забивка) содержатся в битах с пятого по восьмой (см. С.3.4.3)

14 3

144

145

146

14a

00111101 13d)

10000110 186)

00000100 104)

01001111 141)

31110010 172)

Эти октеты являются кодированием литерального квалифицированного имени информационного элемента element

Октет на позиции 14316 со значением 3d. 6 содержит два оставшихся из шести О’ (забивка) в первом и втором битах (см. С.3.4.3). Биты с третьего по шестой содержат значение ’1111', обозначая, что квалифицированное имя является литеральным (см. С.18.3). Седьмой бит равен ’О’, обозначая, что у квалифицированного имени нет свойства [prefix]. Восьмой бит равен Г, обозначая наличие у квалифицированного имени свойства [namespace name].

Октет на позиции 14416 со значением 8б16 имеет Те первом бите, обозначая, что свойство [namespace name] является не литеральным, а индексированным (см.С.13.4). Второй бит равен ’О', обозначая, что индекс больше или равен 110 и меньше или равен 6410 и закодирован в битах с третьего по восьмой как целое без знака (см . С.25.2). Целое без знака равно 610, и индекс равен 710 (нижняя граница равна 110). что приводит к свойству (namespace name] в....Order: 1.0» после перенаправления из таблицы NAMESPACE NAME.

<Order....

94

Окончание таблицы D.10

ГОСТ ISO/IEC 24824-1-2013

Октат(ы)

Описание

Инфо-набор XML или XML

Октет на позиции 14516 со значением 04,6 имеет '0‘ в первом бите, обозначая, что для свойства [local name] закодирована литеральная строка (см. С.13.3). Второй бит равен О', обозначая, что длина закодированных символов UTF-8 больше или равна 1.0 и меньше или равна 64 и закодирована в битах с третьего по восьмой как целое без знака (см . С.22.3.1). Целое без знака равно 410, и длина равна 510 (нижняя граница равна 110).

Октеты 510. с закодироваными символами UTF-8 (свойства [local name]) расположены с октета на позиции 14б16 до октета на позиции 14а. Строка «Order« будет добавлена в таблицу LOCAL NAME (с индексом 110).

Квалифицированное имя без свойства [prefix], со значением свойства [namespace name], равным «....Order: 1:0» (индекс 710). и свойства [local name], равным «Order» (индекс 110). будет добавлено в таблицу ELEMENT NAME (с индексом 1.0)

14b 140 14d

Не 141

15с 15d 15е 151

DILI mi <7Д) 10000101 185) 10000101 185) 00001101 IDd) 01110011 173)

оценю (бе) 00001000 108) 00111011 1311) 01110101 175)

Эти октеты являются кодированием информационного элемента attribute с литеральным квалифицированным именем и свойством [normalized value] Наличие информационных элементов attribute было обозначено в октете на позиции 0516 (второй бит равен ’Г). Октет на позиции 14Ь16 со значением 7Ь16 имеет [prefix], равным exsi» (индекс 6-0). свойства [namespace name] — «....Schema-in-stance» (индекс 610) и свойства [local name] — «schemaLocation» (индекс 210). будет добавлено в таблицу ATTRIBUTE NAME (с индексом 110).

Октет на позиции 15d16 со значением 08.6 является исходным кодированием неидентифицирующей строки или индекса (см. С.14) для свойства [normalized value]. Первый бит равен О', обозначая наличие литеральной строки символов (см. С. 14.3). Второй бит равен О', обозначая, что литеральную строку символов не следует добавлять в таблицу ATTRIBUTE VALUE. Третий и четвертый биты равны О’, обозначая, что форматом кодирования строки является UTF-8 (см. С.19.3.1). Пятый и шестой биты равны Г и "О' соответственно. обозначая, что длина закодированных символов UTF-8 (свойство [normalized value]) больше или равна 910 и меньше или равна 26410 и длина минус нижняя граница закодирована в восьми битах последующего октета как целое без знака (см. С.22.3.2). Биты с седьмого по восьмой равны О' (забивка) (см. С.22.3.2).

Октет на позиции 15е16 со значением ЗЬ16 является кодированием целого без знака. Длина в октетах закодированных символов UTF-8 равна 6810 (нижняя граница равна 910).

Октеты 68,0. с закодированными символами UTF-8 (свойства [normalized value]), расположены с октета на позиции 15£16 до октета на позиции 1а216

xsi:schemaLoca-tion=«....»

133

1111.0000 IfD)

Этот октет является кодированием указателя конца для последовательности информационных элементов attribute.

Октет на позиции 1а316 со значением £016 содержит '1111' в первых четырех битах (с первого по четвертый бит), что является указателем конца последовательности. Четыре '0‘ (забивка) присутствуют (с пятого по восьмой бит), так как информационный элемент Order element имеет дочерние элементы (см. D.3.2)

D.5.2.2 Кодирование информационного элемента Address element информационного элемента BuyerParty element

Ниже приведено объяснение деталей кодирования информационного элемента Address element информационного элемента BuyerParty element документа быстрого инфо-набора. В частности, объяснено кодирование информационных элементов element и character. В таблице D.11 приведен фрагмент документа быстрого инфо-набора для кодирования информационного элемента Address element

95

ГОСТ ISO/IEC 24824-1—2013

информационного элемента BuyerParty element (D.3.2). В таблице D.12 приведено описание деталей кодирования. Фрагмент в XML 1.0 выглядит следующим образом.

<сас:Address>

<cbc:StreetName>Marsh Lane</cbc:StreetName>

<cbc:CityName>Nowhere</cbc:CityName>

<cbc:PostalZone>NR18 4XX</cbc:PostalZone>

<cbc:CountrySubentity>Norfolk</cbc:CountrySubentity>

</cac:Address>

Таблица D.11 — Октеты фрагмента (в виде шестнадцатеричных символов)

0G0 1020304050607 Ой090а0ЬОбOdOeOf101112131415161718191а 1 Ы С Idleif

000200

И_В 3B306<116<16<1726573

000220

733 £82820953747265657/] 4 e 616d6582074d61727368204c616e6 5 £ 0 3 S В 2 8 2 0 7

000240

4 3б974 7 94е616<165а2 044е6ГТ7б8657265ГаЗГЕ2820 950617 37-1616с5а6Г6е6 5

000260

3 2 0 5-16523 13B203 45858103 ГВ2820 Г4 36Г75 бе 74 ■'27 9537562656674 69747 ^a2

000280

0 4 4 е 6 Г 7 2 6 6 6 Г 6 с 6Ы £

Таблица D.12 — Детали кодирования

Оатвт(ы)

Описание

Инфо-набор XML или XML

216

217

218

219

21а

220

00111111 (3£) 10000011 (83) 10000011 (83) 00000110 (06) 01000001 (411

01110011 (73)

Эти октеты являются кодированием информационного элемента Address element.

Октет на позиции 21616 со значением 3f. 6 имеет ‘О' (идентификация) в первом Бите, обозначая, что у информационного элемента element есть дочерний элемент (дочерний информационного элемента Party element), который является информационным элементом element (см. С.3.7.2). Второй бит равен 'О', обозначая, что у информационного элемента element нет атрибутов (см. С.3.3). Биты с третьего по шестой равны '1111'. обозначая, что квалифицированное имя является литеральным (см. С. 18.3). Седьмой бит равен 'Г. обозначая, что у квалифицированного имени есть свойство [prefix] Восьмой бит равен '1', обозначая. что у квалифицированного имени есть свойство [namespace пате].

Октет на позиции 217.6 со значением 8316 имеет первый бит 'Г. обозначая. что свойство [prefix] является не литеральным, а индексированным (см. С. 13.4). Второй бит равен 'О', обозначая, что индекс больше или равен 110 и меньше или равен 64 и закодирован в битах с третьего по восьмой как целое без знака (см. С.25.2). Целое без знака равно 310. и индекс равен 410 (нижняя граница равна 110). что после перенаправления из таблицы PREFIX дает значение свойства [prefix], равное «сас».

Октет на позиции 21816 со значением 8316 имеет первый бит '1'. обозначая. что свойство (namespace name] является не литеральным, а индексированным (см. С. 13.4). Второй бит равен 'О', обозначая, что индекс больше или равен 110 и меньше или равен 6410 и закодирован в битах с третьего по восьмой как целое без знака (см. С.25.2). Целое без знака равно 310. и индекс равен 410 (нижняя граница равна 110), что после перенаправления из таблицы NAMESPACE NAME дает значение свойства [namespace пате], равное «....ateComponents:1:0».

Октет на позиции 219.. со значением 06. _ имеет 'О' в первом бите, обозначая, что для свойства [local name] закодирована литеральная строка (см. С.13.3). Второй бит равен '0‘. обозначая, что длина закодированных символов UTF-8 больше или равна 110 и меньше или равна 64,0 и закодирована в битах с третьего по восьмой, как целое без знака (см. С.22.3.1). Целое без знака равно 6.0. и длина равна 710 (нижняя граница равна 110)

<cac:Add-ress>

96

Продолжение таблицы D. 12

ГОСТ ISO/IEC 24824-1-2013

Окгет(ы)

Описание

Инфо-набор XML иля XML

710 октетов закодированных символов UTF-8 (свойства [local name]) расположены с октета на позиции 21а16 до октета на позиции 22016. Строка «Address» будет добавлена в таблицу LOCAL NAME (с индексом 9ю)-

Квалифицированное имя со значением свойства [prefix], равным «сас» (индекс 4.0). свойства [namespace name] — «........ateComponents:1:0»

(индекс 410) и свойства (local name] — «Order» (индекс 110). будет добавлено в таблицу ELEMENT NAME (с индексом 110)

221

222

223

224

225

22е

00111111 (3£)

10000010 (82)

10000010 (82)

00001001 (09)

01000001 (53)

01100101 (65)

Эти октеты являются кодированием информационного элемента StreetName element.

Свойство [local name] «StreetName» будет добавлено в таблицу LOCAL NAME (с индексом Ю,о).

Квалифицированное имя со значением свойства [prefix], равным «сЬс» (индекс310).свойства [namespace name]—к........BasicComponents:1:0»

(индекс 3,0) и свойства [local name] — «StreetName» (индекс Ю10). будет добавлено в таблицу ELEMENT NAME (с индексом 910)

<cbc:Street-Name>

22£ 230

231

23а

10000010 (82)

00000111 (07)

01001101 (Id)

01100101 (65)

Эти октеты являются кодированием информационных элементов character информационного элемента StreetName element.

Октет на позиции 22£ 16 со значением 8216 имеет '10' (идентификация) в первых двух битах (с первого по второй биты), обозначая, что у информационного элемента element есть дочерний элемент (дочерний информационного элемента StreetName element), который является блоком информационных элементов character (см. С.3.7.5). Третий биг равен '0‘. обозначая наличие литеральной строки символов (см. С.15.3). Четвертый бит равен 'О’, обозначая, что литеральную строку символов не следует добавлять в таблицу CONTENT CHARACTER CHUNK. Пятый и шестой биты равны 'О', обозначая, что форматом кодирования блока является UTF-8 (см. С.20.3.1). Седьмой и восьмой биты равны 'Г и ’0" соответственно, обозначая, что длина октетов закодированных символов UTF-8 (блока информационных элементов character) больше или равна 310 и меньше или равна 258,0 октетам и длина минус нижняя граница закодирована в восьми битах следующего октета как целое без знака (см. С.23.3.2).

Октет на позиции 23016 со значением 0716 является кодированием целого без знака. Длина в октетах закодированных символов UTF-8 равна Ю10 (нижняя граница равна 3,0).

10,0 октетов закодированных символов UTF-8 расположены с октета на позиции 23116 до октета на позиции 23а16

Информационные элементы character «Marsh Lane»

23Ь

11113002 ifoi

Этот октет является указателем конца информационного элемента StreetName element

</cbc:Street-Name>

2 3 И 23d 23е 23£ 240

УЛ’

00111111 (3£)

10000010 (82|

10000010 (82)

00000111 (07)

01000011 (43)

01100101 (651

Эти октеты являются кодированием информационного элемента CityName element.

Свойство [local name] «CityName» будет добавлено в таблицу LOCAL NAME (с индексом 11,0).

Квалифицированное имя со значением свойства [prefix], равным «сЬс* (индекс310). свойства [namespace name]—к........BasicComponents:1:0»

(индекс 310) и свойства [local name] — «CityName» (индекс 1110). будет добавлено в таблицу ELEMENT NAME (с индексом Ю10)

<cbc:City-Name>

249

24а

250

00000100 (04)

01001110 (4й|

01100101 (651

Эти октеты являются кодированием информационных элементов character из информационного элемента CityName element.

710 октетов закодированных символов UTF-8 начинаются с октета на позиции 24а. 6 до октета на позиции 25016

Информационные элементы character «Nowhere»

11110000 (£0)

Этот октет является указателем конца информационного элемента CityName element

</cbc:City-Name>

97

ГОСТ ISO/IEC 24824-1—2013

Окончание таблицы D.12

Окгет(ы)

Описание

Инфо-набор XML ил« XML

252

253

254

255

256

25Г

00111111 (ЗГ)

10000010 (82)

10000010 (82)

00001001 (09J

01000011 (501

01100101 (651

Эти октеты являются кодированием информационного элемента PostalZone element.

Свойство [local name] *PostalZoneя будет добавлено в таблицу LOCAL NAME (с индексом 1210).

Квалифицированное имя со значением свойства [prefix], равным «сЬс» (индекс 3,0). свойства [namespace name] - «........BasicComponents: 1:0»

(индекс 310) и свойства [local name] - «PostalZone» (индекс 1210). будет добавлено в таблицу ELEMENT NAME (с индексом 1110)

<cbc:Postal-Zone>

261

262

269

10000010 (821

00000101 (05)

01001110 (4е)

01011000 (58)

Эти октеты являются кодированием информационных элементов character из информационного элемента PostalZone element.

810 октетов закодированных символов UTF-8 начинаются с октета на позиции 262,6 до октета на позиции 2б916

Информационные элементы character «NR18 4XX»

26а

11110000 (£0)

Этот октет является указателем конца информационного элемента PostalZone element

</cbc:Postal-Zone>

. :

26с

26d

00.-...- (ЗГ)

10000010 (82)

10000010 (82|

Эти октеты являются кодированием информационного элемента

CountrySubentity element

<cbc:Country-Subentity>

26Г

27е

00001111 (011

01000011 (431

01111001 (79)

Свойство [local name] «CountrySubentity» будет добавлено в таблицу LOCAL NAME (с индексом 1310).

Квалифицированное имя со значением свойства [prefix], равным «сЬс» (индекс310).свойства [namespace пате]—«........BasicComponents: 1:0»

(индекс 310) и свойства [local name] — «CountrySubentity» (индекс 13,0), будет добавлено в таблицу ELEMENT NAME (с индексом 1210)

280

281

287

00000100 (04)

01001110 (4SI

01101011 (6Ь)

Эти октеты являются кодированием информационных элементов character из информационного элемента CountrySubentity element.

710 октетов закодированных символов UTF-8 начинаются с октета на позиции 281,6до октета на позиции 28716

Информационные элементы character «Norfolk»

288

. (£1

Этот октет является указателем конца информационных, элементов CountrySubentity element и Address element. Октет на позиции 288со значением f £ 16 содержит ’111Г в первых четырех битах (с первого по четвертый бит), что является указателем конца информационного элемента CountrySubentity element, (см. С.3.8). Последние четыре бита (биты с пятого по восьмой) содержат ’1111' и являются указателем конца информационного элемента Address element (см. С.3.8)

</cbc:Coun-trySubentity> </ cac:Address>

D.5.2.3 Кодирование информационного элемента BuyersID element первого информационного элемента Lineitem element

Ниже приведено объяснение деталей кодирования информационного элемента BuyersID element первого информационного элемента Llnoltem element документа быстрого инфо-набора. В частности. объяснено кодирование информационного элемента element, свойство [local name] которого было проиндексировано ранее. В таблице D.13 приведен фрагмент документа быстрого инфо-набора для кодирования информационного элемента BuyersID element первого информационного элемента Lineitem element (D.3.2). В таблице D.14 приведено описание деталей кодирования. Фрагмент в XML 1.0 выглядит следующим образом:

<cac:Line!tem>

<сас:BuyersID>A</cac:BuyersID>

Таблица D.13 — Октеты фрагмента (в виде шестнадцатеричных символов)

DDD1D20304D5D607DBD9DsDb0c0dDe0r10111213141516171B191alblCldlel£

аоазса

3£83В3074с696е654974656d3£838382904 1 £D

98

Таблица D.14—Детали кодирования

ГОСТ ISO/IEC 24824-1-2013

Октег(ы)

Описание

Инфо-набор XML или XML

Зс5 Зеб ЗС? Зев

СС111111 (30 iGaaacn (аз» 10000011 (83» 00001111 (07» 01001010 (4С»

Эти октеты являются кодированием информационного элемента Lineitem element.

Свойство [local name] к Lineitem» будет добавлено в таблицу LOCAL NAME (с индексом 2110)

<cac:Lineltem>

ЗеГ

01101101 (64»

Квалифицированное имя со значением свойства [prefix], равным «сас» (индекс 410). свойства [namespace name] — «........ateCom-

ponents:1:0» (индекс 410) и свойства [local name] — «Lineitem» (индекс 10.0). будет добавлено в таблицу ELEMENT NAME (с индексом 20ю>

3d0

34 i

342

343

00111111 (30

10000011 (83»

10000011 (83»

10000010 (82)

Эти октеты являются кодированием информационного элемента BuyersID element

Свойства [prefix], [namespace name] и [local name] уже были проиндексированы, так как все связанные с ними строки уже встречались ранее до этого информационного элемента. Свойство [local name] было проиндексировано при обработке первого дочернего элемента информационного элемента Order element, а именно информационного элемента BuyersID element со значением свойства [namespace name] «....Order: 1:0».

Квалифицированное имя со значением свойства [prefix], равным «сас» (индекс 4,0). свойства [namespace name] — «........ateComponents:1:0» (индекс 410) и свойства [local name] — «BuyersID» (индекс 310). будет добавлено в таблицу ELEMENT NAME (с индексом 2110)

<cac:BuyerslD>

344 3d5

10010000 (90»

01000001 (41}

Эти октеты являются кодированием информационных элементов character информационного элемента BuyersID element.

Октет на позиции 3d416 со значением 9016 имеет ’10' (идентификация) в первых двух битах (с первого по второй биты), обозначая, что у информационного элемента element есть дочерний элемент (дочерний информационного элемента BuyersID element), который является блоком информационных элементов character (см. С.3.7.5). Третий бит равен 'О’, обозначая наличие литеральной строки символов (см. С.15.3). Четвертый бит равен 'Г. обозначая, что литеральную строку символов следует добавить в таблицу CONTENT CHARACTER CHUNK (в данном примере строки длиной менее 610 символов добавляют в таблицу CONTENT CHARACTER CHUNK или ATTRIBUTE VALUE). Пятый и шестой биты равны 'О’, обозначая, что форматом кодирования блока является UTF-8 (см. С.20.3.1). Седьмой бит равен 'О’, обозначая, что длина октетов закодированных символов UTF-8 (блока информационных элементов character) больше или равна 110 и меньше или равна 210 и длина минус нижняя граница закодирована в восьмом бите как целое без знака (см. С.24.3.1). Целое без знака равно О. и длина равна 110.

Октет закодированных символов UTF-8 находится в октете на позиции 41, 6

Информационный элемент character «А»

346

11110000. (СО»

Этот октет является указателем конца информационного элемента BuyersID element

</

cac:BuyerslD>

99

ГОСТ ISO/IEC 24824-1—2013

Приложение Е (справочное)

Присвоение значений идентификаторов объектов

В настоящем стандарте присвоены следующие идентификаторы объектов и дескрипторы объектов:

{ joint-iso-itu-t(2) asnl(l) generic-applications (10) fast-infoset(0) modules(0) fast-infoset(0)} «Fast Infoset ASN.1 Module»

{joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) modules(0) fast-infoset-edm(l)}

«Fast Infoset Encoding Definition Module»

(joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) modules(0)fast-infoset-elm(2))

«Fast Infoset Encoding Link Module»

{joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) encodings(1) optional-xml-declaration(0))

-- Определен как fin f-doc-срг:-deci з A.l

«А fast infoset document containing an XML declaration»

(joint-iso-itu-t(2) asnl(l) generic-applications(10) fast-infoset(0) encodings(1) no-xml-declaration(1)}

-- Определен как finf-dcc-no-decl e A.l

«А fast infoset document without an XML declaration»

100

ГОСТ ISO/IEC 24824-1-2013

Приложение ДА (справочное)

Сведения о соответствии межгосударственных стандартов ссылочным международным стандартам (международным документам)

Таблииа ДА.1

Обозначение и наименование международного стандарта

Степень соответствия

Обозначение и наименование мем государственного стандарта

ISO/IEC 9834-8:2005 Информационные технологии. Взаимосвязь открытых систем. Процедуры для работы регистрационных органов в системе OSI. Часть 8. Создание и регистрация универсально уникальных идентификаторов и их использование в качестве компонентов идентификаторов объектов ASN.1

ISO/IEC 8824-1:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 1. Спецификация базовой нотации

ISO/IEC 8824-2:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 2. Спецификация информационных объектов

ISO/IEC 8824-3:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 3. Спецификация ограничений

ISO/IEC 8824-4:2002 Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 4. Спецификация для параметризации ASN.1

ISO/IEC 8825-1:2002 Информационные технологии. Правила кодирования ASN.1. Часть 1. Спецификация основных (BER). канонических (CER) и различительных правил кодирования (DER)

ISO/IEC 8825-2:2002 Информационные технологии. Правила кодирования ASN.1. Часть 2. Спецификация правил уплотненного кодирования (PER)

0

ISO/IEC 8825-3:2002 Информационные технологии. Правила кодирования ASN.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

ISO/IEC 8825-4:2002 Информационные технологии. Правила кодирования ASN.1. Часть 4. Правила кодирования XML(XER)

<1

ISO 8601:20О4 Элементы данных и форматы для обмена информацией. Обмен информацией. Представление дат и времени

ISO/IEC 10646:2003 Информационные технологии. Универсальный многооктетный набор кодированных символов (UCS)

• Соответствующий межгосударственный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов.

101

ГОСТ ISO/IEC 24824-1—2013

Библиография

[1] OASIS Universal Business Language (UBL) 1.0 (Универсальный бизнес-язык UBL)

[2] IETF RFC 1952 (1996), GZIP file format specification version 4.3 (Формат файлов GZIP, спецификация версии4.3)

УДК 681.3:691.39:006.354

МКС 35.100.60

ЮТ

Ключевые слова: обработка данных, информационный обмен, сетевое взаимодействие, взаимосвязь открытых систем. ASN.1, кодирование, быстрый инфо-набор

102

Редактор Н.Н. Кузьмина Технический редактор В.Н. Прусакова

Корректор Е.Р. Ароян Компьютерная верстка И.В. Белюсенко

Сдано в набор 09.11.2015. Подписано а печать 15.12.2015. Формат 60 и 54 Vg. Гарнитура Ариал.

Уел. печ. л. 12.09 Уч.-изд. п. 11.00 Тираж 32 экз. Зак. 18.

Набрано в ИД «Юриспруденция». 115419. Москва, ул. Орджоникидзе. 11. www. jurisizdat ru y-boak@tnail.ru

Издано и отпечатано во

ФГУП «*. 123995 Москва. Гранатный пер.. 4