ГОСТ Р ИСО 13584-25—2010
IF(’IS013584JNSTANCE_RESOURCE_SCHEMA.PRIMITIVE_VALUE’ INTYPEOF(val))
AND (N0T(’IS013584_AGGREGATE_VALUE_SCHEMA.’ +
’AGGREGATE_ENTITY_INSTANCE_VALUE’ INTYPEOF(val)))
THEN
RETURN (compatiblejype_and_value(dom. val));
END IF;
IF’IS013584_AGGREGATE_VALUE_SCHEMA.’ +
•AGGREGATE.ENTITYJNSTANCE^ALUE1INTYPEOF(val)
THEN
RETURN(compatible_aggregate_domain_and aggregate_value(dom. val)):
ENDJF;
- - neither primitive value nor aggregate value
RETURN(UNKNOWN):
END_FUNCTION: - - compatible_complete_types_and_value
Г
7.4.2 Функция compatible_aggregate_domain_and_aggrogate_value
Функция compatible_aggregate_domain_and_aggregate_value обеспечивает проверку того, что
элемент dom property_or_data_type_BSU имеет правильный типданныхдля значения val agregate_entity_
instance_value.
Эта функция возвращает значение UNKNOWN (неизвестно), если неизвестен конечный типданных,
ассоциируемый сэлементом dom.
Если в конечном типе данных, ассоциируемом с dom property_or_data_type_BSU. нет ссылки на
объект aggregate_type. функция возвращает значение FALSE (ложно).
Если в конечном типеданных, ассоциируемом с dom proporty_or_data_type_BSU. имеется ссылка
на объект aggregate_type, тоданнаяфункция вызывает функциюcompatible_aggregate_type_and_value,
передавая ей вычисленный тип данных the_data_type и значениеval aggregato_entity_instance_value
в качестве параметров.
Спецификация EXPRESS:
*)
FUNCTION oompatible_aggregate_domain_and_aggregate_value(
dom: property_or_data_type_BSU:
val: aggregate_entity_instance_value): LOGICAL:
LOCAL
the_data_type: datatype;
END_LOCAL;
- - Check the avalability of the final type ofa property or a
- - data type BSU.
IF data_type_typeof(dom) =[]
THEN (‘ the final domain of the type is not available *)
RETURN(UNKNOWN);
ENDJF;
- - Check that the final type of the property or data type BSU
- - is an entityJnstanceJype whose type_name_attribute
- - references the aggregateJype entity
IF(NOT(’ISO13584JEC61360_DICTIONARY_SCHEMA.ENTITYJNSTANCE_TYPE1IN
data_type_typeof(dom)))
THEN
RETURN(FALSE);
END IF;
IF(NOT0SO13584JEC61360JDICTIONARY_AGGREGATE_EXTENSION_SCHEMA’ ♦
’.AGGREGATE TYPE* IN data_typejype_name(dom)))
THEN
RETURN(FALSE);
ENDJF:
- - Compute the final type of the dom property or data jype_BSU
the_dataJype :=datajypejina!Jype(domX1l;
15