В данном разделе определены конструкции, позволяющие элементам, объявленным в одной схеме, быть видимыми в другой схеме. Существуют две спецификации интерфейсов (USE и REFERENCE), обеспечивающие видимость элементов. Спецификация интерфейса USE позволяет элементам, объявленным в одной схеме, получить независимую реализацию в схеме, в которой определена конструкция USE.
Экземпляр объекта считается независимым, если он не играет роль, предписанную атрибутом любого другого экземпляра объекта, то есть функция ROLESOF (см. 15.20), примененная к независимому экземпляру объекта, выдаст в качестве результата пустое множество. Тип данных объекта, объявленного в схеме локально или с использованием интерфейса USE, может быть реализован независимо или играть роль, предписанную атрибутом объекта в данной схеме.
Объект, объявленный посредством интерфейса REFERENCE или неявного интерфейса, должен быть реализован только для выполнения роли, предписанной атрибутом реализации объекта в схеме.
Синтаксис: |
Внешним объявлением является любое объявление (например, объекта), присутствующее во внешней схеме (в любой схеме, отличной от данной схемы).
Другое различие между двумя формами интерфейса состоит в том, что интерфейс USE применим только к именованным типам данных (объектным типам данных и определенным типам данных), а интерфейс REFERENCE применим ко всем объявлениям, за исключением правил и схем.
Внешнему элементу языка EXPRESS в данной схеме может быть присвоено новое имя. На внешний элемент языка EXPRESS в данной схеме следует ссылаться по его новому имени, если оно задано после ключевого слова AS.