Source : ISO 10303-54
SCHEMA classification_schema;
REFERENCE FROM
group_schema -- ISO 10303-41
(group);
REFERENCE FROM
management_resources_schema -- ISO 10303-41
(classification_assignment);
TYPE classification_select =
EXTENSIBLE
SELECT;
END_TYPE;
TYPE complete_membership_select =
EXTENSIBLE
SELECT;
END_TYPE;
ENTITY class
SUBTYPE OF (group);
END_ENTITY;
ENTITY class_by_extension
SUBTYPE OF (class);
END_ENTITY;
ENTITY class_by_intension
SUBTYPE OF (class);
END_ENTITY;
ENTITY classification
SUBTYPE OF (classification_assignment);
classified : classification_select;
DERIVE
classifier : class := SELF\classification_assignment.assigned_class;
END_ENTITY;
ENTITY complete_membership
SUBTYPE OF (classification_assignment);
DERIVE
containing_set : class := SELF\classification_assignment.assigned_class;
END_ENTITY;
ENTITY complete_membership_of_empty_set
SUBTYPE OF (complete_membership);
END_ENTITY;
ENTITY complete_membership_of_non_empty_set
SUBTYPE OF (complete_membership);
members : SET[1:?] OF complete_membership_select;
END_ENTITY;
SUBTYPE_CONSTRAINT classification_or_complete_membership FOR classification_assignment;
ONEOF (classification,
complete_membership);
END_SUBTYPE_CONSTRAINT;
END_SCHEMA; -- classification_schema