ГОСТ Р ИСО 10303-11— 2009
Приложение С
(обязательное)
Ограничения на экземпляры,
налагаемые спецификацией интерфейса
При построении интерфейсов со сложными графами подтипов/супертипов. допустимые сложные
объектные типы данных вычисляют посредством расширения правил, определенных в разделе 11 и прило
жении В. Граф подтипов/супертипов. определенный в одной или нескольких других схемах, может быть усечен
для использования в данной схеме посредством указания только тех объектов, которые необходимы в данной
схеме.
В настоящем приложении установлены правила, необходимые для интерпретации графов подтипов/супер-
типов в которых с одним или несколькими объектными типами данных, изначально имеющимися в графе, не
установлены интерфейсы. Такие пропущенные объектные типыданных объектов оставляют пустые места в выра
жениях супертипов. В данном приложении такие пустые места обозначены как <>. Для удаления пустых мест
из выражения супертипа используются следующие преобразования:
ONEOF (А. о , ...) - ONEOF(A,...);
ONEOF
(о ) -
о
;
ONEOF (А) — А ;
A AND
о
- ONEOF(A,A):
A ANDOR <> - А ;
TOTAL_OVER (А .о ....) —ТОТAL_0VER( А,...);
TOTAL_OVER (о ) - <>.
Интерпретация оператора AND должна обеспечить, чтобы те объектные типы данных, которые в исход
ной схеме должны объединяться, не могли бы существовать в данной схеме (обеспечивается оператором
ONEOF(A,A)), если с объектными типами данных, с которыми они должны объединяться, не установлены интер
фейсы.
Результирующее множество допустимых сложных объектных типовданных для схемы, у которой установле
ны интерфейсы с другими схемами, вычисляют по следующему алгоритму:
a) создается полный пул объекте» для данной схемы. Полный пул включает в себя следующие объекты:
1) все объекты, определенных в данной схеме.
2) все объекты, импортированных в данную схему посредством операторов USE и REFERENCE.
3) все объекты, неявно импортированные в данную схему.
П р и м е ч а н и е — Полный пул объектов гложет содержать несколько объектов с одинаковым именем (в
случав их неявного импортирования из разных схем) или может включать в себя один и тот же объект под разны ми
именами (в случае использования оператора USE FROM .. . AS). В первом случав пул будет содержать все
объекты с одинаковыми именами, а во втором — только один объект, несмотря на наличие у него нескольких
имен;
b
) для каждого супертипа из пула объектов сокращается выражение супертипа. посредством удаления всех
ссыпок на объекты, отсутствующие в пуле объектов. Данное преобразование выполняется многократно, чтобы
удалить образовавшиеся пустые места и получить истинное выражение супертипа. в котором присутствуют ссылки
только на объекты из пула объектов:
c) вычисляется результирующее множество в соответствии с алгоритмом, установленным в приложении В,
начиная с шага по перечислению Ь) и с применением преобразований, определенных в начале данного прило
жения. к ограничениям, полученным в результате выполнения шагов по перечислениям Ь), с) и h) алгоритма из
приложения В. раздел В.З.
Сложный объектный тип данных из результирующего множества, содержащий, по крайней мере, один
локально объявленный или импортированный посредством оператора USE объект, может быть реализован
автономно. Сложный объектный тип данных, не содержащий таких объектов, не может быть реализован авто
номно в данной схеме.
П р и м е ч а н и е — Если существует импортированный в явном виде объект, не присутствующий в каком-
либо сложном объектном типе данных из результирующего множества, то такой объект вообще не может быть
реализован. Вероятно, данный объект был импортирован по ошибке.
Примеры
1Для демонстрации данного алгоритма используется схема example (см. пример 1 изприложения В,
раздел В.З).
138