SUMO - Simulation of Urban MObility
SUMOSAXReader.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2012-2017 German Aerospace Center (DLR) and others.
4 /****************************************************************************/
5 //
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 //
11 /****************************************************************************/
19 // SAX-reader encapsulation containing binary reader
20 /****************************************************************************/
21 #ifndef SUMOSAXReader_h
22 #define SUMOSAXReader_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 <xercesc/sax2/SAX2XMLReader.hpp>
35 #include <xercesc/sax/EntityResolver.hpp>
36 #include <xercesc/sax/InputSource.hpp>
37 
38 
39 // ===========================================================================
40 // class declarations
41 // ===========================================================================
42 class GenericSAXHandler;
43 class BinaryInputDevice;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
58 public:
64  SUMOSAXReader(GenericSAXHandler& handler, const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme);
65 
68 
74  void setHandler(GenericSAXHandler& handler);
75 
76  void setValidation(const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme);
77 
78  void parse(std::string systemID);
79 
80  void parseString(std::string content);
81 
82  bool parseFirst(std::string systemID);
83 
84  bool parseNext();
85 
86 private:
87  class LocalSchemaResolver : public XERCES_CPP_NAMESPACE::EntityResolver {
88  public:
89  XERCES_CPP_NAMESPACE::InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId);
90  };
91 
92 private:
103  XERCES_CPP_NAMESPACE::SAX2XMLReader* getSAXReader();
104 
105 
106 private:
108 
110  XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myValidationScheme;
111 
112  XERCES_CPP_NAMESPACE::XMLPScanToken myToken;
113 
114  XERCES_CPP_NAMESPACE::SAX2XMLReader* myXMLReader;
115 
117 
119 
121  std::vector<SumoXMLTag> myXMLStack;
122 
124 
125 private:
127  SUMOSAXReader(const SUMOSAXReader& s);
128 
130  const SUMOSAXReader& operator=(const SUMOSAXReader& s);
131 
132 };
133 
134 
135 #endif
136 
137 /****************************************************************************/
std::vector< SumoXMLTag > myXMLStack
The stack of begun xml elements.
const SUMOSAXReader & operator=(const SUMOSAXReader &s)
invalidated assignment operator
SUMOSAXReader(GenericSAXHandler &handler, const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme)
Constructor.
XERCES_CPP_NAMESPACE::SAX2XMLReader * getSAXReader()
Builds a reader.
SAX-reader encapsulation containing binary reader.
Definition: SUMOSAXReader.h:57
void setValidation(const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme)
XERCES_CPP_NAMESPACE::XMLPScanToken myToken
void parseString(std::string content)
BinaryInputDevice * myBinaryInput
A handler which converts occuring elements and attributes into enums.
void parse(std::string systemID)
XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myValidationScheme
Information whether built reader/parser shall validate XML-documents against schemata.
bool parseFirst(std::string systemID)
XERCES_CPP_NAMESPACE::SAX2XMLReader * myXMLReader
void setHandler(GenericSAXHandler &handler)
Sets the given handler as content and error handler for the reader.
LocalSchemaResolver mySchemaResolver
XERCES_CPP_NAMESPACE::InputSource * resolveEntity(const XMLCh *const publicId, const XMLCh *const systemId)
~SUMOSAXReader()
Destructor.
Encapsulates binary reading operations on a file.
GenericSAXHandler * myHandler