3 //=============================================================================
7 * @author Nanbor Wang <nanbor@cs.wustl.edu>
9 //=============================================================================
10 #ifndef _ACEXML_DTD_Manager_H_
11 #define _ACEXML_DTD_Manager_H_
13 #include /**/ "ace/pre.h"
14 #include "ACEXML/common/ACEXML_Export.h"
16 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 #endif /* ACE_LACKS_PRAGMA_ONCE */
20 #include "ACEXML/common/Attributes_Def_Builder.h"
21 #include "ACEXML/common/Element_Def_Builder.h"
22 #include "ACEXML/common/Validator.h"
25 * @class ACEXML_DTD_Manager
27 * @todo Fill in the blank.
29 class ACEXML_Export ACEXML_DTD_Manager
32 virtual ~ACEXML_DTD_Manager () = 0;
35 * Acquire a pointer to an element definition builder.
36 * The XML parser use this interface to acquire the
37 * definition builder and use the builder to create
38 * the DTD element definition. The resulting builder
39 * is then registered with the DTD Manager or destroyed
40 * if error occurred when the builder encountered errors.
42 * @retval 0 if error occurs creating the builder.
44 virtual ACEXML_Element_Def_Builder
*getElement_Def_Builder () = 0;
47 * Insert a new element definition into the DTD Manager.
49 * @retval 0 if success, -1 if error.
51 virtual int insertElement_Definition (ACEXML_Element_Def_Builder
*def
) = 0;
54 * Acquire a pointer to an attributes definition builder.
57 virtual ACEXML_Attributes_Def_Builder
*getAttribute_Def_Builder () = 0;
60 * Insert a new attributes definition into the DTD Manager.
62 * @retval 0 if success, -1 otherwise.
64 virtual int insertAttributes_Definition (ACEXML_Attributes_Def_Builder
*def
) = 0;
67 * Acquire an element validator to validate an XML element.
69 * @todo I haven't figured out what memory management scheme
70 * we should use for the acquired validator.
72 virtual ACEXML_Validator
*getValidator (const ACEXML_Char
*namespaceURI
,
73 const ACEXML_Char
*localName
,
74 const ACEXML_Char
*qName
) = 0;
78 #include /**/ "ace/post.h"
80 #endif /* _ACEXML_DTD_Manager_H_ */