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