ГОСТ Р ИСО 10303-14—2015
(• Определение отображения ’*)
SCHEMA_MAP example;
REFERENCE FROM source_schema AS SOURCE;
REFERENCE FROM target_schema AS TARGET;
MAP component_map AS c :component;
FROM pd : product_definition;
SELECT
c.description :s pd.description;
c.product_name := pd.product_name;
c.names := FOR EACH pdn_instance
IN EXTENT(’SOURCE_SCHEMA.PRODUCT_DEFINITION_NAME1);
WHERE pdn_instance,of_product_definition :*•; pd;
RETURN pdn_instance.name;
END_MAP;
END SCHEMA MAP;
2
Данный пример иллюстрирует использование вложенных выражений
FOR.
При этом пример 1
изменяется следующим образом:
(* Исходная схема М
SCHEMA source_schema;
ENTITY product_definition;
product_name : STRING;
description : STRING;
END_ENTITY;
ENTITY product_definition_name ;
name : STRING;
of_product_definition :product definition;
END_ENTITY;
ENTITY product_definition_value;
of__pdn : product_definition_name;
val : STRING;
END_ENTITY;
END_SCHEMA;
(■ Целевая схема *)
SCHEMA target_schema;
ENTITY component;
values : SET [0:?] OF SET (0:?] OF STRING;
product_name : STRING;
description : STRING;
END_ENTITY;
END_SCHEMA;
Все экземпляры объекта
product_definition_value,
ссылающиеся на один экземпляр объекта
product_definition_name.
сгруппированы вместе и представлены во внутренней агрегированной
структуре атрибута
component.values.
Это выглядит следующим образом:
(* Определение отображения ’*)
SCHEMA_MAP example;
REFERENCE FROM source_schema AS SOURCE;
REFERENCE FROM target_schema AS TARGET;
MAP component_map AS c :component;
FROM pd :product_definition;
SELECT
c.description := pd.description;
c.product name :« ixi-Procluct_name;
c.values := FOR EACH pdn_instance
IN EXTENT(1SOURCE_SCHEMA.PRODUCT_DEFINITION_NAME’) ;
WHERE pdn_instance.of_product_definitionpd;
RETURN FOR EACH pdv_instance
IN EXTENT(1SOURCE_SCHEMA.PRODUCT_DEFINITION_VALUE’);
WHERE pdv_instance.of_pdnpdn_instance;
RETURN pdv_instance.val;
END_MAP;
END SCHEMA MAP;
39