Thanks for piquing my interest in unions.
> <simpleType name="allNNI">
> <annotation><documentation xml:lang="en">
> for maxOccurs</documentation></annotation>
> <union memberTypes="nonNegativeInteger">
> <simpleType>
> <restriction base="NMTOKEN">
> <enumeration value="unbounded"/>
> </restriction>
> </simpleType>
> </union>
> </simpleType>
Section 5.1.3 of the Datatypes spec says, "Either the memberTypes
[attribute] must be non-empty or there must be at least one simpleType
[child]." The documentation for the union element in the datatypes schema
has a similar comment. Your example above (which I also found in the schema
for schemas) seems to be violating this constraint.
Curiously, Section 2.5.1.3 of the Datatypes spec shows a different example
which it claims comes from the "XML Schema itself".
<attributeGroup name="occurs">
<attribute name="minOccurs"
type="nonNegativeInteger" use="default" value="1"/>
<attribute name="maxOccurs">
<simpleType>
<union>
<simpleType>
<restriction base='nonNegativeInteger'/>
</simpleType>
<simpleType>
<restriction base='string'>
<enumeration value='unbounded'/>
</restriction>
</simpleType>
</union>
</simpleType>
</attribute>
</attributeGroup>
This example looks correct according to my interpretation.
But I guess my real question is this: Why aren't the examples in the
datatypes spec and the actual declarations in the Schema for Schemas in
sync? Does this mean you're not using a cutting edge XInclude implementation
to suck in the examples from the schema into the spec every time you
"build"?
Shame on you guys. :-)
Jason.