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