VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qxml.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: Qt Software Information (qt-info@nokia.com)
5 **
6 ** This file is part of the QtXML module of the Qt Toolkit.
7 **
8 ** Commercial Usage
9 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** accordance with the Qt Commercial License Agreement provided with the
11 ** Software or, alternatively, in accordance with the terms contained in
12 ** a written agreement between you and Nokia.
13 **
14 **
15 ** GNU General Public License Usage
16 ** Alternatively, this file may be used under the terms of the GNU
17 ** General Public License versions 2.0 or 3.0 as published by the Free
18 ** Software Foundation and appearing in the file LICENSE.GPL included in
19 ** the packaging of this file. Please review the following information
20 ** to ensure GNU General Public Licensing requirements will be met:
21 ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
22 ** http://www.gnu.org/copyleft/gpl.html. In addition, as a special
23 ** exception, Nokia gives you certain additional rights. These rights
24 ** are described in the Nokia Qt GPL Exception version 1.3, included in
25 ** the file GPL_EXCEPTION.txt in this package.
26 **
27 ** Qt for Windows(R) Licensees
28 ** As a special exception, Nokia, as the sole copyright holder for Qt
29 ** Designer, grants users of the Qt/Eclipse Integration plug-in the
30 ** right for the Qt/Eclipse Integration to link to functionality
31 ** provided by Qt Designer and its related libraries.
32 **
33 ** If you are unsure which license is appropriate for your use, please
34 ** contact the sales department at qt-sales@nokia.com.
35 **
36 ****************************************************************************/
37 
38 #ifndef QXML_H
39 #define QXML_H
40 
41 #include <QtCore/qtextstream.h>
42 #include <QtCore/qfile.h>
43 #include <QtCore/qstring.h>
44 #include <QtCore/qstringlist.h>
45 #include <QtCore/qlist.h>
46 
47 QT_BEGIN_HEADER
48 
49 QT_BEGIN_NAMESPACE
50 
52 class QXmlAttributes;
53 class QXmlContentHandler;
54 class QXmlDefaultHandler;
55 class QXmlDTDHandler;
56 class QXmlEntityResolver;
57 class QXmlErrorHandler;
58 class QXmlLexicalHandler;
59 class QXmlDeclHandler;
60 class QXmlInputSource;
61 class QXmlLocator;
63 class QXmlParseException;
64 
65 class QXmlReader;
66 class QXmlSimpleReader;
67 
68 class QXmlSimpleReaderPrivate;
69 class QXmlNamespaceSupportPrivate;
70 class QXmlAttributesPrivate;
71 class QXmlInputSourcePrivate;
72 class QXmlParseExceptionPrivate;
73 class QXmlLocatorPrivate;
74 class QXmlDefaultHandlerPrivate;
75 
76 
77 //
78 // SAX Namespace Support
79 //
80 
81 class Q_XML_EXPORT QXmlNamespaceSupport
82 {
83 public:
86 
87  void setPrefix(const QString&, const QString&);
88 
89  QString prefix(const QString&) const;
90  QString uri(const QString&) const;
91  void splitName(const QString&, QString&, QString&) const;
92  void processName(const QString&, bool, QString&, QString&) const;
93  QStringList prefixes() const;
94  QStringList prefixes(const QString&) const;
95 
96  void pushContext();
97  void popContext();
98  void reset();
99 
100 private:
101  QXmlNamespaceSupportPrivate *d;
102 
103  friend class QXmlSimpleReaderPrivate;
104  Q_DISABLE_COPY(QXmlNamespaceSupport)
105 };
106 
107 
108 //
109 // SAX Attributes
110 //
111 
112 class Q_XML_EXPORT QXmlAttributes
113 {
114 public:
116  virtual ~QXmlAttributes() {}
117 
118  int index(const QString& qName) const;
119  int index(const QLatin1String& qName) const;
120  int index(const QString& uri, const QString& localPart) const;
121  int length() const;
122  int count() const;
123  QString localName(int index) const;
124  QString qName(int index) const;
125  QString uri(int index) const;
126  QString type(int index) const;
127  QString type(const QString& qName) const;
128  QString type(const QString& uri, const QString& localName) const;
129  QString value(int index) const;
130  QString value(const QString& qName) const;
131  QString value(const QLatin1String& qName) const;
132  QString value(const QString& uri, const QString& localName) const;
133 
134  void clear();
135  void append(const QString &qName, const QString &uri, const QString &localPart, const QString &value);
136 
137 private:
138  struct Attribute {
139  QString qname, uri, localname, value;
140  };
143 
144  QXmlAttributesPrivate *d;
145 };
146 
147 //
148 // SAX Input Source
149 //
150 
151 class Q_XML_EXPORT QXmlInputSource
152 {
153 public:
154  QXmlInputSource();
155  QXmlInputSource(QIODevice *dev);
156  virtual ~QXmlInputSource();
157 
158  virtual void setData(const QString& dat);
159  virtual void setData(const QByteArray& dat);
160  virtual void fetchData();
161  virtual QString data() const;
162  virtual QChar next();
163  virtual void reset();
164 
165  static const ushort EndOfData;
166  static const ushort EndOfDocument;
167 
168 #ifdef QT3_SUPPORT
169  QT3_SUPPORT_CONSTRUCTOR QXmlInputSource(QFile& file);
170  QT3_SUPPORT_CONSTRUCTOR QXmlInputSource(QTextStream& stream);
171 #endif
172 
173 protected:
174  virtual QString fromRawData(const QByteArray &data, bool beginning = false);
175 
176 private:
177  void init();
178  QXmlInputSourcePrivate *d;
179 };
180 
181 //
182 // SAX Exception Classes
183 //
184 
185 class Q_XML_EXPORT QXmlParseException
186 {
187 public:
188  explicit QXmlParseException(const QString &name = QString(), int c = -1, int l = -1,
189  const QString &p = QString(), const QString &s = QString());
191 
192  int columnNumber() const;
193  int lineNumber() const;
194  QString publicId() const;
195  QString systemId() const;
196  QString message() const;
197 
198 private:
199  QXmlParseExceptionPrivate *d;
200 };
201 
202 
203 //
204 // XML Reader
205 //
206 
207 class Q_XML_EXPORT QXmlReader
208 {
209 public:
210  virtual ~QXmlReader() {}
211  virtual bool feature(const QString& name, bool *ok = 0) const = 0;
212  virtual void setFeature(const QString& name, bool value) = 0;
213  virtual bool hasFeature(const QString& name) const = 0;
214  virtual void* property(const QString& name, bool *ok = 0) const = 0;
215  virtual void setProperty(const QString& name, void* value) = 0;
216  virtual bool hasProperty(const QString& name) const = 0;
217  virtual void setEntityResolver(QXmlEntityResolver* handler) = 0;
218  virtual QXmlEntityResolver* entityResolver() const = 0;
219  virtual void setDTDHandler(QXmlDTDHandler* handler) = 0;
220  virtual QXmlDTDHandler* DTDHandler() const = 0;
221  virtual void setContentHandler(QXmlContentHandler* handler) = 0;
222  virtual QXmlContentHandler* contentHandler() const = 0;
223  virtual void setErrorHandler(QXmlErrorHandler* handler) = 0;
224  virtual QXmlErrorHandler* errorHandler() const = 0;
225  virtual void setLexicalHandler(QXmlLexicalHandler* handler) = 0;
226  virtual QXmlLexicalHandler* lexicalHandler() const = 0;
227  virtual void setDeclHandler(QXmlDeclHandler* handler) = 0;
228  virtual QXmlDeclHandler* declHandler() const = 0;
229  virtual bool parse(const QXmlInputSource& input) = 0;
230  virtual bool parse(const QXmlInputSource* input) = 0;
231 };
232 
233 class Q_XML_EXPORT QXmlSimpleReader : public QXmlReader
234 {
235 public:
237  virtual ~QXmlSimpleReader();
238 
239  bool feature(const QString& name, bool *ok = 0) const;
240  void setFeature(const QString& name, bool value);
241  bool hasFeature(const QString& name) const;
242 
243  void* property(const QString& name, bool *ok = 0) const;
244  void setProperty(const QString& name, void* value);
245  bool hasProperty(const QString& name) const;
246 
247  void setEntityResolver(QXmlEntityResolver* handler);
249  void setDTDHandler(QXmlDTDHandler* handler);
250  QXmlDTDHandler* DTDHandler() const;
251  void setContentHandler(QXmlContentHandler* handler);
253  void setErrorHandler(QXmlErrorHandler* handler);
255  void setLexicalHandler(QXmlLexicalHandler* handler);
257  void setDeclHandler(QXmlDeclHandler* handler);
258  QXmlDeclHandler* declHandler() const;
259 
260  bool parse(const QXmlInputSource& input);
261  bool parse(const QXmlInputSource* input);
262  virtual bool parse(const QXmlInputSource* input, bool incremental);
263  virtual bool parseContinue();
264 
265 private:
266  Q_DISABLE_COPY(QXmlSimpleReader)
267  Q_DECLARE_PRIVATE(QXmlSimpleReader)
268  QXmlSimpleReaderPrivate* d_ptr;
269 
270  friend class QXmlSimpleReaderLocator;
271 };
272 
273 //
274 // SAX Locator
275 //
276 
277 class Q_XML_EXPORT QXmlLocator
278 {
279 public:
280  QXmlLocator();
281  virtual ~QXmlLocator();
282 
283  virtual int columnNumber() const = 0;
284  virtual int lineNumber() const = 0;
285 // QString getPublicId() const
286 // QString getSystemId() const
287 };
288 
289 //
290 // SAX handler classes
291 //
292 
293 class Q_XML_EXPORT QXmlContentHandler
294 {
295 public:
296  virtual ~QXmlContentHandler() {}
297  virtual void setDocumentLocator(QXmlLocator* locator) = 0;
298  virtual bool startDocument() = 0;
299  virtual bool endDocument() = 0;
300  virtual bool startPrefixMapping(const QString& prefix, const QString& uri) = 0;
301  virtual bool endPrefixMapping(const QString& prefix) = 0;
302  virtual bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts) = 0;
303  virtual bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName) = 0;
304  virtual bool characters(const QString& ch) = 0;
305  virtual bool ignorableWhitespace(const QString& ch) = 0;
306  virtual bool processingInstruction(const QString& target, const QString& data) = 0;
307  virtual bool skippedEntity(const QString& name) = 0;
308  virtual QString errorString() const = 0;
309 };
310 
311 class Q_XML_EXPORT QXmlErrorHandler
312 {
313 public:
314  virtual ~QXmlErrorHandler() {}
315  virtual bool warning(const QXmlParseException& exception) = 0;
316  virtual bool error(const QXmlParseException& exception) = 0;
317  virtual bool fatalError(const QXmlParseException& exception) = 0;
318  virtual QString errorString() const = 0;
319 };
320 
321 class Q_XML_EXPORT QXmlDTDHandler
322 {
323 public:
324  virtual ~QXmlDTDHandler() {}
325  virtual bool notationDecl(const QString& name, const QString& publicId, const QString& systemId) = 0;
326  virtual bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName) = 0;
327  virtual QString errorString() const = 0;
328 };
329 
330 class Q_XML_EXPORT QXmlEntityResolver
331 {
332 public:
333  virtual ~QXmlEntityResolver() {}
334  virtual bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret) = 0;
335  virtual QString errorString() const = 0;
336 };
337 
338 class Q_XML_EXPORT QXmlLexicalHandler
339 {
340 public:
341  virtual ~QXmlLexicalHandler() {}
342  virtual bool startDTD(const QString& name, const QString& publicId, const QString& systemId) = 0;
343  virtual bool endDTD() = 0;
344  virtual bool startEntity(const QString& name) = 0;
345  virtual bool endEntity(const QString& name) = 0;
346  virtual bool startCDATA() = 0;
347  virtual bool endCDATA() = 0;
348  virtual bool comment(const QString& ch) = 0;
349  virtual QString errorString() const = 0;
350 };
351 
352 class Q_XML_EXPORT QXmlDeclHandler
353 {
354 public:
355  virtual ~QXmlDeclHandler() {}
356  virtual bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value) = 0;
357  virtual bool internalEntityDecl(const QString& name, const QString& value) = 0;
358  virtual bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId) = 0;
359  virtual QString errorString() const = 0;
360  // ### Qt 5: Conform to SAX by adding elementDecl
361 };
362 
363 
365 {
366 public:
368  virtual ~QXmlDefaultHandler() { }
369 
370  void setDocumentLocator(QXmlLocator* locator);
371  bool startDocument();
372  bool endDocument();
373  bool startPrefixMapping(const QString& prefix, const QString& uri);
374  bool endPrefixMapping(const QString& prefix);
375  bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts);
376  bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName);
377  bool characters(const QString& ch);
378  bool ignorableWhitespace(const QString& ch);
379  bool processingInstruction(const QString& target, const QString& data);
380  bool skippedEntity(const QString& name);
381 
382  bool warning(const QXmlParseException& exception);
383  bool error(const QXmlParseException& exception);
384  bool fatalError(const QXmlParseException& exception);
385 
386  bool notationDecl(const QString& name, const QString& publicId, const QString& systemId);
387  bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName);
388 
389  bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret);
390 
391  bool startDTD(const QString& name, const QString& publicId, const QString& systemId);
392  bool endDTD();
393  bool startEntity(const QString& name);
394  bool endEntity(const QString& name);
395  bool startCDATA();
396  bool endCDATA();
397  bool comment(const QString& ch);
398 
399  bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value);
400  bool internalEntityDecl(const QString& name, const QString& value);
401  bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId);
402 
403  QString errorString() const;
404 
405 private:
406  QXmlDefaultHandlerPrivate *d;
407  Q_DISABLE_COPY(QXmlDefaultHandler)
408 };
409 
410 // inlines
411 
412 inline int QXmlAttributes::count() const
413 { return length(); }
414 
415 QT_END_NAMESPACE
416 
417 QT_END_HEADER
418 
419 #endif // QXML_H
virtual QXmlDeclHandler * declHandler() const =0
Definition: qxml.h:330
virtual void setDTDHandler(QXmlDTDHandler *handler)=0
virtual ~QXmlDTDHandler()
Definition: qxml.h:324
virtual QXmlLexicalHandler * lexicalHandler() const =0
virtual bool feature(const QString &name, bool *ok=0) const =0
QXmlDefaultHandler()
Definition: qxml.h:367
QXmlAttributesPrivate * d
Definition: qxml.h:144
QXmlNamespaceSupportPrivate * d
Definition: qxml.h:101
virtual QXmlEntityResolver * entityResolver() const =0
Definition: qxml.h:338
virtual void setProperty(const QString &name, void *value)=0
QString value
Definition: qxml.h:139
Definition: qxml.h:81
virtual ~QXmlLexicalHandler()
Definition: qxml.h:341
Definition: qxml.h:352
Definition: qxml.h:151
Definition: qxml.h:321
virtual ~QXmlDefaultHandler()
Definition: qxml.h:368
QList< Attribute > AttributeList
Definition: qxml.h:141
virtual void setFeature(const QString &name, bool value)=0
virtual ~QXmlContentHandler()
Definition: qxml.h:296
QXmlDefaultHandlerPrivate * d
Definition: qxml.h:406
static const ushort EndOfDocument
Definition: qxml.h:166
virtual bool parse(const QXmlInputSource &input)=0
virtual ~QXmlErrorHandler()
Definition: qxml.h:314
virtual QXmlErrorHandler * errorHandler() const =0
QXmlInputSourcePrivate * d
Definition: qxml.h:178
QXmlParseExceptionPrivate * d
Definition: qxml.h:199
virtual void * property(const QString &name, bool *ok=0) const =0
virtual ~QXmlDeclHandler()
Definition: qxml.h:355
Definition: qxml.h:207
static const ushort EndOfData
Definition: qxml.h:165
Definition: qxml.h:112
virtual void setDeclHandler(QXmlDeclHandler *handler)=0
Definition: asyncJobServer.h:39
virtual ~QXmlReader()
Definition: qxml.h:210
virtual bool hasFeature(const QString &name) const =0
Definition: qxml.h:277
voidpf stream
Definition: ioapi.h:39
QXmlAttributes()
Definition: qxml.h:115
Definition: qxml.h:233
Definition: qxml.h:311
virtual ~QXmlAttributes()
Definition: qxml.h:116
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
virtual ~QXmlEntityResolver()
Definition: qxml.h:333
int count() const
Definition: qxml.h:412
Definition: qxml.h:138
virtual void setErrorHandler(QXmlErrorHandler *handler)=0
Definition: qxml.h:364
virtual QXmlContentHandler * contentHandler() const =0
Definition: qxml.h:185
virtual void setLexicalHandler(QXmlLexicalHandler *handler)=0
virtual QXmlDTDHandler * DTDHandler() const =0
virtual void setContentHandler(QXmlContentHandler *handler)=0
Definition: qxml.h:293
AttributeList attList
Definition: qxml.h:142
virtual bool hasProperty(const QString &name) const =0
virtual void setEntityResolver(QXmlEntityResolver *handler)=0

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)