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