001    package com.oxygenxml.validate.isoschematron;
002    
003    import com.thaiopensource.validate.IncorrectSchemaException;
004    import com.thaiopensource.validate.Option;
005    import com.thaiopensource.validate.SchemaReader;
006    import com.thaiopensource.validate.SchemaReaderFactory;
007    
008    import javax.xml.transform.TransformerConfigurationException;
009    import javax.xml.transform.TransformerFactory;
010    import javax.xml.transform.TransformerFactoryConfigurationError;
011    
012    public abstract class SchematronSchemaReaderFactory implements SchemaReaderFactory {
013      public SchemaReader createSchemaReader(String namespaceUri) {
014        if (namespaceUri.equals(SchemaReaderImpl.ISO_SCHEMATRON_URI)) {
015          try {
016            return new SchemaReaderImpl(newTransformerFactory());
017          }
018          catch (TransformerFactoryConfigurationError e) { }
019          catch (IncorrectSchemaException e) { }
020          catch (TransformerConfigurationException e) { }
021        }
022        return null;
023      }
024    
025      public Option getOption(String uri) {
026        return SchematronProperty.getOption(uri);
027      }
028    
029      public abstract TransformerFactory newTransformerFactory();
030    }