Used to mark a occurrence constraint which cannot
be easily represented by primitive expressions.
This expression is just a marker, and the exp field
of this instance still contains the precise expression
of the occurrence constraint.
For example, if A is maxOccurs=5 and minOccurs=3,
then the exp field of this instance will be:
A,A,A,(A,A?)?
, the maxOccurs field
will be 5, the minOccurs field will be 3, and
the itemExp field will hold a reference to
A
.
Note that MSV doesn't using this marker by itself.
It is intended to help other applications that use
the AGM of MSV.
Also note that this expression will not
be used in the following cases to avoid excessive allocation
of this expression:
- when maxOccurs=unbounded and minOccurs is 1 or 0
- when maxOccurs=1
Those cases can be expressed quite nicely with existing primitives
So the client shouldn't find it difficuult to process them.
I appreciate any feedback on this issue.