ГОСТ Р ИСО 13584-42—2012
ENDJF:
IF ( IS013584JEC61360J3ICTIONARY_AGGREGATE_EXTENSION_SCHEMA’
+ ’.ARRAY_TYPE’ IN TYPEOF(typ.type_structure))
THEN
RETURN(FALSE);
ENDJF;
RETURN (TRUE);
ENDJF;
RETURN (UNKNOWN);
ENDJUNCTION; — correct_constraintJype
(*
F.5.4.4 Функция проверки совместимости типа данных и значения (Compalib!e_data_type_and_value)
Функция compatible_dataJype_and_value проверяет тот факт, что тип значения val атрибута primitive_
value совместим с типом, определенным атрибутом dom. Функция возвращает логическое значение, равное
TRUE, если типы совместимы. Это значение равно FALSE, если типы несовместимы. Данная функция возвра
щает значение UNKNOWN, когда тип данных val соответствует типу неуправляемой реализации uncontrolled_
instance_value(cM.
ИСО 13584-24:2003). или если рассматриваемый тип не относится к типам, определенным
стандартной схемой ресурса реализаций IS013584Jnstance_resource_schema.
Примечание — Значение переменной val может существовать и может не существовать.
Пример представления на языке EXPRESS:
*)
FUNCTION compatibie_dataJype_and_value(dom: datajype:
val: primitive_value): LOGICAL:
LOCAL
temp: class_BSU:
set_string: SET OF STRING:= [ ];
setjnteger: SET OF INTEGER:» [];
codeJype: non_quantitative_codeJype;
intjype: non_quantitativeJntJype:
ENDJ.OCAL:
(’ The following express statements deal with simple types *)
IF ( IS013584JNSTANCE_RES0URCE_SCHEMA.INTEGER_VALUE’ IN TYPEOF(val))
THEN
IF(IS013584JEC61360J3ICTIONARY_SCHEMA/ +
NON_QUANTITATIVEJNT_TYPE’ IN TYPEOF (dom))
THEN
setjnteger:» [ ];
intjype:» dom;
REPEAT j:= 1TO SIZEOF(int_type.domain.its_values);
setjnteger:» setjnteger +
int_type.domain.its_values(j).value_code;
END_REPEAT:
RETURN(val IN setjnteger);
ELSE
RETURN((’IS013584JEC61360J3ICTIONARY_SCHEMA.INT_TYPE‘
IN TYPEOF (dom)) OR
((‘ISO13584JEC61360_DICTIONARY_SCHEMA.NUMBER_TYPE’
IN TYPEOF (dom))
AND NOT(CISO13584JEC61360_DICTIONARY_SCHEMA.REAL_TYPE‘
IN TYPEOF (dom))
OR (IS013584JEC61360JDICTIONARY_SCHEMA.RATIONAL_TYPE’
IN TYPEOF (dom)))));
ENDJF;
ENDJF;
IF ( IS013584 INSTANCEJ?ESOURCE_SCHEMA.REALJ/ALUE’ IN TYPEOF(val))
THEN
RETURN((’ISO13584JEC61360_DICTIONARY_SCHEMA.REAL_TYPE’
INTYPEOF (dom)) OR
141