Improve C_OBJECT.effective_occurrences algorithm.


This algorithm ( computes an effective occurrences for a C_OBJECT node, if it is not set locally, based on the owning C_ATTRIBUTE cardinality constraint, if there is one, or else the RM attribute multiplicity.

The current algorithm had the effect of carrying a lower limit of 1 from C_ATTRIBUTE.cardinality or RM attribute multiplicity to the occurrences being computed. However, this is not warranted, since in general, there may be mutiple C_OBJECTs, both under a container and a single-valued attribute. In general, there is no relationship between the lower value of a containing attribute's cardinality and the lower value of a contained C_OBJECT's occurrences. For that reason, the latter is always assumed to be 0, other than when a local occurrences constraint has been defined or inherited.


Thomas Beale

Raised By

Pieter Bos


Affects versions