00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file EntityResolver.h 00006 * 00007 * EntityResolver.h,v 1.7 2005/04/20 16:22:53 ossama Exp 00008 * 00009 * @author Nanbor Wang <nanbor@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 #ifndef _ACEXML_ENTITYHANDLER_H_ 00013 #define _ACEXML_ENTITYHANDLER_H_ 00014 00015 #include /**/ "ace/pre.h" 00016 #include "ACEXML/common/ACEXML_Export.h" 00017 00018 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00019 #pragma once 00020 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00021 00022 #include "ACEXML/common/Env.h" 00023 #include "ACEXML/common/InputSource.h" 00024 #include "ACEXML/common/SAXExceptions.h" 00025 00026 /** 00027 * @class ACEXML_EntityResolver EntityResolver.h "ACEXML/common/EntityResolver.h" 00028 * 00029 * @brief ACEXML_EntityResolver 00030 * 00031 * If a SAX application needs to implement customized handling for 00032 * external entities, it must implement this interface and register an 00033 * instance with the SAX driver using the setEntityResolver method. 00034 * 00035 * The XML reader will then allow the application to intercept any 00036 * external entities (including the external DTD subset and external 00037 * parameter entities, if any) before including them. 00038 * 00039 * Many SAX applications will not need to implement this interface, 00040 * but it will be especially useful for applications that build XML 00041 * documents from databases or other specialised input sources, or for 00042 * applications that use URI types other than URLs. 00043 */ 00044 class ACEXML_Export ACEXML_EntityResolver 00045 { 00046 public: 00047 00048 virtual ~ACEXML_EntityResolver (void); 00049 00050 /** 00051 * Allow the application to resolve external entities. 00052 */ 00053 virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId, 00054 const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL) 00055 ACE_THROW_SPEC ((ACEXML_SAXException)) = 0; 00056 }; 00057 00058 00059 #include /**/ "ace/post.h" 00060 00061 #endif /* _ACEXML_ENTITYHANDLER_H_ */