summaryrefslogtreecommitdiffabout
path: root/qtcompat/xml/qdom.h
Unidiff
Diffstat (limited to 'qtcompat/xml/qdom.h') (more/less context) (ignore whitespace changes)
-rw-r--r--qtcompat/xml/qdom.h611
1 files changed, 611 insertions, 0 deletions
diff --git a/qtcompat/xml/qdom.h b/qtcompat/xml/qdom.h
new file mode 100644
index 0000000..eb257ea
--- a/dev/null
+++ b/qtcompat/xml/qdom.h
@@ -0,0 +1,611 @@
1/****************************************************************************
2** $Id$
3**
4** Definition of QDomDocument and related classes.
5**
6** Created : 000518
7**
8** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
9**
10** This file is part of the XML module of the Qt GUI Toolkit.
11**
12** This file may be distributed under the terms of the Q Public License
13** as defined by Trolltech AS of Norway and appearing in the file
14** LICENSE.QPL included in the packaging of this file.
15**
16** This file may be distributed and/or modified under the terms of the
17** GNU General Public License version 2 as published by the Free Software
18** Foundation and appearing in the file LICENSE.GPL included in the
19** packaging of this file.
20**
21** Licensees holding valid Qt Enterprise Edition licenses may use this
22** file in accordance with the Qt Commercial License Agreement provided
23** with the Software.
24**
25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27**
28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29** information about Qt Commercial License Agreements.
30** See http://www.trolltech.com/qpl/ for QPL licensing information.
31** See http://www.trolltech.com/gpl/ for GPL licensing information.
32**
33** Contact info@trolltech.com if any conditions of this licensing are
34** not clear to you.
35**
36**********************************************************************/
37
38/******************************************
39 * DOM support is disabled in QT 2.3.7 for sharp zaurus.
40 * Because of that we copied the code from 2.3.7 into qtcompat and enabled it
41 * there.
42 * Copyright (c) 2004 Ulf Schenk
43 *
44 * $Id$
45 ******************************************/
46
47#ifndef QDOM_H
48#define QDOM_H
49
50#ifndef QT_H
51#include <qstring.h>
52#include <qdict.h>
53#include <qrect.h>
54#include <qfont.h>
55#include <qpen.h>
56#include <qpoint.h>
57#include <qsize.h>
58#include <qvariant.h>
59#include <qmime.h>
60#endif // QT_H
61
62#include <qmodules.h>
63
64//US #if !defined(QT_MODULE_XML)
65//US #define QM_EXPORT
66//US #else
67#define QM_EXPORT Q_EXPORT
68//US #endif
69
70//US #ifndef QT_NO_DOM
71class QWidget;
72class QLayout;
73class QIODevice;
74class QTextStream;
75
76class QDOM_DocumentPrivate;
77class QDOM_DocumentTypePrivate;
78class QDOM_DocumentFragmentPrivate;
79class QDOM_NodePrivate;
80class QDOM_NodeListPrivate;
81class QDOM_ImplementationPrivate;
82class QDOM_ElementPrivate;
83class QDOM_NotationPrivate;
84class QDOM_EntityPrivate;
85class QDOM_EntityReferencePrivate;
86class QDOM_ProcessingInstructionPrivate;
87class QDOM_AttrPrivate;
88class QDOM_CharacterDataPrivate;
89class QDOM_TextPrivate;
90class QDOM_CommentPrivate;
91class QDOM_CDATASectionPrivate;
92class QDOM_NamedNodeMapPrivate;
93class QDOM_ImplementationPrivate;
94
95class QDomNodeList;
96class QDomElement;
97class QDomText;
98class QDomComment;
99class QDomCDATASection;
100class QDomProcessingInstruction;
101class QDomAttr;
102class QDomEntityReference;
103class QDomDocument;
104class QDomNamedNodeMap;
105class QDomDocument;
106class QDomDocumentFragment;
107class QDomDocumentType;
108class QDomImplementation;
109class QDomNode;
110class QDomEntity;
111class QDomNotation;
112class QDomCharacterData;
113
114class QM_EXPORT QDomImplementation
115{
116public:
117 QDomImplementation();
118 QDomImplementation( const QDomImplementation& );
119 virtual ~QDomImplementation();
120 QDomImplementation& operator= ( const QDomImplementation& );
121 bool operator== ( const QDomImplementation& ) const;
122 bool operator!= ( const QDomImplementation& ) const;
123
124 virtual bool hasFeature( const QString& feature, const QString& version );
125
126 bool isNull();
127
128private:
129 QDomImplementation( QDOM_ImplementationPrivate* );
130
131 QDOM_ImplementationPrivate* impl;
132
133 friend class QDomDocument;
134};
135
136class QM_EXPORT QDomNode // Ok
137{
138public:
139 enum NodeType {
140 BaseNode = 0,
141 ElementNode = 1,
142 AttributeNode = 2,
143 TextNode = 3,
144 CDATASectionNode = 4,
145 EntityReferenceNode = 5,
146 EntityNode = 6,
147 ProcessingInstructionNode = 7,
148 CommentNode = 8,
149 DocumentNode = 9,
150 DocumentTypeNode = 10,
151 DocumentFragmentNode = 11,
152 NotationNode = 12,
153 CharacterDataNode = 13
154 };
155
156 QDomNode();
157 QDomNode( const QDomNode& );
158 QDomNode& operator= ( const QDomNode& );
159 bool operator== ( const QDomNode& ) const;
160 bool operator!= ( const QDomNode& ) const;
161 virtual ~QDomNode();
162
163 virtual QString nodeName() const;
164 virtual QString nodeValue() const;
165 virtual void setNodeValue( const QString& );
166 virtual QDomNode::NodeType nodeType() const;
167
168 virtual QDomNode parentNode() const;
169 virtual QDomNodeList childNodes() const;
170 virtual QDomNode firstChild() const;
171 virtual QDomNode lastChild() const;
172 virtual QDomNode previousSibling() const;
173 virtual QDomNode nextSibling() const;
174 virtual QDomNamedNodeMap attributes() const;
175 virtual QDomDocument ownerDocument() const;
176
177 virtual QDomNode insertBefore( const QDomNode& newChild, const QDomNode& refChild );
178 virtual QDomNode insertAfter( const QDomNode& newChild, const QDomNode& refChild );
179 virtual QDomNode replaceChild( const QDomNode& newChild, const QDomNode& oldChild );
180 virtual QDomNode removeChild( const QDomNode& oldChild );
181 virtual QDomNode appendChild( const QDomNode& newChild );
182 virtual QDomNode cloneNode( bool deep = TRUE ) const;
183
184 // Qt extension
185 virtual bool isAttr() const;
186 virtual bool isCDATASection() const;
187 virtual bool isDocumentFragment() const;
188 virtual bool isDocument() const;
189 virtual bool isDocumentType() const;
190 virtual bool isElement() const;
191 virtual bool isEntityReference() const;
192 virtual bool isText() const;
193 virtual bool isEntity() const;
194 virtual bool isNotation() const;
195 virtual bool isProcessingInstruction() const;
196 virtual bool isCharacterData() const;
197 virtual bool isComment() const;
198
199 /**
200 * Shortcut to avoid dealing with QDomNodeList
201 * all the time.
202 */
203 QDomNode namedItem( const QString& name ) const;
204
205 bool isNull() const;
206 void clear();
207
208 QDomAttr toAttr();
209 QDomCDATASection toCDATASection();
210 QDomDocumentFragment toDocumentFragment();
211 QDomDocument toDocument();
212 QDomDocumentType toDocumentType();
213 QDomElement toElement();
214 QDomEntityReference toEntityReference();
215 QDomText toText();
216 QDomEntity toEntity();
217 QDomNotation toNotation();
218 QDomProcessingInstruction toProcessingInstruction();
219 QDomCharacterData toCharacterData();
220 QDomComment toComment();
221
222 void save( QTextStream&, int ) const;
223
224protected:
225 QDOM_NodePrivate* impl;
226 QDomNode( QDOM_NodePrivate* );
227
228private:
229 friend class QDomDocument;
230 friend class QDomDocumentType;
231 friend class QDomNodeList;
232 friend class QDomNamedNodeMap;
233};
234
235class QM_EXPORT QDomNodeList // Ok
236{
237public:
238 QDomNodeList();
239 QDomNodeList( const QDomNodeList& );
240 QDomNodeList& operator= ( const QDomNodeList& );
241 bool operator== ( const QDomNodeList& ) const;
242 bool operator!= ( const QDomNodeList& ) const;
243 virtual ~QDomNodeList();
244
245 virtual QDomNode item( int index ) const;
246 virtual uint length() const;
247 uint count() const { return length(); } // Qt API consitancy
248
249 QDomNodeList( QDOM_NodeListPrivate* );
250private:
251 QDOM_NodeListPrivate* impl;
252};
253
254class QM_EXPORT QDomDocumentType : public QDomNode
255{
256public:
257 QDomDocumentType();
258 QDomDocumentType( const QDomDocumentType& x );
259 QDomDocumentType& operator= ( const QDomDocumentType& );
260 ~QDomDocumentType();
261
262 virtual QString name() const;
263 virtual QDomNamedNodeMap entities() const;
264 virtual QDomNamedNodeMap notations() const;
265
266 // Reimplemented from QDomNode
267 QDomNode::NodeType nodeType() const;
268 bool isDocumentType() const;
269
270private:
271 QDomDocumentType( QDOM_DocumentTypePrivate* );
272
273 friend class QDomDocument;
274 friend class QDomNode;
275};
276
277class QM_EXPORT QDomDocument : public QDomNode
278{
279public:
280 QDomDocument();
281 QDomDocument( const QString& name );
282 QDomDocument( const QDomDocument& x );
283 QDomDocument& operator= ( const QDomDocument& );
284 ~QDomDocument();
285
286 // Qt extensions
287 bool setContent( const QCString& text );
288 bool setContent( const QByteArray& text );
289 bool setContent( const QString& text );
290 bool setContent( QIODevice* dev );
291
292 // QDomAttributes
293 QDomDocumentType doctype() const;
294 QDomImplementation implementation() const;
295 QDomElement documentElement() const;
296
297 // Factories
298 QDomElement createElement( const QString& tagName );
299 QDomDocumentFragment createDocumentFragment();
300 QDomText createTextNode( const QString& data );
301 QDomComment createComment( const QString& data );
302 QDomCDATASection createCDATASection( const QString& data );
303 QDomProcessingInstruction createProcessingInstruction( const QString& target, const QString& data );
304 QDomAttr createAttribute( const QString& name );
305 QDomEntityReference createEntityReference( const QString& name );
306 QDomNodeList elementsByTagName( const QString& tagname ) const;
307
308 // Reimplemented from QDomNode
309 QDomNode::NodeType nodeType() const;
310 bool isDocument() const;
311
312 // Qt extensions
313 QString toString() const;
314 QCString toCString() const { return toString().utf8(); }
315
316private:
317 QDomDocument( QDOM_DocumentPrivate* );
318
319 friend class QDomNode;
320};
321
322class QM_EXPORT QDomNamedNodeMap
323{
324public:
325 QDomNamedNodeMap();
326 QDomNamedNodeMap( const QDomNamedNodeMap& );
327 QDomNamedNodeMap& operator= ( const QDomNamedNodeMap& );
328 bool operator== ( const QDomNamedNodeMap& ) const;
329 bool operator!= ( const QDomNamedNodeMap& ) const;
330 ~QDomNamedNodeMap();
331
332 QDomNode namedItem( const QString& name ) const;
333 QDomNode setNamedItem( const QDomNode& arg );
334 QDomNode removeNamedItem( const QString& name );
335 QDomNode item( int index ) const;
336 uint length() const;
337 bool contains( const QString& name ) const;
338
339private:
340 friend class QDomNode;
341 friend class QDomDocumentType;
342 friend class QDomElement;
343
344 QDomNamedNodeMap( QDOM_NamedNodeMapPrivate* );
345
346 QDOM_NamedNodeMapPrivate* impl;
347};
348
349class QM_EXPORT QDomDocumentFragment : public QDomNode
350{
351public:
352 QDomDocumentFragment();
353 QDomDocumentFragment( const QDomDocumentFragment& x );
354 QDomDocumentFragment& operator= ( const QDomDocumentFragment& );
355 ~QDomDocumentFragment();
356
357 // Reimplemented from QDomNode
358 QDomNode::NodeType nodeType() const;
359 bool isDocumentFragment() const;
360
361private:
362 QDomDocumentFragment( QDOM_DocumentFragmentPrivate* );
363
364 friend class QDomDocument;
365 friend class QDomNode;
366};
367
368class QM_EXPORT QDomCharacterData : public QDomNode
369{
370public:
371 QDomCharacterData();
372 QDomCharacterData( const QDomCharacterData& x );
373 QDomCharacterData& operator= ( const QDomCharacterData& );
374 ~QDomCharacterData();
375
376 virtual QString data() const;
377 virtual void setData( const QString& );
378 virtual uint length() const;
379
380 virtual QString substringData( unsigned long offset, unsigned long count );
381 virtual void appendData( const QString& arg );
382 virtual void insertData( unsigned long offset, const QString& arg );
383 virtual void deleteData( unsigned long offset, unsigned long count );
384 virtual void replaceData( unsigned long offset, unsigned long count, const QString& arg );
385
386 // Reimplemented from QDomNode
387 QDomNode::NodeType nodeType() const;
388 bool isCharacterData() const;
389
390private:
391 QDomCharacterData( QDOM_CharacterDataPrivate* );
392
393 friend class QDomDocument;
394 friend class QDomText;
395 friend class QDomComment;
396 friend class QDomNode;
397};
398
399class QM_EXPORT QDomAttr : public QDomNode
400{
401public:
402 QDomAttr();
403 QDomAttr( const QDomAttr& x );
404 QDomAttr& operator= ( const QDomAttr& );
405 ~QDomAttr();
406
407 virtual QString name() const;
408 virtual bool specified() const;
409 virtual QString value() const;
410 virtual void setValue( const QString& );
411
412 // Reimplemented from QDomNode
413 QDomNode::NodeType nodeType() const;
414 bool isAttr() const;
415
416private:
417 QDomAttr( QDOM_AttrPrivate* );
418
419 friend class QDomDocument;
420 friend class QDomElement;
421 friend class QDomNode;
422};
423
424class QM_EXPORT QDomElement : public QDomNode
425{
426public:
427 QDomElement();
428 QDomElement( const QDomElement& x );
429 QDomElement& operator= ( const QDomElement& );
430 ~QDomElement();
431
432 void setTagName( const QString& name );
433 QString tagName() const;
434 QString attribute( const QString& name, const QString& defValue = QString::null ) const;
435 void setAttribute( const QString& name, const QString& value );
436 void setAttribute( const QString& name, int value );
437 void setAttribute( const QString& name, uint value );
438 void setAttribute( const QString& name, double value );
439 void removeAttribute( const QString& name );
440 QDomAttr attributeNode( const QString& name);
441 QDomAttr setAttributeNode( const QDomAttr& newAttr );
442 QDomAttr removeAttributeNode( const QDomAttr& oldAttr );
443 bool hasAttribute( const QString& name ) const;
444 virtual QDomNodeList elementsByTagName( const QString& tagname ) const;
445 void normalize();
446
447 // Reimplemented from QDomNode
448 QDomNamedNodeMap attributes() const;
449 QDomNode::NodeType nodeType() const;
450 bool isElement() const;
451
452 QString text() const;
453
454private:
455 QDomElement( QDOM_ElementPrivate* );
456
457 friend class QDomDocument;
458 friend class QDomNode;
459};
460
461class QM_EXPORT QDomText : public QDomCharacterData
462{
463public:
464 QDomText();
465 QDomText( const QDomText& x );
466 QDomText& operator= ( const QDomText& );
467 ~QDomText();
468
469 QDomText splitText( int offset );
470
471 // Reimplemented from QDomNode
472 QDomNode::NodeType nodeType() const;
473 bool isText() const;
474
475private:
476 QDomText( QDOM_TextPrivate* );
477
478 friend class QDomCDATASection;
479 friend class QDomDocument;
480 friend class QDomNode;
481};
482
483class QM_EXPORT QDomComment : public QDomCharacterData
484{
485public:
486 QDomComment();
487 QDomComment( const QDomComment& x );
488 QDomComment& operator= ( const QDomComment& );
489 ~QDomComment();
490
491 // Reimplemented from QDomNode
492 QDomNode::NodeType nodeType() const;
493 bool isComment() const;
494
495private:
496 QDomComment( QDOM_CommentPrivate* );
497
498 friend class QDomDocument;
499 friend class QDomNode;
500};
501
502class QM_EXPORT QDomCDATASection : public QDomText
503{
504public:
505 QDomCDATASection();
506 QDomCDATASection( const QDomCDATASection& x );
507 QDomCDATASection& operator= ( const QDomCDATASection& );
508 ~QDomCDATASection();
509
510 // Reimplemented from QDomNode
511 QDomNode::NodeType nodeType() const;
512 bool isCDATASection() const;
513
514private:
515 QDomCDATASection( QDOM_CDATASectionPrivate* );
516
517 friend class QDomDocument;
518 friend class QDomNode;
519};
520
521class QM_EXPORT QDomNotation : public QDomNode
522{
523public:
524 QDomNotation();
525 QDomNotation( const QDomNotation& x );
526 QDomNotation& operator= ( const QDomNotation& );
527 ~QDomNotation();
528
529 QString publicId() const;
530 QString systemId() const;
531
532 // Reimplemented from QDomNode
533 QDomNode::NodeType nodeType() const;
534 bool isNotation() const;
535
536private:
537 QDomNotation( QDOM_NotationPrivate* );
538
539 friend class QDomDocument;
540 friend class QDomNode;
541};
542
543class QM_EXPORT QDomEntity : public QDomNode
544{
545public:
546 QDomEntity();
547 QDomEntity( const QDomEntity& x );
548 QDomEntity& operator= ( const QDomEntity& );
549 ~QDomEntity();
550
551 virtual QString publicId() const;
552 virtual QString systemId() const;
553 virtual QString notationName() const;
554
555 // Reimplemented from QDomNode
556 QDomNode::NodeType nodeType() const;
557 bool isEntity() const;
558
559private:
560 QDomEntity( QDOM_EntityPrivate* );
561
562 friend class QDomNode;
563};
564
565class QM_EXPORT QDomEntityReference : public QDomNode
566{
567public:
568 QDomEntityReference();
569 QDomEntityReference( const QDomEntityReference& x );
570 QDomEntityReference& operator= ( const QDomEntityReference& );
571 ~QDomEntityReference();
572
573 // Reimplemented from QDomNode
574 QDomNode::NodeType nodeType() const;
575 bool isEntityReference() const;
576
577private:
578 QDomEntityReference( QDOM_EntityReferencePrivate* );
579
580 friend class QDomDocument;
581 friend class QDomNode;
582};
583
584class QM_EXPORT QDomProcessingInstruction : public QDomNode
585{
586public:
587 QDomProcessingInstruction();
588 QDomProcessingInstruction( const QDomProcessingInstruction& x );
589 QDomProcessingInstruction& operator= ( const QDomProcessingInstruction& );
590 ~QDomProcessingInstruction();
591
592 virtual QString target() const;
593 virtual QString data() const;
594 virtual void setData( const QString& d );
595
596 // Reimplemented from QDomNode
597 QDomNode::NodeType nodeType() const;
598 bool isProcessingInstruction() const;
599
600private:
601 QDomProcessingInstruction( QDOM_ProcessingInstructionPrivate* );
602
603 friend class QDomDocument;
604 friend class QDomNode;
605};
606
607
608QM_EXPORT QTextStream& operator<<( QTextStream&, const QDomNode& );
609
610//US #endif //QT_NO_DOM
611#endif // QDOM_H