vtkXMLParser.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00033 #ifndef __vtkXMLParser_h
00034 #define __vtkXMLParser_h
00035
00036 #include "vtkObject.h"
00037
00038 extern "C"
00039 {
00040 void vtkXMLParserStartElement(void*, const char*, const char**);
00041 void vtkXMLParserEndElement(void*, const char*);
00042 void vtkXMLParserCharacterDataHandler(void*, const char*, int);
00043 }
00044
00045 class VTK_IO_EXPORT vtkXMLParser : public vtkObject
00046 {
00047 public:
00048 vtkTypeRevisionMacro(vtkXMLParser,vtkObject);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00051 static vtkXMLParser* New();
00052
00053
00055
00056 vtkSetMacro(Stream, istream*);
00057 vtkGetMacro(Stream, istream*);
00058
00060
00062 virtual int Parse();
00063
00065
00067 virtual int Parse(const char* inputString);
00068 virtual int Parse(const char* inputString, unsigned int length);
00070
00072
00077 virtual int InitializeParser();
00078 virtual int ParseChunk(const char* inputString, unsigned int length);
00079 virtual int CleanupParser();
00081
00083
00084 vtkSetStringMacro(FileName);
00085 vtkGetStringMacro(FileName);
00087
00088 protected:
00089 vtkXMLParser();
00090 ~vtkXMLParser();
00091
00092
00093 istream* Stream;
00094
00095
00096 char* FileName;
00097
00098
00099
00100 int ParseError;
00101
00102
00103 const char* InputString;
00104 int InputStringLength;
00105
00106
00107 void* Parser;
00108
00109
00110
00111 virtual int ParseXML();
00112
00113
00114
00115
00116
00117 virtual int ParsingComplete();
00118
00119
00120
00121
00122
00123
00124 virtual void StartElement(const char* name, const char** atts);
00125
00126
00127
00128 virtual void EndElement(const char* name);
00129
00130
00131 virtual void CharacterDataHandler(const char* data, int length);
00132
00133
00134 virtual void ReportStrayAttribute(const char* element, const char* attr,
00135 const char* value);
00136
00137
00138 virtual void ReportMissingAttribute(const char* element, const char* attr);
00139
00140
00141 virtual void ReportBadAttribute(const char* element, const char* attr,
00142 const char* value);
00143
00144
00145 virtual void ReportUnknownElement(const char* element);
00146
00147
00148 virtual void ReportXmlParseError();
00149
00150
00151 unsigned long GetXMLByteIndex();
00152
00153
00154 virtual int ParseBuffer(const char* buffer, unsigned int count);
00155
00156
00157 int ParseBuffer(const char* buffer);
00158
00159
00160
00161 static int IsSpace(char c);
00162
00163
00164 friend void vtkXMLParserStartElement(void*, const char*, const char**);
00165 friend void vtkXMLParserEndElement(void*, const char*);
00166 friend void vtkXMLParserCharacterDataHandler(void*, const char*, int);
00167
00168
00169 private:
00170 vtkXMLParser(const vtkXMLParser&);
00171 void operator=(const vtkXMLParser&);
00172 };
00173
00174 #endif