В данном разделе установлены интерфейсы между экземплярами EXPRESS-I и EXPRESS-моделями вместе с интерфейсами между конструкциями EXPRESS-I.
10.1 Интерфейс экземпляра схемы
Синтаксис: |
109i SchemalnstanceBlock = SCHEMA_DATA Schemald; [ SchemalnstanceBody ] END_SCHEMA_DATA `;` . |
108i Schemald = schema_ref . |
152 schema_ref = < как в EXPRESS > . |
Предполагается, что имеется связанная EXPRESS-схема (или, что то же самое, EXPRESS-G-схема); тогда Schemald ссылается на имя этой EXPRESS-схемы. Это значит, что тело экземпляра данных EXPRESS-I-схемы содержит экземпляры данных определений из идентифицированной EXPRESS-схемы. Оно не должно содержать экземпляров данных определений, являющихся внешними по отношению к данной EXPRESS-схеме.
Примечание - Ссылки на схемы, определяемые в языках, отличных от EXPRESS или EXPRESS-G, не являются предметом рассмотрения в настоящем стандарте. Тем не менее Schemald можно рассматривать как ссылку на схему, определяемую на языке, отличном от EXPRESS.
10.2 Ссылка на схему
Ссылка на схему позволяет идентифицировать конкретную EXPRESS-схему вместе с конкретными определениями внутри этой схемы.
Синтаксис: |
112i SchemaReferenceSpec = WITH schema_ref [ USING `(` resource_ref { `,` resource_ref } `)` ] `;` . |
152 schema_ref = < как в EXPRESS > . |
275 resource_ref = < как в EXPRESS > . |
Конструкция schema_ref, следующая за ключевым словом WITH, обозначает конкретную EXPRESS-схему. Конкретные объявления, представляющие интерес в данной EXPRESS-схеме, обозначаются в списке, следующем за ключевым словом USING.
Отсутствие списка USING означает, что все определения внутри обозначенной EXPRESS-схемы являются доступными.
Примечание - Ссылка на схему действует аналогично EXPRESS-оператору USE:
Пример 45 - Задано следующее EXPRESS-определение:
SCHEMA a_schema;
ENTITY entity1; | ... END_ENTITY; | |
ENTITY entity2; | ... END_ENTITY; | |
ENTITY entity7; | ... END_ENTITY; | |
TYPE type19 = | ... END_TYPE; | |
TYPE type21 = | ... END_TYPE; |
END_SCHEMA;
Тогда следующая конструкция обозначает два объекта и один тип из схемы a_schema.
WITH a_schema USING (entity1, entity7, type21);
10.3 Ссылки на данные контекста
Элементы из CONTEXT могут быть импортированы в TEST_CASE, а фактические значения могут быть заданы для формальных параметров в CONTEXT.
Синтаксис: |
141i UseContextBlock = CALL ContextRef `;` UseContextBody END_CALL `;` . |
36i ContextRef = Contextld . |
142i UseContextBody = [ ImportSpec ] [ ParameterSpec ] . |
84i ImportSpec = IMPORT `(` { Assignment } `)` `;` . |
47i Assignment = variable_id `:=` SelectablelnstanceRef `;` . |
101i ParameterSpec = WITH `(` { ActualParameter } `)` `;` . |
113i SelectablelnstanceRef = EntitylnstanceRef | EnumerationlnstanceRef | SelectlnstanceRef | TypelnstanceRef . |
Конкретный CONTEXT обозначается посредством оператора CALL.