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 \
00021 (not defined (VCSN_SANITY_CHECK) or defined (VCSN_USE_XML))
00022 # define VCSN_XML_SESSION_HH
00023
00024 # ifndef VCSN_USE_XML
00025 # error Vaucanson XML support is disabled.
00026 # endif
00027
00039 # include <iostream>
00040 # include <xercesc/dom/DOM.hpp>
00041
00042 # include <vaucanson/xml/xml_converter.hh>
00043
00044
00045 namespace vcsn
00046 {
00047 namespace xml
00048 {
00060 struct xml_session
00061 {
00062 xml_session();
00063 ~xml_session();
00064
00065 xercesc::DOMImplementation* impl;
00066 xercesc::DOMDocument* doc;
00067 xercesc::DOMElement* root;
00068 };
00069
00070 }
00071
00072 template<typename S, typename T>
00073 xml::xml_session& op_rin(S&, xml::xml_session&, T&);
00074
00075 template<typename S, typename T>
00076 xml::xml_session& op_rout(const S&, xml::xml_session&, const T&);
00077
00078 template <class IStream>
00079 IStream& operator >> (IStream&, xml::xml_session&);
00080
00081 template <class OStream>
00082 OStream& operator << (OStream&, const xml::xml_session&);
00083
00084
00085 }
00086
00087
00088 # ifndef VCSN_USE_INTERFACE_ONLY
00089 # include <vaucanson/xml/session.hxx>
00090 # endif // VCSN_USE_INTERFACE_ONLY
00091
00092 #endif // ! VCSN_XML_SESSION_HH && (! VCSN_SANITY_CHECK || VCSN_USE_XML)