diff --git a/mod/schematron/src/main/com/thaiopensource/validate/schematron/NewSaxonSchemaReaderFactory.java b/mod/schematron/src/main/com/thaiopensource/validate/schematron/NewSaxonSchemaReaderFactory.java index 64024fb3f..b057c5f4b 100644 --- a/mod/schematron/src/main/com/thaiopensource/validate/schematron/NewSaxonSchemaReaderFactory.java +++ b/mod/schematron/src/main/com/thaiopensource/validate/schematron/NewSaxonSchemaReaderFactory.java @@ -19,5 +19,6 @@ public void initTransformerFactory(TransformerFactory factory) { } factory.setAttribute(FeatureKeys.LINE_NUMBERING, Boolean.TRUE); factory.setAttribute(FeatureKeys.VERSION_WARNING, Boolean.FALSE); + factory.setErrorListener(new SilencingErrorListener()); } } diff --git a/mod/schematron/src/main/com/thaiopensource/validate/schematron/SilencingErrorListener.java b/mod/schematron/src/main/com/thaiopensource/validate/schematron/SilencingErrorListener.java new file mode 100644 index 000000000..08d8f3366 --- /dev/null +++ b/mod/schematron/src/main/com/thaiopensource/validate/schematron/SilencingErrorListener.java @@ -0,0 +1,20 @@ +package com.thaiopensource.validate.schematron; + +import net.sf.saxon.lib.StandardErrorListener; +import net.sf.saxon.trans.XPathException; + +import javax.xml.transform.TransformerException; + +public class SilencingErrorListener extends StandardErrorListener { + @Override + public void warning(TransformerException exception) + throws TransformerException { + if (exception instanceof XPathException) { + XPathException xe = (XPathException) exception; + if ("SXWN9000".equals(xe.getErrorCodeLocalPart())) { + return; + } + } + super.warning(exception); + } +}