
Careless cut'n paste made my last message more incomprehensible than necessary. Apologies for that: it should have started like this
The content model of <constraintSpec> is currently
<rng:zeroOrMore> <rng:choice> <rng:ref name="model.glossLike"/> <rng:ref name="model.descLike"/> </rng:choice> </rng:zeroOrMore> <rng:optional> <rng:ref name="constraint"/> </rng:optional>
or, in pure ODD,
<alternate minOccurs="0" maxOccurs="unbounded"> <classRef key="model.glossLike"/> <classRef key="model.descLike"/> </alternate> <elementRef key="constraint" minOccurs="0"/>
The fact that this gives rise to an invalid DTD content model (there needs to be a <rng:group> or <sequence> round te whole shebang) isn't really my question though. This is my question:
What on earth is the point of a <constraintSpec> that doesn't contain a <constraint>? Or if the idea was to permit just documentation (but not a specification) for one, why isn't the model just
<rng:zeroOrMore> <rng:choice> <rng:ref name="model.glossLike"/> <rng:ref name="model.descLike"/> <rng:ref name="constraint"/> </rng:choice> </rng:zeroOrMore>
? I think this is a corrigible error, and the <rng:optional>ity of <constraint> should be removed.