21 #ifndef TEMPLATEPARSER_H
22 #define TEMPLATEPARSER_H
28 #define __MSXML_LIBRARY_DEFINED__
30 #include <xercesc/dom/DOM.hpp>
32 #include <xercesc/sax/ErrorHandler.hpp>
36 #include "WorkItemPool.h"
39 XERCES_CPP_NAMESPACE_USE
113 NodeMatchReturn Matches( ManagedBuffer buffer, DOMNode *root );
150 virtual void Parse( DOMNode* );
151 virtual bool MatchTemplate( ManagedBuffer buffer, DOMNode *root );
154 string getId()
const {
return m_Id; }
160 const vector< TemplateData >&
getData()
const {
return m_Data; }
161 const vector< TemplateNode >&
getChildren()
const {
return m_Children; }
165 const TemplateNode& FindTemplate(
const string& templateName )
const;
185 bool MatchTemplate( ManagedBuffer buffer, DOMNode *root );
187 void Parse( DOMNode* );
203 short acceptNode(
const DOMNode* node )
const;
216 void ReleaseParseDocument();
236 bool Matches( ManagedBuffer buffer, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* root );
255 static map< std::string, TemplateParser >
Cache;
270 #endif // TEMPLATEPARSER_H