| |||||||
Раздел 3: Express-XСемантически эквивалентные прикладные объекты и элементы могут фигурировать в разных моделях. Естественно, что авторы этих моделей, работающие независимо друг от друга, могут использовать разные средства для их описания (например, разные идентификаторы). Если же независимо созданные модели потребуется использовать совместно и соединить в некоторой общей модели, то необходимо описать имеющиеся соответствия параметров. Для таких описаний разработан язык Express-X, вошедший в качестве стандарта ISO 10303-14 в лингвистическое обеспечение STEP. Приводимый пример характеризует способ установления соответствия между сущностями и атрибутами двух моделей на языке Express.
SCHEMA Old_data; ENTITY Metadata; faculty : STRING; lecturer : STRING; volume : STRING; annotation : STRING; END_ENTITY; ENTITY Subject; name : STRING; info: Metadata; END_ENTITY; END_SCHEMA; SCHEMA New_data; ENTITY Course; title : STRING; tutor : STRING; preface : STRING; END_ENTITY; END_SCHEMA; SCHEMA_Map Data_Mapping; GLOBAL DECLARE source INSTANCE OF SOURCE_SCHEMA Old_data; DECLARE target INSTANCE OF TARGET_SCHEMA New_data; END_GLOBAL; MAP lecture FOR tgtInstance:target::Course; FROM (srcInstance:source::Subject)WHEN TRUE; BEGIN_MAP tgtInstance.title := srcInstance.name; tgtInstance.tutor := srcInstance.info.lecturer; tgtInstance.preface := srcInstance.info.annotation; END_MAP; END_SCHEMA_MAP; |
СПБГУАП, Санкт-Петербург, 2011 год |