Remove explicit maxOccurs="1" and minOccurs="1" everywhere they occur.
If there is a "list" element containing exclusively multiple elements of a single other type, the "list" element itself should have minOccurs="0", but the contained element should be "1..unbounded", not "0..unbounded". In other words, the list itself is optional, but if it appears, there must be at least one object in it. Remove minOccurs="0" in this case.
For the "outermost" sequence or choice in a complexType, remove minOccurs="0" if it occurs, leaving an implicit minOccurs="1". This is OK, since everything inside the sequence or choice should have minOccurs="0".
Set an explicit minOccurs="0" on any other sequence or choice (i.e. those that are a sub-component of another sequence or a choice). Verify that every item of the sequence is minOccurs="0".
The purpose of the last two rules is for aesthetic reasons within oXygen.
Here are the rules I used:
maxOccurs="1"
andminOccurs="1"
everywhere they occur.minOccurs="0"
, but the contained element should be "1..unbounded", not "0..unbounded". In other words, the list itself is optional, but if it appears, there must be at least one object in it. RemoveminOccurs="0"
in this case.minOccurs="0"
if it occurs, leaving an implicitminOccurs="1"
. This is OK, since everything inside the sequence or choice should haveminOccurs="0"
.minOccurs="0"
on any other sequence or choice (i.e. those that are a sub-component of another sequence or a choice). Verify that every item of the sequence isminOccurs="0"
.The purpose of the last two rules is for aesthetic reasons within oXygen.
Fixes #56