00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifdef WIN32
00023 #pragma warning (disable : 4786)
00024 #endif
00025
00026 #if !defined(__SoapParserXerces_H_INCLUDED__)
00027 #define __SoapParserXerces_H_INCLUDED__
00028
00029 #include <axis/server/Packet.h>
00030 #include "../xml/QName.h"
00031 #include "../xml/Event.h"
00032 #include <axis/server/AnyElement.h>
00033 #include <axis/server/XMLParser.h>
00034 #include "XercesHandler.h"
00035
00036 #include <xercesc/sax2/SAX2XMLReader.hpp>
00037 #include <xercesc/parsers/SAXParser.hpp>
00038 #include <xercesc/framework/XMLPScanToken.hpp>
00039 #include "SoapInputSource.h"
00040
00041 XERCES_CPP_NAMESPACE_USE
00042
00043 class SoapParserXerces: public XMLParser
00044 {
00045
00046 public:
00047 SoapParserXerces();
00048 ~SoapParserXerces();
00049
00050 int SetInputStream(const Ax_soapstream* pInputStream);
00051 const Ax_soapstream* GetInputStream(){return m_pInputStream;};
00052 int Init();
00053 const XML_Ch* GetNS4Prefix(const XML_Ch* prefix);
00054 int GetStatus();
00055 const AnyElement* Next();
00056 AXIS_TRANSPORT_STATUS GetTransportStatus(){ return m_nTransportStatus;};
00057 void SetTransportStatus(AXIS_TRANSPORT_STATUS nStatus)
00058 { m_nTransportStatus = nStatus;};
00059
00060
00061 const Ax_soapstream* m_pInputStream;
00062
00063 private:
00064 int m_nStatus;
00065 SAX2XMLReader* m_pParser;
00066
00067 AXIS_TRANSPORT_STATUS m_nTransportStatus;
00068 XMLPScanToken token;
00069 XercesHandler Xhandler;
00070 bool firstParsed;
00071 SoapInputSource* is;
00072
00073
00074 };
00075
00076 #endif