// file      : xsd-frontend/semantic-graph/fundamental.hxx
// author    : Boris Kolpackov <boris@codesynthesis.com>
// copyright : Copyright (c) 2005-2008 Code Synthesis Tools CC
// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file

// Note, that this file is automatically generated!
//

#ifndef XSD_FRONTEND_SEMANTIC_GRAPH_FUNDAMENTAL_HXX
#define XSD_FRONTEND_SEMANTIC_GRAPH_FUNDAMENTAL_HXX

#include <xsd-frontend/semantic-graph/elements.hxx>

namespace XSDFrontend
{
  namespace SemanticGraph
  {
    namespace Fundamental
    {
      //
      //
      class Type: public virtual SemanticGraph::Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Type ();
      };


      //
      //
      class Byte: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Byte (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class UnsignedByte: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        UnsignedByte (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Short: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Short (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class UnsignedShort: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        UnsignedShort (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Int: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Int (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class UnsignedInt: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        UnsignedInt (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Long: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Long (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class UnsignedLong: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        UnsignedLong (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Integer: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Integer (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NonPositiveInteger: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NonPositiveInteger (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NonNegativeInteger: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NonNegativeInteger (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class PositiveInteger: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        PositiveInteger (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NegativeInteger: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NegativeInteger (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Boolean: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Boolean (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Float: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Float (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Double: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Double (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Decimal: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Decimal (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class String: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        String (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NormalizedString: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NormalizedString (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Token: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Token (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Name: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Name (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NameToken: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NameToken (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NameTokens: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NameTokens (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class NCName: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        NCName (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Language: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Language (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class QName: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        QName (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Id: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Id (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class IdRef: public virtual Type,
                   public virtual Specialization
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        IdRef (Path const& file,
               SemanticGraph::UnsignedLong line,
               SemanticGraph::UnsignedLong column);
      };


      //
      //
      class IdRefs: public virtual Type,
                    public virtual Specialization
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        IdRefs (Path const& file,
                SemanticGraph::UnsignedLong line,
                SemanticGraph::UnsignedLong column);
      };


      //
      //
      class AnyURI: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        AnyURI (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Base64Binary: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Base64Binary (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class HexBinary: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        HexBinary (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Date: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Date (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class DateTime: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        DateTime (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Duration: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Duration (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Day: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Day (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Month: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Month (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class MonthDay: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        MonthDay (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Year: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Year (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class YearMonth: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        YearMonth (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Time: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Time (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Entity: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Entity (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Entities: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Entities (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };


      //
      //
      class Notation: public virtual Type
      {
      protected:
        friend class Bits::Graph<Node, Edge>;

        Notation (Path const& file,
            SemanticGraph::UnsignedLong line,
            SemanticGraph::UnsignedLong column);
      };
    }
  }
}

#endif  // XSD_FRONTEND_SEMANTIC_GRAPH_FUNDAMENTAL_HXX
