
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_xml_validation_SchemaFactoryLoader__
#define __javax_xml_validation_SchemaFactoryLoader__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace validation
      {
          class SchemaFactory;
          class SchemaFactoryLoader;
      }
    }
  }
}

class javax::xml::validation::SchemaFactoryLoader : public ::java::lang::Object
{

public: // actually protected
  SchemaFactoryLoader();
public:
  virtual ::javax::xml::validation::SchemaFactory * newFactory(::java::lang::String *) = 0;
  static ::java::lang::Class class$;
};

#endif // __javax_xml_validation_SchemaFactoryLoader__
