vtkPVXMLParser.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
10 #ifndef vtkPVXMLParser_h
11 #define vtkPVXMLParser_h
12 
13 #include "vtkPVVTKExtensionsCoreModule.h" // needed for export macro
14 #include "vtkSmartPointer.h" // needed for vtkSmartPointer.
15 #include "vtkXMLParser.h"
16 
17 class vtkPVXMLElement;
18 
19 class VTKPVVTKEXTENSIONSCORE_EXPORT vtkPVXMLParser : public vtkXMLParser
20 {
21 public:
22  vtkTypeMacro(vtkPVXMLParser, vtkXMLParser);
23  void PrintSelf(ostream& os, vtkIndent indent) override;
24  static vtkPVXMLParser* New();
25 
29  void PrintXML(ostream& os);
30 
34  vtkPVXMLElement* GetRootElement();
35 
37 
43  vtkGetMacro(SuppressErrorMessages, int);
44  vtkSetMacro(SuppressErrorMessages, int);
45  vtkBooleanMacro(SuppressErrorMessages, int);
47 
53  const char* xmlcontents, bool suppress_errors = false);
54 
55 protected:
57  ~vtkPVXMLParser() override;
58 
60 
61  void StartElement(const char* name, const char** atts) override;
62  void EndElement(const char* name) override;
63  void CharacterDataHandler(const char* data, int length) override;
64 
65  void AddElement(vtkPVXMLElement* element);
66  void PushOpenElement(vtkPVXMLElement* element);
67  vtkPVXMLElement* PopOpenElement();
68 
69  // The root XML element.
71 
72  // The stack of elements currently being parsed.
74  unsigned int NumberOfOpenElements;
75  unsigned int OpenElementsSize;
76 
77  // Counter to assign unique element ids to those that don't have any.
78  unsigned int ElementIdIndex;
79 
80  // Called by Parse() to read the stream and call ParseBuffer. Can
81  // be replaced by subclasses to change how input is read.
82  int ParseXML() override;
83 
84  // Overridden to implement the SuppressErrorMessages feature.
85  void ReportXmlParseError() override;
86 
87 private:
88  vtkPVXMLParser(const vtkPVXMLParser&) = delete;
89  void operator=(const vtkPVXMLParser&) = delete;
90 };
91 
92 #endif
vtkPVXMLParser
Definition: vtkPVXMLParser.h:19
vtkObjectBase::operator=
void operator=(const vtkObjectBase &)
vtkPVXMLParser::OpenElements
vtkPVXMLElement ** OpenElements
Definition: vtkPVXMLParser.h:73
vtkPVXMLParser::RootElement
vtkPVXMLElement * RootElement
Definition: vtkPVXMLParser.h:70
vtkXMLParser
vtkPVXMLParser::OpenElementsSize
unsigned int OpenElementsSize
Definition: vtkPVXMLParser.h:75
vtkPVXMLParser::ElementIdIndex
unsigned int ElementIdIndex
Definition: vtkPVXMLParser.h:78
vtkSmartPointer< vtkPVXMLElement >
vtkXMLParser.h
vtkXMLParser::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkPVXMLParser::NumberOfOpenElements
unsigned int NumberOfOpenElements
Definition: vtkPVXMLParser.h:74
vtkXMLParser::New
static vtkXMLParser * New()
vtkXMLParser::ParseXML
virtual int ParseXML()
vtkIndent
vtkSmartPointer.h
vtkPVXMLParser::SuppressErrorMessages
int SuppressErrorMessages
Definition: vtkPVXMLParser.h:59
vtkXMLParser::EndElement
virtual void EndElement(const char *name)
vtkPVXMLElement
Definition: vtkPVXMLElement.h:23
vtkXMLParser::StartElement
virtual void StartElement(const char *name, const char **atts)
vtkXMLParser::ReportXmlParseError
virtual void ReportXmlParseError()
vtkXMLParser::CharacterDataHandler
virtual void CharacterDataHandler(const char *data, int length)