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_XERCES_PARSER_HH) and VCSN_INCLUDE_XML()
00021 # define VCSN_XML_XERCES_PARSER_HH
00022
00023 # ifndef VCSN_USE_XML
00024 # error Vaucanson XML support is disabled.
00025 # endif
00026
00038 # include <iostream>
00039 # include <cstdlib>
00040
00041 # include <xercesc/dom/DOM.hpp>
00042 # include <xercesc/framework/Wrapper4InputSource.hpp>
00043
00044 # include <vaucanson/misc/usual_macros.hh>
00045 # include <vaucanson/xml/ios.hh>
00046 # include <vaucanson/xml/strings.hh>
00047 # include <vaucanson/xml/error_handler.hh>
00048
00049 namespace vcsn
00050 {
00051 namespace xml
00052 {
00053
00054 struct xerces_parser
00055 {
00064 template <class IStream>
00065 static
00066 xercesc::DOMElement* stream_parser(IStream& is);
00067
00068 private:
00069 template <class IStream>
00070 static
00071 xercesc::DOMDocument* loaddocument(xercesc::DOMBuilder* parser,
00072 IStream& is);
00073 };
00074 }
00075
00076 }
00077
00078
00079 # ifndef VCSN_USE_INTERFACE_ONLY
00080 # include <vaucanson/xml/xerces_parser.hxx>
00081 # endif // VCSN_USE_INTERFACE_ONLY
00082
00083
00084 #endif // ! VCSN_XML_XERCES_PARSER_HH && VCSN_INCLUDE_XML()