001 package com.thaiopensource.validate.rng; 002 003 import com.thaiopensource.util.PropertyMap; 004 import com.thaiopensource.validate.auto.SchemaReceiver; 005 import com.thaiopensource.validate.auto.SchemaReceiverFactory; 006 import com.thaiopensource.relaxng.impl.SchemaReceiverImpl; 007 import com.thaiopensource.relaxng.parse.sax.SAXParseReceiver; 008 import com.thaiopensource.validate.ValidateProperty; 009 import com.thaiopensource.validate.Option; 010 import com.thaiopensource.xml.sax.XMLReaderCreator; 011 import com.thaiopensource.xml.util.WellKnownNamespaces; 012 013 import org.xml.sax.EntityResolver; 014 import org.xml.sax.ErrorHandler; 015 016 public class SAXSchemaReceiverFactory implements SchemaReceiverFactory { 017 public SchemaReceiver createSchemaReceiver(String namespaceUri, 018 PropertyMap properties) { 019 // XXX allow namespaces with incorrect version 020 if (!WellKnownNamespaces.RELAX_NG.equals(namespaceUri)) 021 return null; 022 XMLReaderCreator xrc = ValidateProperty.XML_READER_CREATOR.get(properties); 023 ErrorHandler eh = ValidateProperty.ERROR_HANDLER.get(properties); 024 EntityResolver er = ValidateProperty.ENTITY_RESOLVER.get(properties); 025 return new SchemaReceiverImpl(new SAXParseReceiver(xrc, eh, er), properties); 026 } 027 028 public Option getOption(String uri) { 029 return RngProperty.getOption(uri); 030 } 031 }