allgosts.ru35.100 Взаимосвязь открытых систем35 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

ГОСТ Р ИСО/МЭК 8824-2-2001 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 2. Спецификация информационного объекта

Обозначение:
ГОСТ Р ИСО/МЭК 8824-2-2001
Наименование:
Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 2. Спецификация информационного объекта
Статус:
Действует
Дата введения:
07.01.2002
Дата отмены:
-
Заменен на:
-
Код ОКС:
35.100.60

Текст ГОСТ Р ИСО/МЭК 8824-2-2001 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 2. Спецификация информационного объекта

ГОСТ Р ИСО/МЭК 8824-2-2001

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

АБСТРАКТНАЯ СИНТАКСИЧЕСКАЯ НОТАЦИЯ ВЕРСИИ ОДИН (АСН. 1)

Часть 2

Спецификация информационного объекта

И панне официальное

БЗ 5—2001/107


ГОССТАНДАРТ РОССИИ Москва

ГОСТ Р ИСО/МЭК ««24-2—2001

Предисловие

  • 1 РАЗРАБОТАН Государственным научно-исследовательским и конструкторско-технологическим институтом «ТЕСТ» Министерства Российской Федерации по связи и информатизации

ВНЕСЕН Министерством Российской Федерации по связи и информатизации

  • 2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 6 сентября 2001 г. № 375-ет

  • 3 Настоящий стандарт содержит полный аутентичный текст международного стандарта ИСО/МЭК 8824-2—98 «Информационная технология. Абстрактная синтаксическая нотация версии один (АСН. I). Часть 2. Спецификация информационного объекта» с Дополнением № 1 (1999 г.)

  • 4 ВВЕДЕН ВПЕРВЫЕ

© ИПК Издательство стандартов. 2001

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

Содержание

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

    1

    1

    1

    1

    1

    1

    1

    3

    3


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

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

    • 3.1 Спецификация базовой нотации...........................................

    • 3.2 Спецификация ограничения..............................................

    • 3.3 Параметризация спецификации ACH.I......................................

    • 3.4 Дополнительные определения.............................................

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

  • 5 Соглашение..............................................................

  • 6 Нотация

    • 6.1 Присвоения

    • 6.2 Типы

    • 6.3 Значения

    • 6.4 Элементы

  • 7 Элементы АСН. I

    • 7.1 Ссылки на класс информационных объектов

    • 7.2 Ссылки на информационный объект

    • 7.3 Ссылки на множество информационных объектов

    • 7.4 Ссылки на поле типа

    • 7.5 Ссылки на поле значения

    • 7.6 Ссылки на поле множества значений

    • 7.7 Ссылки на поле объекта

    • 7.8 Ссылки на поле множества объектов

    • 7.9 Слово

    • 7.10 Дополнительные ключевые слова

  • 8 Определения ссылок

  • 9 Определение и присвоение класса информационных объектов

  • 10 Список синтаксисов

  • 11 Определение и присвоение информационного объекта

  • 12 Определение и присвоение множества информационных объектов

  • 13 Ассоциированные таблицы

  • 14 Нотация для типа «ноле класса объектов»

  • 15 Информация из объектов

    17


Приложение А Класс информационных объектов TYPE-IDENTIFIER

Приложение В Определения абстрактных синтаксисов

Приложение С Тип «экземпляр-из»

Приложение D Примеры

D.1 Пример использования упрошенного класса OPERATION

D.2 Пример использования «ObjcctClassFieid Гуре»

D.3 Пример использования объектов и множества объектов

Приложение Е Руководство по модели АСН. 1 расширения множества объектов

Приложение F Сводка нотации

Г О С У Д А I’ С Г В Е Н Н Ы Й С Г Л Н Д А I’ Г Р О С С И Й С К О Й ФЕДЕ Р А Ц И И

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

АБСТРАКТНАЯ СИНТАКСИЧЕСКАЯ НОТАЦИЯ ВЕРСИИ ОДИН (АСН. 1)

Часть 2

Спецификация информационного обьскга

Information technology. Abstract Syntax Notation One (ASN. 1). Information object specification

Дата введения 2002—07—01

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

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

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

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

ГОСТ Р ИСО/МЭК 8824-1—2001. Информационная технология. Абстрактная синтаксическая нотация версии один (АСН. 1). Часть 1. Спецификация основной нотации (Рекомендация МККТТ Х.680 (1997)|

ИСО/МЭК 8824-3—98 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН. 1). Часть 2. Спецификация ограничения |Рекомендация МККТТ Х.682 (1997)|

ИСО/МЭК 8824-4—95 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН. 1). Часть 4. Параметризация спецификации АСН. I (Рекомендация МККТТ Х.683 (1997)|

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

  • 3.1 Спецификация базовой нотации

В настоящем стандарте используют термины, определенные в ГОСТ Р ИСО/МЭК 8824-1.

  • 3.2 Спецификация ограничения

В настоящем стандарте используют термин, определенный в ИСО/МЭК S824-3: табличное ограничение

  • 3.3 Параметризация спецификации АСН. 1

В настоящем стандарте используют термины, определенные в ИСО/МЭК 8824-4:

а) параметризованный тип;

б) парамегризованное значение.

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

    • 3.4.1 ассоциированная таблица (для некоторого информационного объекта или множества информационных объектов): Абстрактная таблица, получаемая из объекта или множества объектов путем выравнивания иерархической структуры, подученной из-за присутствия полей связи (см. 3.4.13).

Примем а и не - Ассоциированная таблица может быть использована для определения точной природы некоторого ограничения (см. ИСО/МЭК 8824-3). которое было определено с использованием множества объектов.

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

  • 3.4.2 синтаксис по умолчанию: Нотация, которая должна использоваться для определения информационных объектов тех классов, авторы определения которых не предоставляют определенный синтаксис (см. пример 11.9).

  • 3.4.3 определяемый синтаксис: Нотация, предоставленная автором определения класса, которая позволяет определять информационные объекты этого класса дружественным пользователю образом.

Примечание— Например определяемый синтаксис для класса OPERATION может позволить определять экземпляры класса с помощью слова ARGUMENT с последующим &ArgumeniType. далее — RESU LT с последующим &ResuhType и CODE с последующим &operationCode (см. пример 11.10).

  • 3.4.4 расширяемое множество объектов: Множество объектов с маркером расширения.

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

  • 3.4.6 имя поля: Имя. которое идентифицирует поле некоторого класса; либо класса, который специфицирует поле непосредственно, и в этом случае имя является примитивным именем поля, либо класса, который имеет цепочку полей связи к тому, в котором поле фактически определено (см. 9.13 и 9.14).

  • 3.4.7 поле иде»гтификатора: Поле класса значений фиксированного-типа, выбранное для обеспечения однозначной идентификации информационных объектов данного класса. Значения поля идентификатора, если они применяются, должны быть недвусмысленными в пределах любого множества информационных объектов, которое определяется для данного класса. Они могут, но нс обязаны служить для недвусмысленной идентификации информационных объектов данного класса в некоторой широкой области.

П р и м еч а и и я

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

  • 2 Область, в которой идентификатор является недвусмысленным, является множеством информационных объектов. Однако она может быть также недвусмысленной в пределах данного абстрактного синтаксиса или в пределах целого прикладного контекста, или даже может быть глобальной для всех классов и всех прикладных контекстов при использовании типа •идентификатор объекта» для поля идентификатора.

  • 3.4.8 информационный объект: Экземпляр некоторого класса информационных объектов, сформированный из множества полей, которые соответствуют спецификациям полей этого класса.

11 р и м е ч а н не — Например одним конкретным экземпляром информационного объекта класса OPERATION (упоминаемого в 3.4.9) может быть invert Matrix, который имеет поле AArgunientType, содержащее тип Matrix, поле AResuhType. содержащее также тип Matrix, и поле AoperationCode. содержащее значение 7 (см. пример в 10.13).

  • 3.4.9 К.ШСС информационного объекта (класс): Множество полей, формирующее шаблон для определения возможно неограниченной совокупности ши|юрмационных объектов (экземпляров класса).

П р и м е ч а н и е — Например класс информационного объекта OPERATION может быть определен так. чтобы соответствовать понятию операции «operation» для удаленных операций. Каждая спецификация различных поименованных полей будет соответствовать некоторому аспекту, который может изменяться от одного экземпляра операции к другому. Таким образом, в ней могут быть поля AArgumentType. &RcsultTypc и &opcrationCodc, из которых два первых поля определяют тип, а третье — поле значения.

  • 3.4.10 поле информационного объекта: Поле, которое содержит информационный объект некоторого заданного класса.

  • 3.4.11 множество информационных объектов: Непустое множество информационных объектов, все из которых одного и того же класса информационных объектов.

Примечание — Например одно множество информационных объектов. MatrixOpcrations, класса OPERATION (использованного в примере 3.4.9) может содержать invert.Matrix (упомянутую в 3.4.8) вместе с другими связанными операциями, такими как addMatrices. mukiplyMatrices, и т.д. Такое множество объектов может использоваться при определении абстрактного синтаксиса, который обеспечивает вызов и возврат результата всех этих операций (см. пример в 12.7).

  • 3.4.12 поле множества информационных объектов: Поле, которое содержит множество информационных объектов некоторого заданного класса.

  • 3.4.13 тип «экземпляр-из»: Тип. определяемый указанием класса информационных объектов, который связывает илентикаторы объектов с типами.

  • 3.4.14 пояс связи: Пояс объекта или множества объектов.

  • 3.4.15 гни ноле класса объектов: Гии. задаваемый путем указания некоторого поля класса информационных объектов. В ИСО/МЭК 8824-3 определена нотация, обеспечивающая возможность ограничения этого типа путем указания множества информационных объектов данного класса.

  • 3.4.16 примитивное имя поля: Имя. заданное непосредственно определением класса информационных объектов без использования поля связи.

  • 3.4.16 bis рекурсивное определение (класса информационных объектов): Набор определений АСН. I, который нс может быть переупорядочен таким образом, что все классы информационных объектов, использованные в конструкции, определены до определения конструкции.

П ри меч а н не — Рекурсивные определения классов информационных объектов допустимы в АСН. I. Рекурсивные определения ин<|юрманионных объектов и множеств информационных объектов недопустимы.

  • 3.4.17 пояс типа: Поле, которое содержит произвольный тип.

  • 3.4.18 поле значения: Поле, которое содержит значение. Такое поле может быть либо фиксированного-. либо псрсменного-типа. В первом случае тип значения зафиксирован спецификацией поля. Во втором случае тип значения содержится в некотором (заданном) поле типа того же самого информационного объекта.

  • 3.4.19 поле множества значений: Поле, которое содержит непустое множество значений некоторого типа. Такое поле может быть либо фиксированного-, либо псрсменного-типа. В первом случае тип значений зафиксирован спецификацией поля. Во втором случае тип значений содержится в некотором (заданном) поле типа того же самого информационного объекта.

Примечание —Множество значений в поле множеств.) значений для информационного объекта образует подтип заданного типа.

4 Сокращения

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

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

БНФ — Бскуса—Науэра форма.

5 Соглашение

В настоящем стандарте используют соглашения, приведенные в ГОСТ Р ИСО/МЭК 8824-1. раздел 5.

6 Нотация

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

6.1 Присвоения

В настоящем стандарте определены следующие нотации, которые могут использоваться как альтернативы для «Assignment» (см. ГОСТ Р ИСО/МЭК 8824-1. раздел 12):

  • - ObjcctClassAssignmcnt (см. 9.1):

  • - ObjcctAssignmcnt (см. 11.1);

  • - ObjcctSciAssignment (см. 12.1);

6.2 Типы

  • 6.2.1 В настоящем стандарте определены следующие нотации, которые могут использоваться как альтернативы для встроенного типа «BuiltinType» (см. ГОСТ Р ИСО МЭК 8824-1. 16.2):

  • - ObjcctClassFicldType (см. 14.1);

  • - InstanceOlTypc (ем. приложение С).

  • 6.2.2 В настоящем стандарте определены следующие нотации, которые могут использоваться как альтернативы для указываемого типа «ReferenccdType» (см. ГОСТ Р ИСО/МЭК 8824-1, 16.3):

  • - TypcFromObjcct (см. раздел 15);

  • - ValucSctFromObjecl (см. раздел 15).

6.3 Значения

  • 6.3.1 В настоящем стандарте определены следующие нотации, которые могут использоваться как альтернативы для встроенного значения «BuiltinValue» (см. ГОСТ Р ИСО/МЭК 8824-1, 16.8):

  • - ObjcctClassFicldValue (см. 14.6);

  • - InstanccOfValuc (см. приложение С).

  • 6.3.2 В настоящем стандарте определена следующая нотация, которая может использоваться как альтернатива для указываемого значения «RcfcrcnccdValue» (с.м. ГОСТ Р ИСО/МЭК 8824-1. 16.9):

  • - ValucFromObjcct (см. раздел 15);

  • 6.4 Элементы

В настоящем стандарте определена следующая нотация, которая может использоваться как альтернатива для элементов «Elements» (см. ГОСТ Р ИСО/МЭК 8824-1, 46.3):

  • - ObjcctSctElements (см. 12.3).

7 Элементы АСН. 1

Дополнительно к элементам АСН. 1. определенным в ГОСТ Р ИСО/МЭК 8824-1, раздел И. в настоящем стандарте используют элементы АСН. 1. определенные в последующих подразделах. Общие правила, применяемые к этим элементам, тс же самые, что и определенные в ГОСТ Р ИСО/МЭК 8824-1. 11.1. Эги новые элементы АСН. 1 используют набор символов АСН. 1. определенный в ГОСТ Р ИСО/МЭК 8824-1, раздел 10. и дополнительно знак амперсанд («&»).

П р и м е ч а и и е — Примечание в ГОСТ Р ИСО/МЭК 8824-1, 10.1 также применяется к элементам, специфицированным в 7.1 — 7.9.

  • 7.1 Ссылки на класс информационных объектов

Имя элемента — objcctclassrcfcrencc

Ссылка на класс информационных объектов «objcctclassreferencc» должна состоять из последовательности символов, определенной в ГОСТ Р ИСО/МЭК 8824-1. 11.2 для «typcrcfcrcncc*. за исключением того, что в нес нс должны включаться буквы нижнего регистра.

  • 7.2 Ссылки на информационный объект

Имя элемента — objcctclassrcfcrencc

Ссылка на информационный объект «objcctrcfcrcncc* должна состоять из последовательности символов, определенной в ГОСТ Р ИСО/МЭК S824-1. 11.4 для «valucrefercnce».

  • 7.3 Ссылки на множество информационных объектов

Имя элемента — objcctclassrcfcrencc

Ссылка на множество информационных объектов «objectsctrefercncc» должна состоять из последовательности символов, определенной в ГОСТ Р ИСО/МЭК 8824-1. 11.2 для «typcrcfcrcncc».

  • 7.4 Ссылки на поле типа

Имя элемента — typcficldrefcrencc

Ссылка на поле типа «typcficldrefcrencc» должна состоять из амперсанда («&»). за которым непосредственно следует последовательность символов, определенная в ГОСТ Р ИСО/МЭК 8824-1. 11.2 для «typcrcfcrcnce».

  • 7.5 Ссылки на поле значения

Имя элемента — valucficldrefercnce

Ссылка на поле значения «valueficldrefcrence» должна состоять из амперсанда («&»), за которым непосредственно следует последовательность символов, определенная в ГОСТ Р ИСО/МЭК 8824-1. 11.4 для «valucrefercnce».

  • 7.6 Ссылки на поле множества значений

Имя элемента — valucsctficldrcfcrcnce

Ссылка на поле множества значений «valucsctficldrcfcrcnce» должна состоять из амперсанда («&»). за которым непосредственно следует последовательность символов, определенная в ГОСТ Р ИСО/МЭК 8824-1. 11.2 для «typcrcfcrcncc».

  • 7.7 Ссылки на поле объекта

Имя элемента — objcctficldrcfcrcncc

Ссылка на поле объекта «objcctfieldrefcrcnce» должна состоять из амперсанда («&»). непосредственно за которым следует последовательность символов, определенная в 7.2 для «objcctrcfcrcncc».

  • 7.8 Ссылки на поле множества объектов

Имя элемента — objcctsctficldrcfcrcncc

Ссылка на поле множества объектов «objectsetficldrcfercncc» должна состоять из амперсанда («&»). непосредственно за которым следует последовательность символов, определенная в 7.3 для «objcctsct reference».

7.9 Слово

Имя элемента — word

Слово «word» должно состоять из последовательности символов, определенной в ГОСТ Р ИСО/МЭК 8824-1, 11.2 для «typcrcfcrcncc», за исключением того, что в нее нс должны включаться буквы или цифры нижнего регистра.

7.10 Дополнительные ключевые слова

Имена CLASS. INSTANCE. SINTAX и UNIQUE приведены в ГОСТ Р ИСО/МЭК 8824-1. 11.18 как зарезервированные слова.

8 Определения ссылок

8.1 Конструкции

DcfinedObjcctClass: : = ExternalObjcctClassRcfcrcncc | objcctclassrcfcrcnce | UscfulObjcctClassRcfercncc

DcfincdObjcct : : =

ExtcrnalObjcciRcfcrcncc |

object reference

DcfincdObjcctSct : : =

ExternalObjcctSet Reference |

objectset rcfcre ncc используются для ссылок на определения класса, информационною объекта и множества информационных объектов соответственно.

  • 8.2 За исключением, определенным в ГОСТ Р ИСО/МЭК 8824-1. 12.15. альтернативы «objcctclassrcfcrcnce». «objcctrcfcrcncc» и «objcctsetrcfcrcncc» должны использоваться только в том модуле, в котором класс, информационный объект или множество информационных объектов (см. 9.1, 11.1 и 12.1) присвоены этой ссылке.

Альтернативы «ExternalObjcctClassRcfcrcncc». «ExtcmalObjcclRcfcrcncc* и «ExternalObjcctSet-Reference» определяются следующим образом:

ExternalObjcctClassRcfcrcncc : : =

modulcrefercncc

«.»

objcctclassrcfcrcnce

ExtemalObjcctRcfercncc : : =

modulcrefercncc

«.»

object reference

ExternalObjcctSet Reference : : =

modulcrefercncc

«.»

object set reference

Эти альтернативы должны использоваться только в том случае, если соответствующим «оЬ-jectclassrcfcrencc», «objcctrcfcrencc» или «objcctsctrcfcrencc» были присвоены класс, информационный объект или множество информационных объектов соответственно (см. 9.1. 11.1 и 12.1) в модуле (отличном от ссылающегося модуля), идентифицированном соответствующей ссылкой «modulc-rcfcrcncc». Это и есть именно тс, соответственно, класс, информационный объект или множество информационных объектов, которые указываются.

  • 8.3 Альтернатива «UscfulObjcctClassRcfercncc» для «DcfinedObjcctClass» определяется следующим образом:

UscfulObjcctClassRcfercncc : : = TYPE-IDENTIFIER | ABSTRACT-SYNTAX, где первая альтернатива определена в приложении А. а вторая — в приложении В.

Примечание-Имена TYPE-IDENTIFIER и ABSTRACT—SYNTAX приведены в ГОСТ Р ИСО/МЭК 8824-1. 11.18 как зарезервированные слова.

9 Определение и присвоение класса информационных объектов

  • 9.1 Конструкция «ObjcctClassAssignment» используется для присвоения класса информационных объектов имени ссылки («objcctclassrcfcrcncc»). Эта конструкция является одной из альтернатив для «Assignment» в ГОСТ Р ИСО/МЭК 8824-1. раздел 12 и определяется следующим образом:

ObjcctClassAssignment : : =

objcctclassrcfcrcncc

«.»

ObjcctClass

  • 9.2 Класс информационного объекта — тот. который определяется конструкцией «ObjcctClass». ObjcctClass: : =

DcfinedObjectClass | ObjcctClassDcfn | ParamctrizcdObjcctClass если «ObjcctClass» есть:

а) «DcfinedObjectClass». то определение класса — то же самое, как определение указываемого класса;

б) «ObjcctClasDcfn». то класс определяется как описано в 9.3:

в) «ParamctcrizcdObjcctClass». го класс определяется как описано в ИСО/МЭК 8824-4. 9.2.

  • 9.3 Каждый класс, в конечном счете, определяется «ObjcctClassDcfn»: ObjcctClassDcfn : : =

CLASS

«{» FicldSpcc «.» + «}» WithSvntaxSpcc?

WithSyntaxSpec : : = WITH SYNTAX SyntaxList

Эта нотация позволяет разработчику класса предоставить спецификации поименованных полей, каждая из которых является «FicldSpcc». как определено в 9.4. Факультативно автор определения может предоставить синтаксис определения информационных объектов («SyntaxList»). как указано в 10.5. Автор определения класса может также специфицировать семантику, связанную с определением класса.

  • 9.4 Каждая альтернатива «FicldSpcc» специфицирует и называет одно из полей, которое будет или может быть связано с экземплярами класса.

FicldSpcc : : =

Type FicldSpcc |

FixedTypcValucFicldSpcc |

Variable Гуре Vallie FicldSpcc | FixcdTypcValucSci FicldSpcc | VariablcTypeValucSct FicldSpcc | ObjcctFicldSpcc |

ObjcctSct FicldSpcc

Различные альтернативы для «FicldSpcc» определяются в последующих пунктах.

  • 9.5 Альтернатива «TypeFildSpcc» определяет, что пале является полем типа (см. 3.4.17). TypcFildSpec : : =

t ypef ic I d re fc re псе TypcOptionalitySpec? TypcOptionalitySpec : : = OPTIONAL | DEFAULT Гуре

Имя поля есть «typcficldrefcrcncc». Если продукция «TypcOptionalitySpec» отсутствует, то все определения информационных объектов этого класса обязательно должны включать в себя спецификацию типа для этого поля. Если присутствует «OPTIONAL», то поле может быть оставлено неопределенным. Если присутствует «DEFAULT», то последующий «Туре» обеспечивает установку умолчания для поля, если оно опущено в определении.

  • 9.6 Продукция «FixedTypcValucFicldSpcc» определяет, что поле является полем значения фиксированного-типа (см. 3.4.18).

FixedTypcValucFicldSpcc : : =

valucficldrcfercncc

Tvpc

UNIQUE?

ValucOptionalhvSpcc?

ValueOptionalitySpcc : : = OPTIONAL | DEFAULT Value

Имя поля есть «valucficklrcfcrcncc». Конструкция «Туре» специфицирует тип значения, содержащегося в поле. Продукция «ValueOptionalitySpcc». если присутствует, специфицирует, что значение может быть опушено в определении информационного объекта или. в случае «DEFAULT*, это опускание порождает последующее значение «Value», которое должно быть того же самого типа. Присутствие ключевого слова «UNIQUE» специфицирует, что это поле является полем идентификатора. Если присутствует ключевое слово, то продукция «ValueOptionalitySpcc» нс должна быть альтернативой «DEFAUL T Value*.

  • 9.7 Когда полю идентификатора присваивается значение, то требуется, чтобы эго значение было недвусмысленным в определенном множестве информационных объектов.

  • 9.8 Продукция «VariablcTypcValueFicldSpcc» определяет, что поле является полем значения псременного-типа (см. 3.4.18).

VariablcTypcValueFicldSpcc : : =

value ficldrcfcrcncc

FicldNamc

ValueOptionalitySpcc?

Имя поля есть «valucfieldrefcrencc*. Продукция «FicldNamc* (см. 9.14), которая относится к определяемому классу, должна быть полем типа; поле типа, которое либо находится в том же информационном объекте как поле значения, либо связывается попочкой полей объектов, ссылки на которые появляются в «FicldNamc». должно содержать тин значения. (Все поля связи, ссылки па которые появляются в «FicldNamc», должны быть полями объектов). Продукция «ValucOptiona-litySpcc». если присутствует, специфицирует, что значение может быть опушено в определении информационного объекта или. в случае «DEFAULT», это опускание порождает последующее значение «Value*. Продукция «ValueOptionalitySpcc* должна быть такой, что:

а) если поле типа, обозначенное «FicldNamc», имеет продукцию «TvpeOptionalitySpec* «OPTIONAL». го «ValueOptionalitySpcc* должна также быть «OPTIONAL». и

б) если продукция «ValueOptionalitySpcc» есть «DEFAULT Value*, то поле типа, обозначенное «FicldNamc». должно иметь продукцию «TypcOptionalitySpcc* «DEFAULT Туре», и значение «Value* должно быть значением этого типа.

  • 9.9 Продукция «FixedTypcValueSetFicldSpcc» определяет, что поле является полем множества значений фиксированного-типа (см. 3.4.19):

FixcdTypcValucSetFicldSpcc : : =

valuesetfieldrcfcrcncc

Type

Value SctOptionalitySpcc?

ValucSctOplionalitySpcc : : = OPTIONAL] DEFAULT ValueSet

Примем а ине — Продукция «ValueSet» определяется в ГОСТ Р ИСО/МЭК 8824-1. 15.4. 15.5 и позволяет явно перечислять (в фигурных скобках) множество значений или использовать ссылку «lypcreierence* для подтипа «Туре*.

Имя поля есть «valuesetfieldrcfcrcncc». Конструкция «Туре» специфицирует тип значений, содержащихся в пояс. Продукция «ValucSctOplionalitySpcc». если присутствует, указывает, что поле в определении информационного объекта может быть неспспифипированным или. в случае «DEFAULT», это опускание порождает последующее множество значений «ValueSet», которое должно быть подтипом этого типа.

  • 9.10 Продукция *VariablcTypcValueSet FieldSpcc* определяет, что поле является полем множества значений псременного-типа (см. 3.4.19).

VariableTypeValucSelFieldSpec : : =

valuesetfieldrcfcrcncc

FicldNamc

Value SctOptionalitySpcc?

Имя поля есть «valuesetfieldrcfcrcncc». Продукция «FicldNamc» (см. 9.14). которая относится к определяемому классу, должна быть полем типа: поле типа, которое либо находится в том же информационном объекте как поле множества значений, либо связывается цепочкой полей объектов, ссылки на которые появляются в «FcidlName*. должно содержать тип значений. (Все поля связи, ссылки на которые появляются в «FicldNamc», должны быть полями объектов). Продукция «Valuc-SctOptionalitySpcc*. если присутствует, специфицирует, что множество значений может быть опу-тело в определении информационного объекта или. в случае «DEFAU LТ». это опускание порождает последующее множество значений «ValueSet». Продукция «ValueSeiOptionalitySpec» должна быть такой, что:

а) если поле типа, обозначенное «FicldName». имеет продукцию «TypeOptionalitySpec» «OPTIONAL». то продукция «ValucSctOpiionalitySpcc» должна также быть «OPTIONAL», и

б) если продукция «ValucSctOpiionalitySpcc» есть «DEFAULT ValueSet», то поле типа, обозначенное «FicldName». должно иметь продукцию «TypeOptionalitySpec» «DEFAU LT Туре», а множество значений «ValueSet» должно быть значением этого типа.

  • 9.11 Продукция «ObjectFieldSpec» определяет, что поле является полем информационного объекта (см. 3.4.10).

Object FieldSpec : : =

objecificldrefcrcncc DcfincdObjectClass ObjcctOptionalitySpcc?

ObjcctOptionalitySpcc : : = OPTIONAL | DEFAULT Object

Имя поля есть «objecificldrefcrcncc». Продукция «DcfincdObjectClass» указывает класс объекта, содержащегося в поле (который может быть классом «ObjectClass», определяемым в настоящее время). Продукция «ObjcctOptionalitySpcc». если присутствует, устанавливает, что поле в определении информационного объекта может быть неспсцифицированным или, в случае «DEFAULT», это опускание порождает последующий объект «Object» (см. 11.2). который должен быть «DcfincdObjectClass».

  • 9.12 Продукция «ObjcctSetFieldSpec» определяет, что поле является полем множества информационных объектов (см. 3.4.12).

ObjcctSet FieldSpec : : = objectsctfieldrcfcrcncc DcfincdObjectClass ObjcctSctOptionalitySpcc?

ObjcctSctOptionalitySpcc : : = OPTIONAL | DEFAULT ObjcctSet

Имя поля есть «objcctsctfieldrcfcrcnce». Продукция «DcfincdObjectClass» указывает класс объектов. содержащихся в поле. Продукция «ObjcctSctOptionalitySpcc». если присутствует, устанавливает, что поле в определении информационного объекта может быть нсспепифипированным или. в случае «DEFAULT», это опускание порождает последующее множество объектов «ObjcctSet» (см. 12.2). все объекты которого должны быть «DcfincdObjectClass».

  • 9.13 Конструкция «PrimitivcFieldNainc» используется для идентификации поля относительно класса, содержащего его спецификацию:

PrimitivcFicldNanic : : =

typcficldrefcrcncc | valucficldrefcrcncc | valuesctfieldrcfcrcncc | objecificldrefcrcncc | objectsctfieldrcfcrcncc

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

  • 9.14 Конструкция «FicldName» используется для идентификации поля относительно некоторого класса, который либо непосредственно содержит спецификацию поля, либо имеет цепочку полей связи к содержащему классу. Цепочка указывается списком имен «PrimitivcFicldNanic». разделенных точками.

FicldName : : = PrimitivcFicldName «.» +

  • 9.15 Если имеется любая цепочка (одна или более) спецификаций полей связи (см. 3.4.14) такая, что:

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

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

в) последнее поле определяют, используя класс, который определяется, го. по крайней мере, одна из спецификаций полей должна иметь «ObjcctOptionalitySpcc» или «ObjcciSctOptionaliiySpcc».

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

9.16 Примеры

Расширенная версия класса информационных объектов, описанного неформально как пример в 3.4.9. может определяться следующим образом:

OPERATION : : = CLASS

I

AArgumentType OPTIONAL.

A Result Type A Errors ALinked

OPTIONAL.

ERROR OPTIONAL. OPERATION OPTIONAL.

Arcsuit Returned BOOLEAN DEFAULT TRUE.

Acode

INTEGER UNIQUE

ERROR : : = CLASS

AParameterType OPTIONAL.

Acode INTEGER UNIQUE

Примем а и и я

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

  • 2 Поля, специфицируемые для этого класса. включают два поля типа (AArgumentType и AResultTypc) двух полей множеств объектов (A Errors и & Linked) и двух полей значений (ArestiltRetumed и Acode). последнее является полем идентификатора.

  • 3 Множество информационных объектов, образованное классом OPERATION, должно быть таким, чтобы не было двух объектов в множестве, имеющих одно и то же значение для поля Acode. (То же самое применяется к множествам обьскгов ERROR).

  • 4 Класс информационных объектов OPERATION включает цепочку полей связи, описанную в 9.15. Цепочка длиной единица образуется полем ALinked. которое специфицируется (рекурсивно) с помощью OPERATION. Однако это недопустимо, так как поле обозначено как OPTIONAL.

  • 5 Никакой из этих примеров не содержит продукцию «WithSyntaxSpec». Соответствующие примеры приводятся в 10.13.

10 Список синтаксисов

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

Примечание — Именно для этого (исторически) использовалась главным образом «макронотация» ACM. I до того, как была заменена настоящим стандартом.

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

  • 10.3 Нотация является синтаксической конструкцией «SyntaxList». которая встречается в синтаксической конструкции «ObjectClassDefn*.

  • 10.4 Конструкция «SyntaxList» специфицирует синтаксис .тля определения единственного информационного объекта определяемого класса. Синтаксис появляется как «DcfinedSyntax» в последующих пунктах.

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

а) игнорирования комментариев АСИ. I;

б) трактовки значений символьных строк как лексических признаков:

в) проставления начальной «(». согласовывая вложенные «{» и «}». и завершения конструкции несогласованной «|».

  • 10.5 Конструкция «SyntaxList» специфицирует последовательность «DcfincdSyntaxToken». которая должна появляться в «DcfinedSyntax» (см. 11.5).

SyntaxList :: = «{» TokenOrGroupSpec empty + «}»

TokenOrGroupSpec : : = Required Token | OptionalGroup

OptionalGroup : : = «[» TokcnOrGroupSpec empty + «|»

RequiredToken : : —

Literal |

Primitive Field Name

II p и м еч а н не — Разработчику конструкции «SyntaxList» не предоставляются полные возможности БНФ. Грубо говоря, мощность нотации эквивалента той. которая обычно используется при спецификации синтаксисов командной строки для интерпретаторов команд. Список возможных признаков «RequiredToken» дается в том порядке, в каком они допустимы: один ми несколько последовательных признаков могут быть сделаны факультативными путем заключения их в квадратные скобки.

  • 10.6 При знак «word», используемый как литерал «Literal», не должен быть одним из следующих: BIT

BOOLEAN

CHARACTER

CHOICE

EMBEDDED

END

ENUMERATED

EXTERNAL

FALSE

INSTANCE

INTEGER

INTERSECTION

MINUS-INFINITY

NULL

OBJECT

OCTET

PLUS-INFINITY

REAL

RELATIVE—OID

SEQUENCE

SET

TRUE

UNION

Примечание— Этот список включает только гс (и все гс) зарезервированные слова АСН. 1. которые могут появляться в первом элементе продукции «Туре». «Value*. «ValueSet». -Object* или «ObjectSet*. а также зарезервированное слово «END». Использование других зарезервированных слов АСН. I нс вызывает двусмысленности и разрешается. Когда определяемый синтаксис используется в окружении, в котором -word* является также «typereference* или «objectsetreference-». то их использование в качестве «word» имеет предпочтение.

  • 10.7 Продукция «Literal» специфицирует фактическое включение того литерала «Literal», который является либо «word», либо запятой («.»). в данной позиции в определяемом синтаксисе.

Literal : : =

word |

«.»

  • 10.8 Каждая альтернатива «PrimitivcFicldNamc* специфицирует включение (в данной позиции в новом синтаксисе) продукции «Setting» (см. 11.6) для соответствующего поля.

  • 10.9 Каждая альтернатива «PrimitivcFicldNamc» класса информационных объектов должна появляться ровно один раз.

  • 10.10 Когда в процессе синтаксического разбора встречается альтернатива «OptionalGroup». а следующий элемент АСН. 1 является синтаксически приемлемым в качестве первого элемента АСН. 1 в факультативной группе, го принимается, что эта группа присутствует. Если следующий элемент нс является синтаксически приемлемым в качестве первого элемента АСН. I в факультативной группе, то принимается, что эта группа отсутствует.

П р и м е ч а ине — Для того чтобы предотвратить неожиданные эффекты, разработчики обычно делают первым элементом АСН. 1 в факультативной группе литерал «Literal».

  • 10.11 Экземпляр использования «DefmcdSyntax» является недопустимым, если он нс специфицирует все обязательные поля для класса информационных объектов.

  • 10.12 Для того чтобы обеспечить простой синтаксический разбор нового синтаксиса и предотвратить правильное употребление, следующие дополнительные ограничения накладываются на автора определения нового синтаксиса:

а) требуется, чтобы каждая продукция «OptionalGroup» содержала в себе но крайней мерс одну продукцию «PriniitivcFicldNantc» или «OptionalGroup»:

Примечание 1 — Это помогает предотвратить видимое скопление информаиин. которое не отражается ни в каком поле информационного объекта:

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

в) если продукция «OptionalGroup» начинается с альтернативы «Literal*. то первый признак, следующий за «OptionalGroup», должен также быть «Literal» и отличаться от первого литерала «Literal» во всех непосредственно следующих конструкциях «OptionalGroup».

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

г) всякий раз, когда альтернатива «Literal» присутствует в «DefinedSyntax», которая встречается в «OptionalGroup», альтернатива «Setting» для «PrintitivcFicldName» в этой «OptionalGroup» также должна присутствовать.

Примечания

  • 2 Это ограничение помогает предотвратигь видимое скопление информации. которая нс отражается ни в каком поле информационного объекта.

  • 3 Следующий пример является допустимым синтаксисом, но ограничение г) нс позволяет пользователю писать «LITERAL» без следующих за ним одной или обеих факультативных групп.

(LITERAL |Л Afield] |В &ficld2||

10.13 Примеры

Примеры определений классов из 9.16 могут быть дополнены определяемым синтаксисом для обеспечения дружественного пользователям способа определения экземпляров классов. (Этот определяемый синтаксис используется в примере в 11.10).

OPERATION : : = CLASS

&ArgumcntType

&ResultType &Errors &Linked &rcsult Relumed &operationCodc I WITH SYNTAX


(ARGUMENT (RESULT


OPTIONAL.

OPTIONAL.

ERROR OPTIONAL. OPERATION OPTIONAL. BOOLEAN DEFAULT TRUE. INTEGER UNIQUE

&ArgurncntTypc|

ARcsultTypcj

(RETURN RESULT AresultReturned| (ERRORS AErrorsj

[LINKED &Linkcd|

CODE AopcrationCodc

J ERROR : : = CLASS

&ParametcrTypc &errorCode

I

WITH SYNTAX


OPTIONAL INTEGER UNIQUE


(PARAMETER CODE


&ParantctcrTypc| &errorCodc


11 Определение и присвоение информационного объекта

  • 11.1 Синтаксическая конструкция «ObjcctAssignmcnt» используется для присвоения информационному объекту заданного класса ссылочного имени («objcctrcfcrcncc»). Эта конструкция является одной из альтернатив для «Assignment» в ГОСТ Р ИСО/МЭК 8824-1. раздел 12 и определяется следующим образом:

ObjcctAssignmcnt : : =

objcctrcfcrcnce

DefinedObjcctClass

«: : =»

Object

  • 11.2 Информационный объект, который должен быть класса, указанного «DcfincdObjcctClass». является объектом, определяемым конструкцией «Object».

Object: : =

DeHncdObject |

Object Dcfn |

Object FromObject |

ParamcterizedObjcct

Если «Object» является:

а) «DefincdObject». то объект — тот. который указан;

б) «ObjcctDefn». то объект определяется, как специфицировано в 11.3:

в) «ObjectFromObject». то объект определяется, как специфицировано в разделе 15;

г) «ParameterizcdObjcct», то объект определяется, как специфицировано в ИСО/МЭК 8824-4, 9.2.

  • 11.3 Каждый информационный объект, в конечном счете, определяется «ObjcctDefn».: ObjcctDefn : : =

DefaultSyntax | DcfincdSyntax

Продукция «ObjcctDefn» должна быть альтернативой «DefaultSyntax» (см. 11.4). если определение класса нс содержит «WithSyntaxSpcc». и «DcfincdSyntax» (см. 11.5). если содержит.

  • 11.4 Синтаксис по умолчанию «DefaultSyntax» определяется следующим образом:

DefaultSyntax :: = «{» FicldSctting», «,» * «}»

FicldSctting : : = PrimilfveFieldNamcSetting

Здесь должна быть ровно одна альтернатива «FicldSctting» для каждой конструкции «FicldSpcc» в определении класса, для которой нс указано «OPTIONAL» или «DEFAULT», и должно быть нс более одной альтернативы «FicldSctting» для каждой конструкции «FicldSpcc». Азьтсриативы «Field-Setting» могут появляться в произвольном порядке. Конструкция «PrimitivcFicldNamc» в каждой конструкции «FicldSctting» должна быть именем соответствующей продукции «FicldSpcc». Конструкция «Setting» сопрслслястся в 11.6.

  • 11.5 Определяемый синтаксис «DcfincdSyntax» задастся следующим образом:

DcfincdSyntax :: = «{» DcfincdSyntaxTokcn cmply * «}»

DcfincdSyntaxTokcn : : s

Literal |

Setting

Конструкция «SintaxList» в конструкции «WithSyntaxSpcc» (см. раздел 10) определяет последовательность конструкций «DcfincdSyntaxTokcn». которая должна появляться в конструкции «DcfincdSyntax». Конструкция «Setting» определяется в 11.6; каждое се появление специфицирует установку /Тля некоторого поля информационного объекта. Конструкция «Literal» определена в 10.7; конструкции «Literal» присутствуют для удобочитаемости.

  • 11.6 Конструкция «Setting» специфицирует установку некоторого поля в определяемом информационном объекте.

Setting : : =

Гуре |

Value |

ValucSct |

Object |

ObjcctSct

Если поле является:

  • a) полем типа, то выбирается альтернатива «Туре»;

  • b) полем значения, то выбирается альтернатива «Value»;

  • c) полем множества значений, то выбирается альтернатива «ValucSct»;

  • d) полем информационных объектов, то выбирается альтернатива «Object»;

с) полем множества информационных объектов, то выбирается альтернатива «ObjcctSct».

Примем а и не — Установка ограничивается, как описано в 9.5 — 9.12 и 11.7 — 11.8.

  • 11.7 Установка поля значений псременного-типа должна быть значением типа, заданного соответствующим полем типа того же самого или связанного объекта (то есть нотация значения для открытого типа нс допускается).

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

  • 11.9 Примеры (синтаксис по умолчанию)

Для определений классов информационных объектов из 9.16 (которые нс содержат «WithSyn-taxSpcc») экземпляры классов определяются с использованием «DcfaultSyntax». Например (расширенная версия примера, данного в 3.4.7):

invertMatrix OPERATION : : =

AArgumentType ARcsultTypc

& Errors

AopcrationCodc


Matrix

Matrix {determinant IsZcro} 7

determinandsZero ERROR : {

AerrorCode I

I

  • 11.10 Примеры (определяемый синтаксис)

В 10.13 примеры классов содержат «WithSyntaxSpec» и. таким образом, элементы классов определяются с использованием «DefinedSyntax». Примеры 11.9 могли бы быть написаны следующим образом:

invertMatrix OPERATION : : =

{

ARGUMENT Matrix

RESULT Matrix

ERRORS {dcterminantlsZcro} CODE 7

I

detcmiinantlsZcro ERROR : : =

CODE 1

12 Определение и присвоение множества информационных объектов

  • 12.1 Синтаксическая конструкция «ObjcctSctAssignment» используется для присвоения множеству информационных объектов 'заданного класса, ссылочного имени («objcctsctrcfcrcncc»). Эта конструкция является одной из альтернатив для «Assignment» в ГОСТ Р ИСО/МЭК 8824-1. раздел 12 и определяется следующим образом:

ObjcctSctAssignment : : =

objee t sc t re fere nee

DcfincdObjcctClass

«: : = »

ObjcctSct

  • 12.2 Множество информационных объектов, которые должны быть класса. указанного «Ое-finedObjcctClass». является множеством, определяемым конструкцией «ObjcctSct»

ObjcctSct :: = «{» ObjcctSctSpcc «)»

ObjcctSetSpec : : =

RooiElcnicntSeiSpec |

RooiElcmcntSctSpcc «.»«...* |

. .» |

«. ..»«,» AddidionalElcmentSetSpcc | RooiElcmcntSctSpcc «.» «. . .» «.» Additional ElcmcntSctSpcc

Конструкции «RootElemcntSctSpec» и «AdditionalElcmcntSetSpcc» определены в ГОСТ P ИСО/МЭК 8824-1 и позволяют спспифинировагь множество информационных объектов в терминах информационных объектов или их множеств из управляющего класса. В множестве должен быть хотя бы один информационных объект, если в «ObjcctSetSpec» не задастся третья альтернатива («... »). В последнем случае многоточие указывает, что множество объектов первоначально пусто, но объекты будут динамически добавляться к нему прикладной программой.

Примем а ни я

  • 1 Элементы, на которые указывает «ObjcctSetSpec». являются объединением элементов, указываемых «RootEleinentSetSpec» и -AdditionalElementSetSpec».

  • 2 В отличие от расширяемых типов, таких как множество или последовательность, или ограничений расширяющих подтипов, которые являются статическими относительно множества «понятных» значений, устанавливаемых для каждой версии спецификации АСИ. I. расширяемое множество объектов может динамически расти и сжиматься в пределах данной версии. Действительно, оно может расширяться и сжиматься с данным экземпляром использования прикладной программы по мере того, как программа динамически определяет и уничтожает объекты.

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

  • 12.3 Если расширяемое множество объектов А указывается в определении другого множества объектов В. го его маркер расширения наследуется В.

  • 12.4 Если конструкция «ValucSct FromObjects» (см. раздел 15) определена с использованием расширяемого множества объектов, то результирующее множество значений не наследует маркер расширения от множества объектов.

  • 12.5 Если тип ограничен табличным ограничением (см. 10.3 ИСО/МЭК 8824-3) и множество объектов, указанных в табличном ограничении, является расширяемым, то тип нс наследует маркер расширения от множества объектов. Если тип предназначается для того, чтобы быть расширяемым, то маркер расширения должен быть явно добавлен к его «ElcmcntSctSpccs».

  • 12.6 Нотация для «ObjcctSctElements» следующая:

ObjcctSct Elements : : =

Object |

DcfincdObjcclSct |

ObjcctSct FromObjects |

ParamctcrizedObjcctSct

Элементы, специфицированные этой нотацией. определяются использованной альтернативой следующим образом:

а) если используется альтернатива «Object», то определяется только объект, который также обозначен. Этот объект должен быть объектом управляющего класса;

б) если используется любая из оставшихся альтернатив, то определяются все объекты множества. обозначенные гак же. Объекты должны быть объектами управляющего класса. Если используется альтернатива «DcfincdObjcctSct». то множество объектов есть то. которое указано. Если используется альтернатива «ObjcctSct FromObjects». то множество объектов такое, как определено в разделе 15. Если используется альтернатива «ParamctcrizedObjcctSct». то множество объектов такое, как определено в ИСО/МЭК 8824-4. 9.2.

12.7 Пример

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

MatrixOpcrations OPERATION : : = I

invert Matrix | addMatriccs | subtract Matrices | multiply Mai rices

13 .Ассоциированные таблицы

  • 13.1 Каждый информационный объект или множество информационных объектов могут быть представлены как таблица — его ассоциированная таблица. Каждая ячейка ассоциированной таблицы соответствует установке некоторого поля информационного объекта или является пустой. Совокупность столбцов ассоциированной таблицы определяется классом, к которому объект или объекты относятся: совокупность строк определяется объектом или объектами, которые вызваны.

  • 13.2 Для заданного определения класса совокупность столбцов определяется следующим образом:

а) имеется по одному столбцу для каждой спецификации поля в определении класса. Каждый такой столбец называется соответствующим именем «PrimitivcFicldNamc»:

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

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

  • 13.3 Для данного информационного объекта некоторого класса ассоциированной таблицей является та. которая появляется в результате применения 13.4 к множеству объектов, содержащему только этот объект.

  • 13.4 Для данного множества информационных объектов некоторого класса совокупность строк в ассоциированной таблице является той, которая получается при осуществлении следующей рекурсивной процедуры:

а) сначала имеется одна строка для каждого объекта в множестве объектов. В каждой такой строке ячейки в столбцах, названных именами «PrimitivcFicldNamc». будут соответствовать установке соответствующего паля в объекте, а все другие ячейки будут пустыми:

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

  • 1) создается (подчиненная) ассоциированная таблица содержимого поля связи:

  • 2) далее строка, в которой появилось поле связи, заменяется совокупностью строк по одной для каждой строки подчиненной ассоциированной таблицы. Каждая строка в згой совокупности является такой же. как и замененная, за исключением того, что ячейки из выбранной строки подчиненной ассоциированной таблицы используются для наполнения соответствующих ячеек (прежде пустых), имена «FicldName» которых имеют в качестве префикса «PrimitivcFicldNamc» полей связи.

Примечание — ’Эти правила рекурсивны и такие, что. если информационный объект, прямо или косвенно, является самоссылаюшимся. то процедура не будет завершаться. Это не запрещается. На практике необходимо только знать содержимое ячеек с именами конечной длины, а для них может быть создана конечная процедура.

  • 13.5 Примеры допустимых конструкции «FicldName»

Следующие конструкции «FicldName» относятся к допустимым для ассоциированной таблицы для объектов или множеств объектов класса OPERATION (определенного в 10.13):

AArgumcntTypc

& Errors.A Parameter

& Е iTors. & с rrorCod с

ALinkcd.&ArgumcntType

ALinkcd.&Linkcd. х operationCodc

ALinkcd.ALinkcd.ALinkcd.A Lmked.ALinkcd.AErrors.AErrorCode

Так как класс OPERATION является самоссылаюшимся (из-за паля ALinked). то количество столбцов нс ограничено.

14 Нотация для типа «поле класса объектов»

Тип. который указывается этой нотацией, зависит от категории имени поля. Для различных категорий имен полей в 14.2 — 14.5 специфицируется тип. который они указывают.

  • 14.1 Нотацией для типа «поле класса объектов» (см. 3.4.15) должна быть «ObjectClassFieldType»: ObjcctClassFicldTypc : : =

DcfincdObjcctClass

«.»

FicldName

где «FicldName». определяется как в 9.14 относительно класса, идентифицированного «DcfincdObjcctClass».

  • 14.2 Для поля типа нотация определяет открытый тип. то есть тот. множество значений которого является полным множеством всех возможных значений, которые можно специфицировать. используя АСН. I. Спецификация ограничений, использующая соответствующее множество информационных объектов (см. ИСО/МЭК 8824-3). может ограничивать этот тип конкретным типом. Следующие ограничения на использование данной нотации применяются, когда «FicldName» указывает поле типа.

а) Эта нотация не должна, прямо или косвенно, использоваться в определении типа поля значения или множеств;» значений класса информационных объектов.

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

Примем а н и я

  • 1 Это ограничение обычно можно обойти (явным) тегированием типа.

  • 2 Несмотря на утверждение в ГОСТ Р ИСО/МЭК 8824-1,47.7.3, что концептуально добавляемый элемент для маркера расширения имеет тег. отличный от тегов всех известных типов АСН. 1. открытый тип не должен использоваться, когда требуется, чтобы он имел тег. отличный от тега концептуально добавляемого элемента.

в) Эта нотация нс должна быть неявно тегированной.

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

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

Примечание 4 — Такая конструкция «Туре» обычно ограничивается использованием множества информационных объектов и «AtNotation». как определено в ИСО/МЭК 8824-3. раздел 10. Однако пользователи АСН. 1 должны учитывать, что применение этой нотации без ограничения может привести к двусмысленности в требованиях к реализации, и обычно ее следует избегать.

  • 14.3 Для поля значения фиксированного-типа или множества значений фиксированного-типа нотация обозначает тип «Туре», который появляется в спецификации этого поля в определении класса информационных объектов.

  • 14.4 Для поля значения псрсмснного-типа или множества значений псрсмснного-типа нотация определяет открытый тип. Она используется при тех же ограничениях, оговоренных в 14.2.

  • 14.5 Эта нотация недопустима, если поле является полем объекта или полем множеств;» объектов.

  • 14.6 Нотацией для определения значения этого типа должно быть «ObjcctClassFicldValuc»:

ObjcctClassFicldValuc : : =

OpenType Field Vai |

FixedTypeFieldVal

OpenType Field Vai : : = Type «:» Value

FixedTypeFieldVal : : = BuiliinValue | RefcrcnccdValuc

  • 14.7 Для поля значения или множества значений фиксированного-типа. используемого в «ObjcctClassFicldTypc». должна использоваться альтернатива «FixedTypeFieldVal» и должно быть значение « Гуре», указанное в определении класса информационных объектов.

  • 14.8 Для поля типа, поля значения или множества значений переменного-типа, использованного в «ObjcctClassFicld Typc». должна использоваться альтернатива «OpcnTypcFicldVal». Тип « Гуре» в «OpenTypcFicldVal* должен быть любым типом АСН. 1. а значение «Value» — любым значением того типа.

14.9 Пример использования конструкции «ObjectClassFicldTypc»

Каждый из следующих примеров основывается на примере в 10.13 и показывает: а) возможный «ObjectClassFicldTypc». б) тип. которому тип примера а) эквивалентен (когда используется неограниченно). и в) нотацию для примера значения того типа.

1(a) OPERATION.&opcrationCodc

  • (b) INTEGER

  • (c) 7

2(a) OPE RATION.&ArgumcntTypc

  • (b) открытый тип

  • (c) Матрица:

{{I, о. 0, 0},

(0. 1.0. 0}.

(0, 0. 1, ()}.

(0, 0.0, I}}

  • 3 (a) OPERATION.&Linkcd.&Linked.&Errors.&crrorCodc

  • (b) INTEGER

  • (c) 1

  • 4 (a) OPERATION.&Linkcd.&ArgumcntTypc

  • (b) открытый тип

  • (c) UnivcrsalString: (planckConstant, «and», hamiltonOpcrator}

15 Информация из объектов

15.1 Информация из столбцов ассоциированной таблицы для объекта или множества объектов может быть указана различными способами в нотации «InformationFromObjccts».

InformationFromObjccts : : =

ValucFromObjcct |

ValueSetFromObjects |

TypcFromObject |

Object FromObject |

ObjcctSctFromObjccts

ValucFromObjcct : : =

RcfercnccdObjccts

«.»

Field Name

ValueSetFromObjects : : =

RcfercnccdObjccts

«.»

FicldNamc

TypcFromObject: : =

RcfercnccdObjccts

FicldNamc

Object FromObject : : =

RcfercnccdObjccts

«.»

FicldNamc

ObjcctSctFromObjccts: : =

RcfercnccdObjccts

FicldNamc

RcfercnccdObjccts : : =

DcTincdObjccl | ParamcterizcdObjcct |

DcfincdObjcctSet | ParamctcrizcdObjcctSet

  • 15.2 Эта нотация ссылается на все содержимое указываемого столбца ассоциированной таблицы для объектов «RcfcrcnccdObjccts».

  • 15.3 В зависимости от формы «RefcrcnccdObjccts» и «FicldNamc* данная нотация может обозначать значение, множество значений, тип. объект или множество объектов. Эти пять случаев обозначаются конструкциями «ValueFromObject». «ValucSetFromObjccts». «TypcFromObjcct». «Object FroniObjcct» и «ObjcctSetFromObjccts» соответственно. Каждая такая конструкция является частным случаем нотации «InformationFromObjccts».

  • 15.4 Продукция «InformationFromObjccts» может быть разделена на две части. Первая часть образуется удалением последнего (или единственного) «PrimitiveFieldNamc* и предшествующей точки. Если первая часть обозначает объект или множество объектов, то применяются положения 15.5—15.9. В противном случае нотация недопустима. Вторая часть является последним (или единственным) «PrimitiveFieldNamc».

II р и м с ч а и и с — Применимо в качестве примера следующее определение:

obj.&a.&b.&c.&d

Первая часть в определении есть obj.&a.&b.&c. а вторая часть есть &d.

  • 15.5 В первом столбце таблицы 1 показана первая часть, во втором столбце — вторая часть, определенные в 15.4. В третьем столбце указано, какой из пяти случаев «InformationFromObjccts» (из перечисленных в 15.3) применяется.

Табл и на 1 — Допустимые варианты «InformacionFromObjects»

Первая часть InformationFromObjccts

Вторая часть InformaiionFromObjeus

Конструкция

Объект

Поле значения фиксированного-типа

«ValueFromObject»

Поле значения переменного типа

•VakieFromObject»

Поле множества значений фиксированного-типа

•ValucSetFromObjccts»

Поле множества значений переменного-типа

•ValueSetFromObjects»

Поле типа

«Type FromObiect»

Поле объекта

•Object FromObiect»

Поле множества объектов

•Object Set FromObiect»

Множество объектов

Поле значения фиксированного-типа

♦ValueSetFromObjects»

Поле значения переменного типа

He допускается

Поле множества значений фиксированного-типа

•ValucSetFromObjccts»

Поле множества значений переменного-типа

He допускается

Поле типа

He допускается

Поле объекта

•ObjectSet FromObjects»

Поле множества объектов

«ObjcctSetFromObjccts»

  • 15.6 Если имеются множества объектов, и последнее имя «PrimitiveFieldNamc» идентифицирует поле множества значений фиксированного-типа. то «ValucSetFromObjccts* является объединением выбранных множеств значений.

II р и м е ч а н не — ГОСТ Р ИСО/МЭК 8824-1. 44.6 запрещает определение множества значений, не содержащего значений.

  • 15.7 Если имеются множества объектов, и последнее имя «PrimitiveFieldNamc» идентифицирует поле множества объектов, то «ObjcctSetFromObjccts» является объединением выбранных множеств объектов.

  • 15.8 Как показано в таблице 1. нотация нс допускается, если включается множество объектов, а последнее имя «PrimitiveFieldNamc» идентифицирует поле значения множества значений псрсмен-ного-типа иди поле типа.

  • 15.9 Использование этой нотации нс допускается, если вес ячейки в столбце, который указывается, пусты, за исключением случаев, когда эго используется для непосредственного опрс-деления поля информационного объекта, для которого указано «OPTIONAL» (или «DEFAULT»), что приводит к полю, являющемуся пустым (или принимаемым по умолчанию).

  • 15.10 Пример информации из объектов

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

«ValueFromObject»

invert Matrix.&operationCode

7

determinant IsZero.&errorCode

I

«TypeFromObjeci»

invertMatrix.&ArgumentType Matrix

«ValneSeiFromObject*

invert Matrix.&Errors.&errorCode

Hl

MatrixOpcrations.&opcrationCodc

(7 | и другие}

«ObjectSetFromObjects»

invertMalrix.&Errors

{determinantlsZero}

MatrixOperations.&Errors

{determinantlsZero | и другие}

ПРИЛОЖЕНИЕ A (обязательное)

Класс информационных объектов TYPE-IDENTIFIER

  • A. 1 В данном приложении определяется полезный класс информационных объектов со ссылкой на класс TYPE-IDENTIFIER.

II р и м е ч а в не — Этот класс информационных объектов является простейшим классом, имеющим ровно два поля — поле идентификатора типа OBJECT IDENTIFIER и поле типа, который определяет тип АСН. 1 для передачи всей информации, касающейся любого конкретного объекта этого класса. Он определяется в настоящем стандарте из-за широко распространенного использования информационных объектов этой (|юрмы.

А.2 Класс информационных объектов TYPE-IDENTIFIER определяется как:

TYPE-IDENTIFIER : : = CLASS

I

&id OBJECT IDENTIFIER UNIQUE,

&Tvpe

1

WITH SYNTAX {&Type IDENTIFIED BY &id}

  • A.3 Этот класс определяется как «полезный» класс информационных объектов и доступен в любом модуле без необходимости его импорта.

А.4 П ример

Тело связи MHS может быть определено как:

МIIS-BODY-CLASS : ; = TYPE-IDENTIFIER

g4FaxBodv MHS-BODY-CLASS : : =

(BIT STRING IDENTIFIED BY {mhsbody 3}}

Разработчик протокола мог бы определять компонент для передачи MHS-BODY-CLASS, специфицируя тип «INSTANCE OF MHS-BODY-CLASS*. определенный в С.9.

ПРИЛОЖЕНИЕ В (обязательное)

Определения абстрактных синтаксисов

  • B.I В данном приложении определяется полезный класс информационного объекта. ABSTRACT-SYNTAX. для определения абстрактных синтаксисов.

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

В.2 Класс информационных объектов ABSTRACT-SYNTAX определяется как:

ABSTRACT-SYNTAX : : = CLASS {

&id OBJECT IDENTIFIER.

&Tvpc.

Apropenv BIT STRING (handles-invalid-encodings (0)} DEFAULT

}WITH SYNTAX (

&Tvpe IDENTIFIER BY &id |HAS PROPERTY Apropertyj

I

Поле &id каждого объекта ABSTRACT-SYNTAX является именем абстрактного синтаксиса, а поле &Туре содержит единственный тип АСН. 1. значения которого образуют абстрактный синтаксис. Свойство «handles-invalid-encodings» указывает. что недопустимое кодирование не должно рассматриваться как ошибка во время процесса декодирования, а решение о гом. как рассматривать такое недопустимое кодирование, остается за приложением.

В.З Этот класс информационных объектов определен как •полезный* и з-за его обшей употрсбимосгн. и он доступен в любом модуле без необходимости его импорта.

В.4 Пример

Если определен тип АСН. I. названный XXX-PDU. то может быть определен абстрактный синтаксис, который содержит все значения XXX-PDU. с помощью нотации:

xxx-Abstract-Svnlax ABSTRACT-SYNTAX : : =

(XXX-PDU IDENT11 IED BY {xxx 5}}

Подробные примеры использования iciacca информационных объектов ABSTRACT-SYNTAX см. в ГОСТ Р ИСО/МЭК 8824-1. С. 3.

В.5 Часто бывает, что абстрактный синтаксис определяется в терминах параметризованного типа (как определено в ИСО/МЭК 8824-4). например с параметрами, представляющими границы некоторых компонентов протокола. Такие параметры, ограниченные, как определено в ИСО/МЭК 8824-4. раздел 10. могут быть разрешены при определении абстрактного синтаксиса или переданы дальше как параметры абстрактного синтаксиса.

ПРИЛОЖЕНИЕ С (обязательное)

Тип «экземпляр-из»

С. I В настоящем приложении специфицирована нотация типа и значение для типов «экземпляр-из» (см. 3.4.13). Такие типы могут передавать любые значения из любого информационного объекта в классе информационных объектов, определенного как класс TYPE-IDENTIFIER (см. приложение А), используя присвоение класса информационных объектов (ссылка на класс информационных объектов определяется как часть этой нотации).

С.2 Нотация «InstanceOfType». указанная в ГОСТ Р ИСО/МЭК 8824-1. 16.2 как одна из нотаций, образующих «Туре*, определяется следующим образом:

InsianceOfType : : = INSTANCE OF DefinedObjectClass

Примечание — В ИСО/МЭК 8824-3. раздел 10 установлен способ, в котором этот тип может быть ограничен с использованием «табличного ограничения». При этом значения типа ограничиваются теми, которые представляют некоторое конкретное множество информационных объектов этого класса.

С.З Данная нотация специфицирует тип, который переносит поле &id (OBJECT IDENTIFIER) и значение поля АТуре из любого экземпляра класса «DefinedObjecrClass».

Примечание — Обычно эта конструкция будет ограничиваться множеством объектов, которое будет (но нс обязательно) пустым именем ссылки, как определено в ИСО/МЭК 8824-4. 8.3 — 8.11, с фактическим множеством объектов, определенным в другом месте.

С.4 Все типы «экземпляр-из» имеют тег универсального класса 8.

П р и м е ч а н и е — Это тот же самый универсальный тег. что и для внешнего типа, и использование типа «экземпляр-из» может быть бит-совместимым с внешним типом, когда используются базовые правила кодирования АСН. 1.

С.5 Тип «экземпляр-из» имеет ассоциированный тип «последовательность», который используется для определения значений и подтипов типа «экземпляр-из».

Примечание— Когда эгог гип ограничивается нотацией ограничения ИСО/МЭК 8824-3. го также ограничивается ассоциированный тип «последовательность». Ограничения на ассоциированный тип «последовательность». получающиеся изограничения на тип «экземпляр-из». определены в ИСО/МЭК 8824-3. приложение А.

С.6 Принимается, что ассоциированный тип «последовательность» должен определяться в окружении, в котором установлено тегирование «EXPLICI T TAGS».

С.7 Ассоциированный гип «последовательность» должен быть:

SEQUENCE

type-id < IX’fincdObjcctClass>.&id.

value (OJ <DefinedObjectClass>.ATvpe

1

где «<DefincdObicctClass>» заметается конкретным классом «DefinedObjectClass». использованным в нотации «InsianceOfType».

С.8 Нотацией значения «InstanceOfVakie» для нотации «InstanceOIType» должна быть нотация значения для ассоциированного типа «последовательность».

InsianceOtValue :: = Value

С.9 Пример

Па примере, данном в А.4. можно построить следующий пример.

Тип

INSTANCE OF MHS-BODY-CLASS

имеет ассоциированный тип «последовательность»

SEQUENCE

tvpe-id MIIS-BODY-CLASS.Aid.

value |0| MHS-BODY-CLASS.&Tvpe

1

Пример применения табличного ограничения к этому типу приведен в ИСО/МЭК 8824-3. приложение А.

ПРИЛОЖЕНИЕ D (справочное)

Примеры

  • D.1 Пример использования упрошенного класса OPERATION

Применим следующее vnpotucinioc определение классов информационных объектов OPERATION и ERROR:

OPERATION :: = CLASS

(

&ArgumeniTvpe OPTIONAL.

ARcsultTvpc OPTIONAL.

& Errors ERROR OPTIONAL.

&Linked OPERATION OPTIONAL.

&resul(Reuirned BOOLEAN DEFAULT TRUE.

AopcrationCodc INTEGER UNIQUE

I

WITH SYNTAX

I

(ARGUMENT &ArgumemTvpe|

(RESULT &ResuliType|

| RETURN RESULT &resultReturned|

(ERRORS &Errors|

(LINKED &Linked|

CODE AoperationCode

}

ERROR : : = CLASS

I

&ParamctcrTvpc OPTIONAL

&eiTorCode INTEGER UNIQUE

I

WITH SYNTAX

I

| PARAM ETER &ParameterType|

CODE AerrorCode

}

Можно определить следующее множество объектов, которое содержит два объекта OPERATION: My-Opcrations OPERATION : : = {opcrationA | operationB} operationA OPERATION : : — (

ARGUMENT INTEGER

ERRORS {{PARAMETER INTEGER CODE 1000} | {CODE 1001}}

CODE I

operationB OPERATION : : = {

ARGUMETN lASString

RESULT ERRORS CODE

BOOLEAN

{{CODE 1002} | {PARAMETER IA5String CODE 1003}}

2

Извлечение множества объектов ERROR из приведенного выше множества объектов проводят следующим образом:

My-OpcrationErrors ERROR : : = {My-Opcrations.& Errors}

Результирующее множество объектов есть:

Mv-OperationErrors ERROR : : = {

{ PARAMETER INTEGER CODE 1000} |

{ CODE 1001} |

{ CODE 1002} |

{ PARAMETER lA5String CODE 1003}

Извлечение множества колов ошибок операций проводят следующим образом:

My-OperationErrorCodes INTEGER : : = {My-Operations.&Errors.&errorCode}

Результирующее множество значений есть:

My-OperationErrorCodes INTEGER : : = (1000 | 1001 | 1002 | 1003)

D.2 Пример использования «ObjcctClassFieldTypc»

Продукция «ObjcctClassFieldTypc» может использоваться в спецификации типов, например:

  • - - Типы «ObjcctClassFieldType» извлекаются и з этого класса.

  • - - Только первые пять палей могут быть использованы при и звлечении. EXAMPLE-CLASS : : = CLASS {

ЛТуре Field AfixedType Value Field AvariablcTypeValue Field &FixedTypeValueSet Field &VariableTypeValueSet Field &object Field &ObjcctSctFicld

1 WITH SYNTAX { ITYPE-FIELD | FIXED-TYPE- VALUE-FIELD IF1XED-TYPE-VALUE-SET-FIELD |FIXED-TYPE-VALUE-SET-FIELD [VARIABLE-TYPE-VALUE-SET-FIELD (OBJECT-FIELD (OBJECT-SET-FIELD

I SIMPLE-CLASS : : = CLASS ( &value INTEGER

I WITH SYNTAX { Avalue 1

  • - - Этот тип содержит компоненты, которые специфицированы с

  • - - использованием нотации «ObjectClassFieldType».

  • - - В случае полей типа, полез! значений и множеств значений

  • - - переменпого-типа результирующий тип компонента является

  • - - открытым типом. В случае полей значения и множества значений

  • - - фиксированного-типа результирующим типом компонента является INTEGER.

  • - - Примечание:

  • - - Ограничения опушены из всех последующих

  • - - использований «ObjectClassFieldType»: обычно можно использовать

  • - - ограничения при ссылке на •ObjectClassFieldType».

ExampleType : : = SEQUENCE { openTypeComponent 1 intcgcrComponcnt I ope nT ype Compone n 12 integerComponent2 ope nT vpe Co тропе nt 3 I example Value ExampleType openTypeComponent I integerComponent I openTypeComponent integerComponent2 openTypeComponent3


OPTIONAL. INTEGER OPTIONAL. ATypeFicld OPTIONAL.

INTEGER OPTIONAL,

ATypeField

SIMPLE-CLASS

SIMPLE-CLASS


OPTIONAL. OPTIONAL. OPTIONAL


&TypeField] AfixedTypeValue Field] &variableType Value Field] & FixedT ypc ValucSct Field ] &VariableTypeValueSet Field] &object Field] &ObjectSetField]


EXAMPLE-CLASS.&TvpeField. EXAMPLE-CLASS.&fixcdTypcValuc Field. EXAMPLE-CLASS.&variableTvpeValueField. EXAMPLE-CLASS.&FixedTvpeValueSetField. EXAMPLE-CLASS.&VariableTypeValueSetField


= I BOOLEAN : TRUE,

123.

IA5String: -abedet*. 456.

BIT STRING : '0101010101' В


D.3 Пример использования объектов и множества объектов Пример использования класса объектов, определенного в D.2: objectA EXAMPLE-CLASS : : - { FIXED-TYPE-VALUE-FIELD

FIXED-TYPE-VALUE-SET-FIELD

OBJECT-FIELD OBJECT-SET-FIELD 1


123 (1ВД (П ({2} НЗП


objectB EXAMPLE-CLASS : : = {

TYPE- FIELD

FIXED-TYPE-VALUE-FIELD VARIABLE-TYPE-VALUE-FIELD VARIABLE TYPE-VALUE-SET-FIELD

lASSiring

456

•abc»

(ad** | «e* | «f»}


  • - - Следующее множество объектов содержит два определяемых

  • - - объекта и один встроенный.

ObjectSet EXAMPLE-CLASS : : = {

objeciA | objeciB I


TYPE-FIELD

FIXED-TYPE-VALUE-FIELD


INTEGER

789


VARIABLE-TYPE-VALUE-SET-FIELD (4 | 5 | 6}


  • - - Следующие определения извлекают информацию из объектов и

  • - - множества объектов.

intcgcrValuc INTEGER : : = objcctA.&fixcdTypcValueFicId stringValue IA5String : : = objectB.AvariableTypeValueField IntegerValueSetFromObjectA INTEGER : : - {objectA.&FixedTypeValueSetField} StringValueSet lA5String : : = (object B.&VariableTypeValueSet Field} StringType : : = objectB.ATypeField objectFroinObjectA SIMPLE-CLASS : : = objectA.&objectField ObjectSetFromObjeclA SIMPLE-CLASS : : = {objeciA.&ObjectSeiField} SelOfValucsInObjcclSct INTEGER : : = {ObjectSct.&fixedTjpcValucField} SctOfValucSctsInObjcctSct INTEGER : : = (ObjectSet.&FixcdTvpcValucSctFicld) SelOIObjcctslnObjeclSet SIMPLE-CLASS : : = {ObjectScl.&objectFicld} SctOfObjcctSctsInObjcctSet SIMPLE-CbVSS : : = {ObjcctScL&ObjectSctField}

ПРИЛОЖЕНИЕ E (справочное)

Руководство по модели ACH. 1 расши|>ения множества объектов

Спецификация ACH. I может определять множества информационных объектов, и эти множества объектов с помощью маркера расширения могут быть помечены как расширяемые. Использование маркера расширения с .множествами объектов отличается от использования с типами тем. что часто этот маркер указывает на требование к приложению динамически добавлять объекты в множество или удалять из него, Табличные ограничения и ограничения связи компонентов, которые при этом не удовлетворяются, сами по себе нс рассматриваются как ошибки, если множество объектов является расширяемым. В таких случаях нс является ошибкой, если значение указанного типа не найдено в множестве объектов, но если оно найдено, то должно удовлетворяться ограничение для ссылающегося типа.

ПРИЛОЖЕНИЕ F (справочное)

Сводка нотации

Следующие элементы определены в разделе 7:

objcctclass reference objectreference objectseireference typefieldreference valu etie I d re fe re nee valuesetfieldreference objectsetfieldreference word

CLASS

INSTANCE

SYNTAX

UNIQUE

Следующие элементы определены n ГОСТ P ИСО/МЭК 8824-1 и используются в настоящем стандарте: empty modulcrclcrencc

«• •

ф

ф

♦ л

•I”

ф

DEFAULT

OF

OPTIONAL

WITH

Следующие продукции определены в ГОСТ Р ИСО/МЭК 8824-1 и используются в настоящем стандарте: F.lcmentSetSpcc

Туре

Value

ValueSet

Следующие продукции определены в ИСО/МЭК 8824-4 и используются в настоящем стандарте: ParameterizedObjectClass

Para mete rizedObjectSet

ParameterizedObject

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

DefinedObjectClass : : =

ExternalObjectClassReference | objectclassreference |

UsefulObjectClassReference

ExternalObjectClassReference : : = modulereference «.» objectclassreference

UsefulObjectClassReference : : =

TYPE-IDENTIFIER |

ABSTRACT-SYNTAX

ObjectClassAssigntnent:: = objectclassreference «: : « » ObjectClass

ObjectClass : : = DefinedObjectClass | ObjectClassDefn |

ParameterizedObjectClass

ObjectClassDefn : : = CLASS «{» FieldSpec •.» I Ф WithSyntaxSpec?

FieldSpec : : =

TypeFicldSpec |

FixedTypcValue FieldSpec | VariableTypeValueFieldSpec | FixedTypcValueSet FieldSpec |

VariableTypeValueSet FieldSpec |

ObjectFieldSpec |

ObjectSet FieldSpec

PrimiitiveFieldName :: =

typefieldreference | valuefieldreference | valucsctficldrcfcrcncc | objcclficldreference | objectsetfieldreference FieldName :: = PrimitiveFieldName i TvpeFieldSpec :: = typefieldreference TypeOptionalitySpec? TypeOptionalitySpec : : = OPTIONAL | DEFAULT Type FixedTypcValucFicldSpcc : : = valucficldrcfcrcncc UNIQUE? ValucOptionalitySpcc? ValucOptionalitySpcc : : = OPTIONAL | DEFAULT Value VariableTypeValueFieldSpec : : = valuefieldreference FieldNameValueOptionalitySpec? FixedTypeValueSet FieldSpec : : = valuesetfieldreference TypeValueSetOptionalitySpec? ValucSctOptionalitySpcc : : = OPTIONAL | DEFAULT ValucSct VariableTypeValueSetFieldSpec :: = valuesetfieldreference FieldNameValueSetOptionalitySpec? ObjectFieldSpec : : = objectfieldreference DefinedObjectClassObjectOptionalitySpec? ObjectOptionalitySpec :: = OPTIONAL | DEFAULT Object ObjectSetFieldSpec : : = objectsetfieldreference DefinedObjectClassObjectSetOptionalitySpec? ObjectSetOptionalitySpec : : = OPTIONAL | DEFAULT ObjectSet WithSyntaxSpcc : : = WITH SYNTAX SyntaxList SyntaxList : : = «{» TokenOrGroupSpec empty * TokenOrGroupSpec :: = RequiredToken | OptionalGroup OptionalGroup :: = <[» TokenOrGroupSpec empty + «]» RequiredToken : : = Literal | PrimitiveFieldName Literal: : = word | DefinedObject: : = ExternalObjectReference | objectreference ExternalObjectReference : : = modulereference «.» objectreference ObjectAssignment : : = objectreference DefmedObjectClass «: : = • Object Object : : = DefinedObject | ObjectDefn | ObjectFromObject | ParameterizedObject ObjectDefn : : = DefaultSyntax | DefinedSyntax DelaultSynlax :: = «{» FieldSetting «,» * •}» FieldSetting : : = PrimitiveFieldName Setting DefinedSyntax :: = *{» DefinedSyntaxToken empty * *}» DefinedSyntaxToken : : = Literal | Setting Setting : : = Type | Value | ValueSet | Object | ObjectSet DefinedObjectSet: : = ExternalObjectSeiReference | objectsetreference ExternalObjectSetReference : : = modulereference •.» objectsetreference ObjectSetAssignment: : = objectsetreference DefmedObjectClass «: : =» ObjectSet ObjectSet :: = •{• ObjcclSetSpcc •}» ObjectSctSpec : : =

RooiElemcmSciSpcc |

RootElcmentSetSpec *.» *.. .* |

«...»|

«. . .» •.» AdditionalEIementSetSpec |

RootElementSetSpec «.» «. . .» «.» AdditionalEIementSetSpec

ObjectSelElements : : =

Object | DefinedObjectSet | ObjectSetFromObjects | ParameterizedObjectSet

ObjcctClassFicldTypc : : = DcfincdObjcctClass «.» FieldName

ObjectClassFieldValue : : = OpenTvpeFieldVal | FixedTypeFieldVal

OpcnTypcFicldVal : : = Type •:» Value

FixedTypeFieldVal : : = Value

InformationFromObjects : : — ValueFromObject | ValueSetFromObjects | TypeFromObject | ObjectFromObject | ObjectSet FromObjects

ReferencedObjects : : =

DefinedObject | ParameterizedObject |

DefinedObjectSet | ParameterizedObjectSet

ValueFromObject : : = ReferencedObjects «.» FieldName ValueSetFromObjects :: = ReferencedObjects *.» FieldName TvpcFroinObjcct : : = ReferencedObjects «.» FieldName ObjectFromObject: : = ReferencedObjects FieldName ObjectSetFromObjects : : = ReferencedObjects «.■» FieldName InstanceOfType : : = INSTANCE OF DefinedObjectClass InstanccOfValuc : : = Value

УДК 681.324:006.354 ОКС 35.100.60 П85 ОКСТУ 4002

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

Редактор В. II. Огурцов Технический редактор II.C. Гришанова Корректор Р.А. Ментова Компьютерная верстка Л.А. Круговой

И ]Д. дни. № 02.354 от 14.07.2000. Сдано в набор 17.09.2001. Подписано в печать 31.10.2001. Уел. псч. л. 3.72. Уч.-ни. л. 3.40. Тираж 400 жз. С 2442. Зак. 1032.

И11К Издательство стандартов, 107076. Москва, Колодезный пер.. 14.

http://www.standards.ni e-mail: info#standards, ni

Набрано в Издательстве па ПЭВМ

Филиал И11К Издательство стандартов — тип. “Московский печатник". 103062. Москва. Лялин пер.. 6.

Плр № 080102