00001 #ifndef _IT_BUS_PDK_NAMESPACE_URI_PREFIX_MAP_H_
00002 #define _IT_BUS_PDK_NAMESPACE_URI_PREFIX_MAP_H_
00003
00004
00005
00006
00007 #include <it_bus/types.h>
00008 #include <it_bus/xml_output_stream.h>
00009 #include <it_schema_model/ns_util.h>
00010
00011 namespace IT_Bus
00012 {
00013 class IT_BUS_XML_API NamespaceURIPrefixMap
00014 {
00015 public:
00016 NamespaceURIPrefixMap();
00017
00018 ~NamespaceURIPrefixMap();
00019
00020 void
00021 write_current_namespace_scope(
00022 XMLOutputStream & os
00023 );
00024
00025 String
00026 get_namespace_prefix(
00027 const String& namespace_uri
00028 );
00029
00030 String
00031 add_namespace_prefix(
00032 const String& namespace_uri,
00033 const String& prefix
00034 );
00035
00036 String
00037 add_namespace(
00038 const String& namespace_uri
00039 );
00040
00041 void
00042 remove_namespace_scope();
00043
00044 void
00045 add_namespace_scope();
00046
00047 unsigned int
00048 checkpoint_prefix_index();
00049
00050 unsigned int
00051 reset_prefix_index();
00052
00053
00054
00055 private:
00056
00057 NSStackMapped m_ns_stack;
00058 unsigned int m_idx;
00059 unsigned int m_checkpoint;
00060 static const String EMPTY_STRING;
00061 };
00062 }
00063
00064 #endif