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