package sax;

import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import java.io.FileReader;

/**
 * This class is used to load local schema files refrenced with specific names
 * These schema files are specific to the SOAP processor
 *
 */

public class SoapResolver implements EntityResolver
{
  public InputSource resolveEntity (String publicId, String systemId)
  {
	  System.out.println("SystemId " + systemId);
    try
    {
      FileReader reader;
      String stSchemaDir  = "c:/usr/local/home/main/en/XML/schema/soap";
	//       String stSchemaDir  = ServiceApp.getSchemaDir();
      if(systemId.equals("envelope-v01.01.xsd"))
      {
	reader= new FileReader(stSchemaDir + "/envelope-v01.01.xsd");
      }
      else if(systemId.equals("ebxml-v01.01.xsd"))
      {
	reader = new FileReader(stSchemaDir +"/ebxml-v01.01.xsd");
      }
      else if(systemId.equals("xlink.xsd"))
      {
	reader = new FileReader(stSchemaDir +"/xlink-v01.01.xsd");
      }
      else if(systemId.equals("ENResponse-v01.01.xsd"))
      {
	reader = new FileReader(stSchemaDir +"/ENResponse-v01.01.xsd");
      }
      else if(systemId.equals("xml_lang-v01.01.xsd"))
      {
	reader = new FileReader(stSchemaDir +"/xml_lang-v01.01.xsd");
      }
      else if(systemId.equals("xmldsig-core-schema-v01.01.xsd"))
      {
	reader = new FileReader(stSchemaDir +"/xmldsig-core-schema-v01.01.xsd");
      }
      else
      {
	// use the default behaviour
	return null;
      }


      return new InputSource(reader);
    }
    catch(Exception e)
    {
      // use the default behaviour in cas eof Exception
      return null;
    }
  }
}
