00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Debug_DTD_Manager.h 00006 * 00007 * Debug_DTD_Manager.h,v 1.6 2003/07/19 19:04:10 dhinton Exp 00008 * 00009 * @author Nanbor Wang <nanbor@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 #ifndef _ACEXML_DEBUG_DTD_Manager_H_ 00013 #define _ACEXML_DEBUG_DTD_Manager_H_ 00014 00015 #include /**/ "ace/pre.h" 00016 #include "ACEXML/parser/debug_validator/Debug_DTD_Manager_Export.h" 00017 00018 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00019 #pragma once 00020 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00021 00022 #include "ACEXML/common/DTD_Manager.h" 00023 00024 class ACEXML_DEBUG_DTD_MANAGER_Export ACEXML_Debug_DTD_Manager : public ACEXML_DTD_Manager 00025 { 00026 public: 00027 ACEXML_Debug_DTD_Manager (); 00028 00029 virtual ~ACEXML_Debug_DTD_Manager (); 00030 00031 /** 00032 * Acquire a pointer to an element definition builder. The XML parser use 00033 * this interface to acquire the definition builder and use the builder 00034 * to create the DTD element definition. The resulting builder is then 00035 * registered with the DTD Manager or destroyed if error occured when the 00036 * builder encountered errors. 00037 * 00038 * @retval 0 if error occurs creating the builder. 00039 */ 00040 virtual ACEXML_Element_Def_Builder *getElement_Def_Builder (); 00041 00042 /** 00043 * Insert a new element definition into the DTD Manager. 00044 * 00045 * @retval 0 if success, -1 if error. 00046 */ 00047 virtual int insertElement_Definition (ACEXML_Element_Def_Builder *def ACEXML_ENV_ARG_DECL); 00048 00049 /** 00050 * Acquire a pointer to an attributes definition builder. 00051 * 00052 */ 00053 virtual ACEXML_Attributes_Def_Builder *getAttribute_Def_Builder (); 00054 00055 /** 00056 * Insert a new attributes definition into the DTD Manager. 00057 * 00058 * @retval 0 if success, -1 otherwise. 00059 */ 00060 virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder *def ACEXML_ENV_ARG_DECL); 00061 00062 /** 00063 * Acquire an element validator to validate an XML element. 00064 * 00065 * @todo I haven't figured out what memory management scheme 00066 * we should use for the acquired validator. 00067 */ 00068 virtual ACEXML_Validator *getValidator (const ACEXML_Char *namespaceURI, 00069 const ACEXML_Char *localName, 00070 const ACEXML_Char *qName ACEXML_ENV_ARG_DECL); 00071 }; 00072 00073 #include /**/ "ace/post.h" 00074 00075 00076 #endif /* _ACEXML_DTD_Manager_H_ */