ГОСТ Р ИСО 10303-21-2002
ПРИЛОЖЕНИЕ F
(обязательное)
Множество EXPRESS-схем в структуре обмена
В структуре обмена с несколькими секциями данных могут быть приведены ссылки на экземпляры
объектов, определенные в секциях данных по различным EXPRESS-схемам. При реализации ссылок между
схемами возникают два вопроса: 1) какие ссылки можно считать верными?: 2) какие экземпляры следует считать
правильными, основанными на конкретной схеме, при определении схематического соответствия структуре
обмена.
F. 1 Допустимые ссылки
В настоящем подразделе описаны два метода определения правильности ссылок между экземплярами
объектов при установлении схематического соответствия для структуры обмена. Можно использовать другие
методы, не определенные в настоящем стандарте.
П р и м е ч а н и е—В данном подразделе описаны способы, посредством которых автор документов,
определяющих EXPRESS-схемы, может гак же задать правильные ссылки между двумя или несколькими
схемами.
При определении схематического соответствия реализация может ссылаться на конкретный документ,
описывающий даннуюсхему врамках определений на языке EXPRESS, сокращенных имен идругихтребований
или ограничений. Если заданную схему используют в сочетании с другими, данный документ так же должен
определять правильность ссылок между этими схемами.
Если предполагается, что данное определение делается однократно н охватывает ряд схем, не следует
дополнительно определять верность ссылок в конкретной структуре обмена.
F.1.1 Метод спецификам и и интерфейса на языке EXPRESS
При использовании данною метода ссылки междуэкземплярами объектов различных схем должны быть
заданы посредством определения интерфейса на языке EXPRESS в соответствии с разделом 11 ГОСТ Р ИСО
10303-11.
На экземпляр типа, заданный в схеме, можно ссылаться через экземпляр типа, определенный в другой
схеме, если этот тип связан с последней посредством конструктивов USE или REFERENCE.
Пример —Рассматриваются две схемы и основанная на них структура обмена.
SCHEMA base;
ENTITY а;
range : REAL:
END.ENTITY;
ENTITY b;
name : STRING;
END.ENTITY;
END_SCHEMA;
SCHEMA extension;
USE FROM base (a. b);
ENTITY c;
addrcsNcd item : b;
adda’ss : STRING;
END_ENTITY:
RULE a rangc_positive FOR (a):
WHERE
WRI: SI2EOF (QUERY (ins* <* a | inst.range < 0)) - 0;
END_RULE;
END_SCHEMA:
ISO-10303-21;
HEADER:
FILE, SCHEMA (( BASE’. ‘EXTENSION’));
ENDSEC;
DATA (’ONE’. (‘BASE’));
#1 - A<-3.5);
»2 = BfSam Smith’);
42