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-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
17 // SAX-reader encapsulation containing binary reader
18 /****************************************************************************/
19 #ifndef SUMOSAXReader_h
20 #define SUMOSAXReader_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #include <config.h>
27 
28 #include <xercesc/sax2/SAX2XMLReader.hpp>
29 #include <xercesc/sax/EntityResolver.hpp>
30 #include <xercesc/sax/InputSource.hpp>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class GenericSAXHandler;
37 class BinaryInputDevice;
38 
39 
40 // ===========================================================================
41 // class definitions
42 // ===========================================================================
52 public:
58  SUMOSAXReader(GenericSAXHandler& handler, const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme);
59 
62 
68  void setHandler(GenericSAXHandler& handler);
69 
70  void setValidation(const XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes validationScheme);
71 
72  void parse(std::string systemID);
73 
74  void parseString(std::string content);
75 
76  bool parseFirst(std::string systemID);
77 
78  bool parseNext();
79 
80 private:
81  class LocalSchemaResolver : public XERCES_CPP_NAMESPACE::EntityResolver {
82  public:
83  XERCES_CPP_NAMESPACE::InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId);
84  void setHandler(GenericSAXHandler& handler);
85  private:
87  };
88 
89 private:
100  XERCES_CPP_NAMESPACE::SAX2XMLReader* getSAXReader();
101 
102 
103 private:
105 
107  XERCES_CPP_NAMESPACE::SAX2XMLReader::ValSchemes myValidationScheme;
108 
109  XERCES_CPP_NAMESPACE::XMLPScanToken myToken;
110 
111  XERCES_CPP_NAMESPACE::SAX2XMLReader* myXMLReader;
112 
114 
116 
118  std::vector<SumoXMLTag> myXMLStack;
119 
121 
122 private:
124  SUMOSAXReader(const SUMOSAXReader& s);
125 
127  const SUMOSAXReader& operator=(const SUMOSAXReader& s);
128 
129 };
130 
131 
132 #endif
133 
134 /****************************************************************************/
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:51
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)
void setHandler(GenericSAXHandler &handler)
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