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 }