1 | /* ************************************************************************** * |
---|
2 | * Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011 * |
---|
3 | * ************************************************************************** */ |
---|
4 | |
---|
5 | #ifndef __XML_PARSER_HPP__ |
---|
6 | #define __XML_PARSER_HPP__ |
---|
7 | |
---|
8 | /** |
---|
9 | * \file xml_parser.hpp |
---|
10 | * \brief Définition des méthodes d'initialisation du parsing xml (entête). |
---|
11 | * \author Hervé Ozdoba |
---|
12 | * \version 0.4 |
---|
13 | * \date 12 Juin 2011 |
---|
14 | */ |
---|
15 | |
---|
16 | #ifndef __XIOS_NO_EXTERN |
---|
17 | |
---|
18 | // C++ standard headers |
---|
19 | #include <string> |
---|
20 | #include <iostream> |
---|
21 | |
---|
22 | #endif // __XIOS_NO_EXTERN |
---|
23 | |
---|
24 | // XMLIOServer headers |
---|
25 | #include "xml_node.hpp" |
---|
26 | |
---|
27 | // ////////////////////////////// Déclarations ///////////////////////////// // |
---|
28 | |
---|
29 | namespace xmlioserver |
---|
30 | { |
---|
31 | /// \brief Espace de nommage incluant les classes de manipulation du format xml. |
---|
32 | namespace xml |
---|
33 | { |
---|
34 | /** |
---|
35 | * \class CXMLParser |
---|
36 | * \brief Classe de traitement de document xml depuis différentes sources de données. |
---|
37 | */ |
---|
38 | class CXMLParser |
---|
39 | { |
---|
40 | public : // Méthodes statiques |
---|
41 | |
---|
42 | /*! |
---|
43 | * \brief Parse un document xml à partir d'un nom de fichier. |
---|
44 | * \param _filename : le nom d'un fichier contenant l'arborescence xml. |
---|
45 | * \see ParseString ParseStream |
---|
46 | * |
---|
47 | * Cette méthode utilise ParseStream de la maniÚre suivante : |
---|
48 | * \code |
---|
49 | * //> Parsing d'un flux d'entrée de fichier. |
---|
50 | * std::ifstream ifs ( _filename.c_str() , std::ifstream::in ); |
---|
51 | * CXMLParser::ParseStream(ifs); |
---|
52 | * \endcode |
---|
53 | */ |
---|
54 | static void ParseFile (const std::string & _filename); |
---|
55 | |
---|
56 | /*! |
---|
57 | * \brief Parse un document xml à partir d'une chaîne de caractÚres. |
---|
58 | * \param _xmlContent : une chaîne de caractÚres contenant l'arborescence xml. |
---|
59 | * \see ParseFile ParseStream |
---|
60 | * |
---|
61 | * Cette méthode utilise ParseStream de la maniÚre suivante : |
---|
62 | * \code |
---|
63 | * //> Parsing d'un flux d'entrée de chaîne de caractÚres. |
---|
64 | * StdIStringStream iss(_xmlContent); |
---|
65 | * CXMLParser::ParseStream(iss); |
---|
66 | * \endcode |
---|
67 | */ |
---|
68 | static void ParseString(const std::string & _xmlContent); |
---|
69 | |
---|
70 | /*! |
---|
71 | * \brief Parse un document xml à partir d'un flux d'entrée de données. |
---|
72 | * \param _stream : le flux d'entrée contenant l'arborescence xml. |
---|
73 | * \see ParseString ParseFile |
---|
74 | */ |
---|
75 | static void ParseStream(std::istream & _stream); |
---|
76 | |
---|
77 | }; //class CXMLParser |
---|
78 | |
---|
79 | }// namespace xml |
---|
80 | } // namespace xmlioserver |
---|
81 | |
---|
82 | #endif // __XML_PARSER_HPP__ |
---|
83 | |
---|