00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SEMAINE_DATATYPES_NAMESPACECONTEXT_H
00009 #define SEMAINE_DATATYPES_NAMESPACECONTEXT_H
00010
00011 #include <string>
00012 #include <map>
00013
00014 #include <xercesc/dom/DOM.hpp>
00015
00016 #include <semaine/util/XMLTool.h>
00017
00018 namespace semaine {
00019
00020 namespace datatypes {
00021
00022 namespace stateinfo {
00023
00024
00025
00026 class NamespaceContext : public XERCES_CPP_NAMESPACE::DOMXPathNSResolver {
00027 public:
00028 NamespaceContext(const std::map<std::string, std::string> & prefix2NamespaceURI);
00029 virtual ~NamespaceContext() {}
00030 const XMLCh * lookupNamespaceURI(const XMLCh * prefix) const;
00031 const XMLCh * lookupPrefix(const XMLCh *URI) const;
00032 void addNamespaceBinding(const XMLCh*, const XMLCh*);
00033 void release() {}
00034
00035 const std::string getNamespaceURI(const std::string & prefix) const;
00036 private:
00037 std::map<std::string, std::string> pref2ns;
00038 };
00039
00040
00041
00042 }
00043
00044 }
00045
00046 }
00047
00048 #endif