001 package com.thaiopensource.validate.schematron;
002
003 import javax.xml.transform.TransformerConfigurationException;
004 import javax.xml.transform.TransformerFactoryConfigurationError;
005 import javax.xml.transform.sax.SAXTransformerFactory;
006
007 import org.apache.log4j.Logger;
008
009 import com.thaiopensource.validate.IncorrectSchemaException;
010 import com.thaiopensource.validate.Option;
011 import com.thaiopensource.validate.SchemaReader;
012 import com.thaiopensource.validate.SchemaReaderFactory;
013
014 public abstract class SchematronSchemaReaderFactory implements SchemaReaderFactory {
015 private static final Logger log4j = Logger.getLogger(SchematronSchemaReaderFactory.class);
016
017 public SchemaReader createSchemaReader(String namespaceUri) {
018 if (namespaceUri.equals(SchemaReaderImpl.SCHEMATRON_URI)) {
019 try {
020 return new SchemaReaderImpl(newTransformerFactory());
021 }
022 catch (TransformerFactoryConfigurationError e) {
023 log4j.error("TransformerFactoryConfigurationError", e);
024 }
025 catch (IncorrectSchemaException e) {
026 log4j.error("IncorrectSchemaException", e);
027 }
028 catch (TransformerConfigurationException e) {
029 log4j.error("TransformerConfigurationException", e);
030 }
031 }
032 return null;
033 }
034
035 public Option getOption(String uri) {
036 return SchematronProperty.getOption(uri);
037 }
038
039 public abstract SAXTransformerFactory newTransformerFactory();
040 }