it_bus_pdk/xml_sax_parser.h

00001 #ifndef _IT_BUS_PDK_XML_SAX_PARSER_H_
00002 #define _IT_BUS_PDK_XML_SAX_PARSER_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_cal/auto_ptr.h>
00008 #include <it_bus_pdk/xml_sax_handler.h>
00009 #include <it_bus/binary_buffer.h>
00010 #include <it_bus_pdk/xml_parse_exception.h>
00011 #include <it_bus/api_defines.h>
00012 
00013 namespace xercesc_2_4
00014 {
00015     class SAX2XMLReader;
00016     class InputSource;
00017 }
00018 
00019 namespace IT_Bus
00020 {
00021 
00022     class IT_BUS_XML_API XMLSaxParser
00023     {
00024       public:
00025         XMLSaxParser();
00026 
00027         XMLSaxParser(
00028             UInt parser_recycle_level,
00029             Boolean validating = IT_false
00030         );
00031         
00032         virtual
00033         ~XMLSaxParser();
00034         
00035         void
00036         parse_from_url(
00037             const String& url,
00038             XMLSaxHandler & sax_handler
00039         ) IT_THROW_DECL((XMLParseException));
00040 
00041         void
00042         parse_from_file(
00043             const String& file_name,
00044             XMLSaxHandler & sax_handler
00045         ) IT_THROW_DECL((XMLParseException));
00046 
00047         void
00048         parse(
00049             const BinaryBuffer& input_buffer,
00050             XMLSaxHandler & sax_handler
00051         ) IT_THROW_DECL((XMLParseException));
00052         
00053         Boolean
00054         is_validating() 
00055         { 
00056             return m_validating; 
00057         }
00058 
00059         void
00060         load_grammar_from_url(const String & schema_url);
00061 
00062         void
00063         load_grammar(const BinaryBuffer & input_source);
00064 
00065       protected :
00066 
00067         void 
00068         init_parser();
00069 
00070         void 
00071         check_parser();
00072         
00073         virtual void 
00074         recycle_parser();
00075 
00076         void
00077         parse(
00078             xercesc_2_4::InputSource & input_source,
00079             XMLSaxHandler & sax_handler
00080         ) IT_THROW_DECL((XMLParseException));
00081 
00082         xercesc_2_4::SAX2XMLReader*            m_xerces_parser;
00083         UInt                                   m_parser_recycle_level;
00084         UInt                                   m_parse_counter;
00085         Boolean                                m_validating;
00086     };
00087 }
00088 
00089 #endif  

Generated on Thu Sep 7 11:39:37 2006 for Artix by  doxygen 1.4.7