00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <vaucanson/config/system.hh>
00019
00020 #if not defined (VCSN_XML_SESSION_HH) and VCSN_INCLUDE_XML()
00021 # define VCSN_XML_SESSION_HH
00022
00023 # ifndef VCSN_USE_XML
00024 # error Vaucanson XML support is disabled.
00025 # endif
00026
00038 # include <iostream>
00039 # include <xercesc/dom/DOM.hpp>
00040
00041 # include <vaucanson/xml/xml_converter.hh>
00042
00043
00044 namespace vcsn
00045 {
00046 namespace xml
00047 {
00059 struct xml_session
00060 {
00061 xml_session();
00062 ~xml_session();
00063
00064 xercesc::DOMImplementation* impl;
00065 xercesc::DOMDocument* doc;
00066 xercesc::DOMElement* root;
00067 };
00068
00069 }
00070
00071 template<typename S, typename T>
00072 xml::xml_session& op_rin(S&, xml::xml_session&, T&);
00073
00074 template<typename S, typename T>
00075 xml::xml_session& op_rout(const S&, xml::xml_session&, const T&);
00076
00077 template <class IStream>
00078 IStream& operator >> (IStream&, xml::xml_session&);
00079
00080 template <class OStream>
00081 OStream& operator << (OStream&, const xml::xml_session&);
00082
00083
00084 }
00085
00086
00087 # ifndef VCSN_USE_INTERFACE_ONLY
00088 # include <vaucanson/xml/session.hxx>
00089 # endif // VCSN_USE_INTERFACE_ONLY
00090
00091 #endif // ! VCSN_XML_SESSION_HH && VCSN_INCLUDE_XML()