cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

The PTC Community email address has changed to community-mailer@ptc.com. Learn more.

Multipe Schematrons for a single doctype

CharlesFlanders
1-Newbie

Multipe Schematrons for a single doctype

With Arbortext 6.0, Editor now supports Schematron validations. However, with the propriety configurations that are part of Arbortext Editor, it's only possible to use a single Schematron for a doctype. This is ludicrous for a complex DTD. Schematron is specifically designed to be flexible and allow for validating partial aspects of a XML instance. Developing XML for different outputs create different kinds of errors to be checked. Writing a single Schematron attempting to throw every possible validation scenario will only confuse writers. Writers need the ability to select different Schematrons based on the validation needs of the current document instance they are creating. Can the Schematron implementation be changed to allow for multiple Schematrons for single doctype?

2 REPLIES 2

I think you would need to implement this as a customisation to Arbortext. Probably not too difficult if you have or find someone who knows what they're doing with ACL, Java, Javascript, XSLT, etc.

If I understand correctly, you want to be able to use different schematron files for different validation needs, not just the one schematron file designated as the doc type's schematron. If that is correct, you should be able to use the doc_type_schematron_file() and/or validate_against_schematron() ACL functions.

I just recently implemented a schematron validation system with a single schematron file where some of the validations will only run at the user's discretion (from a toolbar button) and some that run both from the toolbar button and automatically when completeness checks are done. In the schematron file you can specify groups of validations that should occur together (see the description for the iso:phase element), and then call the validate_against_schematron() function passing it the ID of the specific phase you want to use.