00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifdef WIN32
00018 #pragma warning(disable : 4786)
00019 #endif
00020
00021 #if !defined(__WSDDDOCUMENTEXPAT_H_INCLUDED__)
00022 #define __WSDDDOCUMENTEXPAT_H_INCLUDED__
00023
00024 #include "WSDDDocument.h"
00025 #include <expat/expat.h>
00026 #include <string>
00027 #include <map>
00028
00029 using namespace std;
00030
00031
00032
00033
00034
00035
00036
00037 class WSDDDocumentExpat : public WSDDDocument
00038 {
00039 private:
00040 void ProcessAttributes(WSDDLevels ElementType, const XML_Ch **attrs);
00041 void GetParameters(WSDDLevels ElementType, const XML_Ch **attrs);
00042 void AddAllowedRolesToService(const AxisXMLCh* value);
00043 void AddAllowedMethodsToService(const AxisXMLCh* value);
00044 int ParseDocument(const AxisChar* sWSDD);
00045
00046 public:
00047 WSDDDocumentExpat(map<AxisString, int>* pLibNameIdMap);
00048 ~WSDDDocumentExpat();
00049 int GetDeployment(const AxisChar* sWSDD, WSDDDeployment* pDeployment);
00050 int UpdateDeployment(const AxisChar* sWSDD, WSDDDeployment* pDeployment);
00051
00052 void startElement(const XML_Ch *qname,const XML_Ch **attrs);
00053 void endElement(const XML_Ch *qname);
00054 void characters(const XML_Ch *chars,int length);
00055 void startPrefixMapping(const XML_Ch *prefix, const XML_Ch *uri);
00056 void endPrefixMapping(const XML_Ch *prefix);
00057
00058 inline static void XMLCALL s_startElement(void* p, const XML_Ch *qname,
00059 const XML_Ch **attrs)
00060 {((WSDDDocumentExpat*)p)->startElement(qname,attrs);};
00061 inline static void XMLCALL s_endElement(void* p, const XML_Ch *qname)
00062 {((WSDDDocumentExpat*)p)->endElement(qname);};
00063 inline static void XMLCALL s_characters(void* p, const XML_Ch *chars,
00064 int length)
00065 {((WSDDDocumentExpat*)p)->characters(chars,length);};
00066 inline static void XMLCALL s_startPrefixMapping(void* p,
00067 const XML_Ch *prefix, const XML_Ch *uri)
00068 {((WSDDDocumentExpat*)p)->startPrefixMapping(prefix, uri);};
00069 inline static void XMLCALL s_endPrefixMapping(void* p,
00070 const XML_Ch *prefix)
00071 {((WSDDDocumentExpat*)p)->endPrefixMapping(prefix);};
00072 };
00073
00074 #endif
00075