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

#ifndef __gnu_xml_validation_relaxng_DataPattern__
#define __gnu_xml_validation_relaxng_DataPattern__

#pragma interface

#include <gnu/xml/validation/relaxng/Pattern.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace validation
      {
        namespace relaxng
        {
            class DataPattern;
            class Pattern;
        }
      }
    }
  }
  namespace org
  {
    namespace relaxng
    {
      namespace datatype
      {
          class Datatype;
          class DatatypeLibrary;
      }
    }
  }
}

class gnu::xml::validation::relaxng::DataPattern : public ::gnu::xml::validation::relaxng::Pattern
{

public: // actually package-private
  DataPattern();
  ::org::relaxng::datatype::Datatype * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) type;
  ::org::relaxng::datatype::DatatypeLibrary * datatypeLibrary;
  ::java::util::List * params;
  ::gnu::xml::validation::relaxng::Pattern * exceptPattern;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_validation_relaxng_DataPattern__
