I have been going through the issues list for the Schematron “skeleton” implementation at GitHub and this page will be my summary.


  • #6 Variables in let/@value are not substituted in abstract patterns.
    • TODO: fix.
    • DEFER:  Also add warning a la Oxygen if param name clashes with a variable name in the same abstract pattern?  But we don’t have consistent story on dynamic error messages. Oxygen has a lot of value-adds to add support for problems detected in schema. Would adding some better error message system make upgrading versions more difficult for that kind of vendor?  Perhaps the answer is to put a test into the Schematron schema for Schematron, which would be run on the expanded file just prior to the last step?
  • #12 When sch:name/@value supported instead of sch:name/@path
    • TODO: fix.  Allow both for transition but warn of sch:name/@value.
  • #19 Spurious warnings attempting access children of text and attributes.
    • TODO: fix. This causes confusion, not any erroneous behaviour
  • #26 diagnostic text not appearing in svrl:text tags.
    • TODO: fix (provided)
  • #28 Attribute optimization only checks primary schema, and can kick in problematically if there are sch:include or sch:extends[@href].  However, the current pipeline has iso_dsdl_include.xsl  which should have expanded the include and extends already.
    • TODO: Turn off optimization if sch:include or sch:extends[@href] are found. So the optimization will not be available for systems that use multi-file schemas but do not use the full pipeline.
  • #29 Attribute optimization has node test for global variable. Impossible.
    • TODO: Fix.
  • #30 Default is to not visit texgt nodes. this does not conform to standard
    • TODO:  fix


  • #1 Validate branches of a document with an XPath. Seems reasonable.
    • TODO:  Need to track down code.
  • #3 Re-base sch:include and sch:extends.  Seems reasonable.
    • TODO: track down code or implement
  • #16 line number for text node is useless (Saxon).  Give parent element not -1. Seems reasonable.
    • TODO: implement. Code provided.
  • #18 Skip validation branch under invalid element. Sounds reasonable.
    • TODO: implement as run time option? Do we really want to avoid all branch, or would just skipping the children be enough?
  • #20 support XSLT3. Mainly future
    • TODO: for now, just support QLB for XPath3 that just generates xsl:template/version=”3.0″  only.
    • FUTURE:  QLB for XSLT3 needs thought. We probably want one QLB for non-streaming XSLT3 and one QLB for streaming XSLT3?
  • #21 #ALL phases in sequence, but halt when one fails.
    • TODO. Implement.
  • #22b Sch:span etc do not allow sch:value-of.  This is a shortcoming in the ISO standard
    • TODO. Report. Consider adding special commandline option to allow and support, or allow foreign element?
  • #23 Improved line number for .NET
    • TODO: track down and implement for skeleton for xslt1.
  • #25 Specify marking phase
    • TODO: Implement.  Not highest priority?
  • #27 Is location path too complicated
    • TODO: investigate way to simplify, especially if no namespace. Not high priority.


  • #2 Description of sch:include needs to be corrected.   Actually this was handled by extending sch:extends.
    • TODO: make sure that the implementation handles the case of including external  /sch:schema/xsl:key
  • #15, #22a Handling of rich human text in code schematron and SVRL
    • TODO: make sure that SVRL outputs rich human text


  • #4 document-uri() function. Question answered.
    • CLOSED
  • #5 Possible bug in iso_abstract_expand.xsl.  An abstract pattern must have an ID, otherwise it cannot be referenced.
    • TODO: The implementation needs to warn and not generate the pattern if there is no @id specified. Actually, I think the stylesheet compile needs to fail at this point.
  • #8 Problem running xslt2 schema on xslt1 implementation.
    • CLOSED. Expected behaviour.  Look at error message in iso_svrl_for_xslt1  to see if it can be improved.
  • #10 Transformation result wrong.
    • CLOSED. Cannot replicate. User error.
  • #11 Transformation goes wrong.
    • CLOSED. Cannot replicate with info provided: .sch file is some binary not a schematron schema.
  • #14 When will moved from Google Code?
    • CLOSED. Done.

Bugs/Enhancements for other projects than Schematron skeleton:  #7 xsd2rng.xsl,  #9 Ant schematron, #13 Ant, 17 Schematron in XSD, #24 support ZIP validation for ANT etc