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

#ifndef __org_relaxng_datatype_Datatype__
#define __org_relaxng_datatype_Datatype__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace relaxng
    {
      namespace datatype
      {
          class Datatype;
          class DatatypeStreamingValidator;
          class ValidationContext;
      }
    }
  }
}

class org::relaxng::datatype::Datatype : public ::java::lang::Object
{

public:
  virtual jboolean isValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0;
  virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0;
  virtual ::org::relaxng::datatype::DatatypeStreamingValidator * createStreamingValidator(::org::relaxng::datatype::ValidationContext *) = 0;
  virtual ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0;
  virtual jboolean sameValue(::java::lang::Object *, ::java::lang::Object *) = 0;
  virtual jint valueHashCode(::java::lang::Object *) = 0;
  virtual jint getIdType() = 0;
  virtual jboolean isContextDependent() = 0;
  static const jint ID_TYPE_NULL = 0;
  static const jint ID_TYPE_ID = 1;
  static const jint ID_TYPE_IDREF = 2;
  static const jint ID_TYPE_IDREFS = 3;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_relaxng_datatype_Datatype__
