SUMO - Simulation of Urban MObility
XMLSubSys.h
Go to the documentation of this file.
1 /****************************************************************************/
8 // Utility methods for initialising, closing and using the XML-subsystem
9 /****************************************************************************/
10 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
11 // Copyright (C) 2002-2016 DLR (http://www.dlr.de/) and contributors
12 /****************************************************************************/
13 //
14 // This file is part of SUMO.
15 // SUMO is free software: you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation, either version 3 of the License, or
18 // (at your option) any later version.
19 //
20 /****************************************************************************/
21 #ifndef XMLSubSys_h
22 #define XMLSubSys_h
23 
24 
25 // ===========================================================================
26 // included modules
27 // ===========================================================================
28 #ifdef _MSC_VER
29 #include <windows_config.h>
30 #else
31 #include <config.h>
32 #endif
33 
34 #include <vector>
35 #include <xercesc/sax2/SAX2XMLReader.hpp>
36 
37 
38 // ===========================================================================
39 // class declarations
40 // ===========================================================================
41 class GenericSAXHandler;
42 class SUMOSAXHandler;
43 class SUMOSAXReader;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
73 class XMLSubSys {
74 public:
83  static void init();
84 
85 
94  static void setValidation(const std::string& validationScheme, const std::string& netValidationScheme);
95 
96 
102  static void close();
103 
104 
116  static SUMOSAXReader* getSAXReader(SUMOSAXHandler& handler);
117 
118 
126  static void setHandler(GenericSAXHandler& handler);
127 
128 
147  static bool runParser(GenericSAXHandler& handler,
148  const std::string& file, const bool isNet = false);
149 
150 
151 private:
153  static std::vector<SUMOSAXReader*> myReaders;
154 
156  static unsigned int myNextFreeReader;
157 
159  static XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myValidationScheme;
160 
162  static XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myNetValidationScheme;
163 
164 };
165 
166 
167 #endif
168 
169 /****************************************************************************/
170 
static void init()
Initialises the xml-subsystem.
Definition: XMLSubSys.cpp:58
static void close()
Closes the xml-subsystem.
Definition: XMLSubSys.cpp:92
static unsigned int myNextFreeReader
Information whether the reader is parsing.
Definition: XMLSubSys.h:156
static void setValidation(const std::string &validationScheme, const std::string &netValidationScheme)
Enables or disables validation.
Definition: XMLSubSys.cpp:69
SAX-reader encapsulation containing binary reader.
Definition: SUMOSAXReader.h:58
SAX-handler base for SUMO-files.
static bool runParser(GenericSAXHandler &handler, const std::string &file, const bool isNet=false)
Runs the given handler on the given file; returns if everything&#39;s ok.
Definition: XMLSubSys.cpp:114
A handler which converts occuring elements and attributes into enums.
static XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myValidationScheme
Information whether built reader/parser shall validate XML-documents against schemata.
Definition: XMLSubSys.h:159
static SUMOSAXReader * getSAXReader(SUMOSAXHandler &handler)
Builds a reader and assigns the handler to it.
Definition: XMLSubSys.cpp:102
static void setHandler(GenericSAXHandler &handler)
Sets the given handler for the default reader.
Definition: XMLSubSys.cpp:108
static XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myNetValidationScheme
Information whether built reader/parser shall validate SUMO networks against schemata.
Definition: XMLSubSys.h:162
Utility methods for initialising, closing and using the XML-subsystem.
Definition: XMLSubSys.h:73
static std::vector< SUMOSAXReader * > myReaders
The XML Readers used for repeated parsing.
Definition: XMLSubSys.h:153