#ifndef _Storage_Schema_HeaderFile_
#include <Storage_Schema.hxx>
#endif
#ifndef _Storage_BaseDriver_HeaderFile_
#include <Storage_BaseDriver.hxx>
#endif
#ifndef _Storage_CallBack_HeaderFile_
#include <Storage_CallBack.hxx>
#endif
#ifndef _Storage_Macros_HeaderFile_
#include <Storage_Macros.hxx>
#endif
class Handle_PDF_Data;
class Handle_PDF_Attribute;
class Handle_PDF_TagSource;
class Handle_PDF_Reference;
class Handle_PDF_HAttributeArray1;
class PDF_FieldOfHAttributeArray1;
class Handle_PDataStd_Name;
class Handle_PDataStd_Comment;
class Handle_PDataStd_Integer;
class Handle_PDataStd_IntegerArray;
class Handle_PDataStd_IntegerArray_1;
class Handle_PDataStd_Real;
class Handle_PDataStd_RealArray;
class Handle_PDataStd_RealArray_1;
class Handle_PDataStd_ExtStringArray;
class Handle_PDataStd_ExtStringArray_1;
class Handle_PDataStd_TreeNode;
class Handle_PDataStd_Position;
class Handle_PDataStd_Point;
class Handle_PDataStd_Axis;
class Handle_PDataStd_Plane;
class Handle_PDataStd_Geometry;
class Handle_PDataStd_Constraint;
class Handle_PDataStd_Placement;
class Handle_PDataStd_PatternStd;
class Handle_PDataStd_Expression;
class Handle_PDataStd_Relation;
class Handle_PDataStd_Variable;
class Handle_PDataStd_NoteBook;
class Handle_PDataStd_UAttribute;
class Handle_PDataStd_Directory;
class Handle_PDataStd_Shape;
class Handle_PDataStd_Tick;
class Handle_PDataStd_IntegerList;
class Handle_PDataStd_RealList;
class Handle_PDataStd_ExtStringList;
class Handle_PDataStd_BooleanList;
class Handle_PDataStd_ReferenceList;
class Handle_PDataStd_BooleanArray;
class Handle_PDataStd_ReferenceArray;
class Handle_PDataStd_ByteArray;
class Handle_PDataStd_ByteArray_1;
class Handle_PDataStd_NamedData;
class Handle_PDataStd_AsciiString;
class Handle_PDataStd_IntPackedMap;
class Handle_PDataStd_IntPackedMap_1;
class Handle_PDataStd_HArray1OfHAsciiString;
class PDataStd_FieldOfHArray1OfHAsciiString;
class Handle_PDataStd_HArray1OfHArray1OfInteger;
class PDataStd_FieldOfHArray1OfHArray1OfInteger;
class Handle_PDataStd_HArray1OfHArray1OfReal;
class PDataStd_FieldOfHArray1OfHArray1OfReal;
class Handle_PDataStd_HArray1OfByte;
class PDataStd_FieldOfHArray1OfByte;
class Handle_PNaming_Name;
class Handle_PNaming_NamedShape;
class Handle_PNaming_Naming;
class Handle_PNaming_HArray1OfNamedShape;
class PNaming_FieldOfHArray1OfNamedShape;
class Handle_PDocStd_Document;
class Handle_PDocStd_XLink;
class Handle_PCDM_Document;
class Handle_Standard_Persistent;
class Standard_Storable;
class Handle_PColStd_HArray1OfInteger;
class Handle_PCollection_HAsciiString;
class Handle_PCollection_HExtendedString;
class Handle_PColStd_HArray1OfReal;
class Handle_PColStd_HArray1OfExtendedString;
class Standard_GUID;
class gp_Pnt;
class Handle_PColStd_HArray2OfInteger;
class Handle_PTopoDS_HArray1OfShape1;
class PColStd_FieldOfHArray1OfInteger;
class DBC_VArrayOfCharacter;
class DBC_VArrayOfExtCharacter;
class PColStd_FieldOfHArray1OfReal;
class PColStd_FieldOfHArray1OfExtendedString;
class gp_Ax1;
class gp_Ax2;
class gp_Trsf;
class gp_Vec;
class gp_XYZ;
class PColStd_FieldOfHArray2OfInteger;
class PTopoDS_Shape1;
class PTopoDS_FieldOfHArray1OfShape1;
class gp_Dir;
class gp_Ax3;
class gp_Mat;
class gp_Trsf2d;
class Handle_PTopoDS_TShape1;
class PTopLoc_Location;
class gp_Ax2d;
class gp_Mat2d;
class gp_Pnt2d;
class gp_Vec2d;
class gp_XY;
class Handle_PTopLoc_Datum3D;
class Handle_PTopLoc_ItemLocation;
class gp_Dir2d;
// File generated by Schema (Schema)
//
//                     Copyright (C) 1991 - 2000 by  
//                      Matra Datavision SA.  All rights reserved.
//  
//                     Copyright (C) 2001 - 2004 by
//                     Open CASCADE SA.  All rights reserved.
// 
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//  
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.

#ifndef _StdLSchema_HeaderFile
#define _StdLSchema_HeaderFile

#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
#ifndef _Storage_Macros_HeaderFile
#include <Storage_Macros.hxx>
#endif
#ifndef _Storage_stCONSTclCOM_HeaderFile
#include <Storage_stCONSTclCOM.hxx>
#endif
#ifndef _Handle_Storage_Schema_HeaderFile
#include <Handle_Storage_Schema.hxx>
#endif

class Handle_Standard_Type;
Standard_EXPORT Handle_Standard_Type& StdLSchema_Type_();
class Standard_Transient;
class Handle(Storage_Schema);

class StdLSchema;

class Handle(StdLSchema) : public Handle(Storage_Schema) {
  public:
    Handle(StdLSchema)():Handle(Storage_Schema)() {} 
    Handle(StdLSchema)(const Handle(StdLSchema)& aHandle) : Handle(Storage_Schema)(aHandle) 
     {
     }

    Handle(StdLSchema)(const StdLSchema* anItem) : Handle(Storage_Schema)((Storage_Schema *)anItem) 
     {
     }

    Handle(StdLSchema)& operator=(const Handle(StdLSchema)& aHandle)
     {
      Assign(aHandle.Access());
      return *this;
     }

    Handle(StdLSchema)& operator=(const StdLSchema* anItem)
     {
      Assign((Standard_Transient *)anItem);
      return *this;
     }

    StdLSchema* operator->() 
     {
      return (StdLSchema *)ControlAccess();
     }

    StdLSchema* operator->() const 
     {
      return (StdLSchema *)ControlAccess();
     }

   ~Handle(StdLSchema)(){};

   static const Handle(StdLSchema) DownCast(const Handle(Storage_Schema)& AnObject) 
   {
     Handle(StdLSchema) _anOtherObject;

     if (!AnObject.IsNull()) {
        if (AnObject->IsKind(STANDARD_TYPE(StdLSchema))) {
          _anOtherObject = Handle(StdLSchema)((Handle(StdLSchema)&)AnObject);
        }
     }

     return _anOtherObject ;
   }
};

#ifndef _Storage_CallBack_HeaderFile_
#include <Storage_CallBack.hxx>
#endif
#ifndef _Storage_BaseDriver_HeaderFile_
#include <Storage_BaseDriver.hxx>
#endif

class StdLSchema : public Storage_Schema {
public:

  Storage_DECLARE_SCHEMA_METHODS(StdLSchema)

  Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const 
  { 
    return (STANDARD_TYPE(StdLSchema) == AType || Storage_Schema::IsKind(AType)); 
  }

  const Handle(Standard_Type)& DynamicType() const 
  { 
    return STANDARD_TYPE(StdLSchema) ; 
  }
};

#endif
