00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_XML_XML_HXX
00018 # define VCSN_XML_XML_HXX
00019
00031 namespace vcsn
00032 {
00033 namespace xml
00034 {
00035
00036 template<typename Saver, typename Conv>
00037 void XML::operator()(std::ostream& out, const Saver& s,
00038 const Conv&) const
00039 {
00040 xercesc::XMLPlatformUtils::Initialize();
00041
00042 typedef typename Saver::automaton_t automaton_t;
00043
00044 xml_converter<automaton_t> xc(use_label_node_);
00045 xc.save(s.automaton(), out, name_);
00046
00047 xercesc::XMLPlatformUtils::Terminate();
00048 }
00049
00050
00051 template <typename Loader>
00052 void
00053 XML::operator()(std::istream& in, Loader& l)
00054 {
00055 xercesc::XMLPlatformUtils::Initialize();
00056
00057 typedef typename Loader::automaton_t automaton_t;
00058
00059 xml_converter<automaton_t> xc(use_label_node_);
00060 xc.load(l.automaton(), in);
00061
00062 xercesc::XMLPlatformUtils::Terminate();
00063 }
00064
00065
00066 }
00067
00068 }
00069
00070
00071 #endif // ! VCSN_XML_XML_HXX