
I agree completely w/ Wendell's overall idea: oXygen should give me, the Schematron author, some control over whether or not <report> and <assert> are treated the same or not. I wouldn't even mind if that control were shifted to the person running oXygen: i.e., a preference check box "treat Schematron <report>s as warnings (instead of errors)". As far as John's two recommended methods, I can't comment authoritatively, as I've never really used phases or flags. But my reading of DSDL is that a flag= would not be correct. A boolean variable with initial value false. A flag is implicitly declared by an assertion or rule having a flag attribute with that name. The value of a flag becomes true when an assertion with that flag fails or a rule with that flag fires. The purpose of flags is to convey state or severity information to a subsequent process. An implementation is not required to make use of this attribute. -- ISO/IEC FDIS 19757-3 5.5.5 So I'm inclined to think role= is more appropriate for this purpose. (And a post of R. Jelliffe I just found seems to back this up.) Although I'm not at all sure it's the right thing.