The current released content model of <constraintSpec> is ( model.glossLike | model.descLike )*, constraint? The content model of <constraintSpec> in the dev branch is ( model.glossLike | model.descLike | constraint )* Thus the new content allows multiple <constraint>s. As much as I was the one arguing for this in the past,[1] until we're settled on exactly what it *means* to have 2 or more <constraint>s inside a <constraintSpec>, I think we should stick to the old content model. Notes ----- [1] I'm not going to go look it up now, but IIRC I argued w/ Sebastian et al. that we should permit multiple <constraint>s with different @xml:lang= values in a single <constraintSpec> in order to allow for different wording of messages in different natural languages. But IIRC we weren't going to implement this in the Stylesheets, so we didn't allow it in the schema, either. AND, it turns out, ISO Schematron already has its own built-in system for support of multiple languages. There is very little documentation on this feature, as far as I know, but see http://schematron.com/iso/P27.html#GEN39