00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_XML_STRINGS_HXX
00018 # define VCSN_XML_STRINGS_HXX
00019
00020 # include <vaucanson/xml/strings.hh>
00021
00022 # include <vaucanson/misc/contract.hh>
00023
00024 namespace vcsn
00025 {
00026 namespace xml
00027 {
00028
00029
00030
00031
00032
00033
00034 inline
00035 XMLCh*
00036 transcode (const char* ccp)
00037 {
00038 return xercesc::XMLString::transcode(ccp);
00039 }
00040
00041
00042 inline
00043 XMLCh*
00044 transcode (const std::string& s)
00045 {
00046 return transcode (s.c_str());
00047 }
00048
00049
00050 inline
00051 std::string
00052 xml2str(const XMLCh* xmlstr)
00053 {
00054 assertion(xmlstr != 0);
00055
00056 char* cstr = xercesc::XMLString::transcode(xmlstr);
00057 assertion(cstr != 0);
00058
00059 std::string ret (cstr);
00060 xercesc::XMLString::release(&cstr);
00061
00062 return ret;
00063 }
00064
00065 }
00066
00067 }
00068
00069 #endif // ! VCSN_XML_STRINGS_HXX