summaryrefslogtreecommitdiffstats
path: root/src/xml/qdom.h
blob: 2cd1e3f5d7042357b59c273c293d5450c000ac63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
/****************************************************************************
**
** Definition of TQDomDocument and related classes.
**
** Created : 000518
**
** Copyright (C) 1992-2008 Trolltech ASA.  All rights reserved.
**
** This file is part of the xml module of the TQt GUI Toolkit.
**
** This file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free
** Software Foundation and appearing in the files LICENSE.GPL2
** and LICENSE.GPL3 included in the packaging of this file.
** Alternatively you may (at your option) use any later version
** of the GNU General Public License if such license has been
** publicly approved by Trolltech ASA (or its successors, if any)
** and the KDE Free TQt Foundation.
**
** Please review the following information to ensure GNU General
** Public Licensing requirements will be met:
** http://trolltech.com/products/qt/licenses/licensing/opensource/.
** If you are unsure which license is appropriate for your use, please
** review the following information:
** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
** or contact the sales department at sales@trolltech.com.
**
** This file may be used under the terms of the Q Public License as
** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
** included in the packaging of this file.  Licensees holding valid TQt
** Commercial licenses may use this file in accordance with the TQt
** Commercial License Agreement provided with the Software.
**
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
** herein.
**
**********************************************************************/

#ifndef TQDOM_H
#define TQDOM_H

#ifndef QT_H
#include "qstring.h"
#endif // QT_H

#if !defined(QT_MODULE_XML) || defined( QT_LICENSE_PROFESSIONAL ) || defined( QT_INTERNAL_XML )
#define TQM_EXPORT_DOM
#else
#define TQM_EXPORT_DOM Q_EXPORT
#endif

#ifndef QT_NO_DOM

class TQIODevice;
class TQTextStream;

class TQXmlInputSource;
class TQXmlReader;

class TQDomDocumentPrivate;
class TQDomDocumentTypePrivate;
class TQDomDocumentFragmentPrivate;
class TQDomNodePrivate;
class TQDomNodeListPrivate;
class TQDomImplementationPrivate;
class TQDomElementPrivate;
class TQDomNotationPrivate;
class TQDomEntityPrivate;
class TQDomEntityReferencePrivate;
class TQDomProcessingInstructionPrivate;
class TQDomAttrPrivate;
class TQDomCharacterDataPrivate;
class TQDomTextPrivate;
class TQDomCommentPrivate;
class TQDomCDATASectionPrivate;
class TQDomNamedNodeMapPrivate;
class TQDomImplementationPrivate;

class TQDomNodeList;
class TQDomElement;
class TQDomText;
class TQDomComment;
class TQDomCDATASection;
class TQDomProcessingInstruction;
class TQDomAttr;
class TQDomEntityReference;
class TQDomDocument;
class TQDomNamedNodeMap;
class TQDomDocument;
class TQDomDocumentFragment;
class TQDomDocumentType;
class TQDomImplementation;
class TQDomNode;
class TQDomEntity;
class TQDomNotation;
class TQDomCharacterData;

class TQM_EXPORT_DOM TQDomImplementation
{
public:
    TQDomImplementation();
    TQDomImplementation( const TQDomImplementation& );
    virtual ~TQDomImplementation();
    TQDomImplementation& operator= ( const TQDomImplementation& );
    bool operator== ( const TQDomImplementation& ) const;
    bool operator!= ( const TQDomImplementation& ) const;

    // functions
    virtual bool hasFeature( const TQString& feature, const TQString& version );
    virtual TQDomDocumentType createDocumentType( const TQString& qName, const TQString& publicId, const TQString& systemId );
    virtual TQDomDocument createDocument( const TQString& nsURI, const TQString& qName, const TQDomDocumentType& doctype );

    // TQt extension
    bool isNull();

private:
    TQDomImplementationPrivate* impl;
    TQDomImplementation( TQDomImplementationPrivate* );

    friend class TQDomDocument;
};

class TQM_EXPORT_DOM TQDomNode
{
public:
    enum NodeType {
	ElementNode               = 1,
	AttributeNode             = 2,
	TextNode                  = 3,
	CDATASectionNode          = 4,
	EntityReferenceNode       = 5,
	EntityNode                = 6,
	ProcessingInstructionNode = 7,
	CommentNode               = 8,
	DocumentNode              = 9,
	DocumentTypeNode          = 10,
	DocumentFragmentNode      = 11,
	NotationNode              = 12,
	BaseNode                  = 21,// this is not in the standard
	CharacterDataNode         = 22 // this is not in the standard
    };

    TQDomNode();
    TQDomNode( const TQDomNode& );
    TQDomNode& operator= ( const TQDomNode& );
    bool operator== ( const TQDomNode& ) const;
    bool operator!= ( const TQDomNode& ) const;
    virtual ~TQDomNode();

    // DOM functions
    virtual TQDomNode insertBefore( const TQDomNode& newChild, const TQDomNode& refChild );
    virtual TQDomNode insertAfter( const TQDomNode& newChild, const TQDomNode& refChild );
    virtual TQDomNode replaceChild( const TQDomNode& newChild, const TQDomNode& oldChild );
    virtual TQDomNode removeChild( const TQDomNode& oldChild );
    virtual TQDomNode appendChild( const TQDomNode& newChild );
    virtual bool hasChildNodes() const;
    virtual TQDomNode cloneNode( bool deep = TRUE ) const;
    virtual void normalize();
    virtual bool isSupported( const TQString& feature, const TQString& version ) const;

    // DOM read only attributes
    virtual TQString nodeName() const;
    virtual TQDomNode::NodeType nodeType() const;
    virtual TQDomNode         parentNode() const;
    virtual TQDomNodeList     childNodes() const;
    virtual TQDomNode         firstChild() const;
    virtual TQDomNode         lastChild() const;
    virtual TQDomNode         previousSibling() const;
    virtual TQDomNode         nextSibling() const;
    virtual TQDomNamedNodeMap attributes() const;
    virtual TQDomDocument     ownerDocument() const;
    virtual TQString namespaceURI() const;
    virtual TQString localName() const;
    virtual bool hasAttributes() const;

    // DOM attributes
    virtual TQString nodeValue() const;
    virtual void setNodeValue( const TQString& );
    virtual TQString prefix() const;
    virtual void setPrefix( const TQString& pre );

    // TQt extensions
    virtual bool isAttr() const;
    virtual bool isCDATASection() const;
    virtual bool isDocumentFragment() const;
    virtual bool isDocument() const;
    virtual bool isDocumentType() const;
    virtual bool isElement() const;
    virtual bool isEntityReference() const;
    virtual bool isText() const;
    virtual bool isEntity() const;
    virtual bool isNotation() const;
    virtual bool isProcessingInstruction() const;
    virtual bool isCharacterData() const;
    virtual bool isComment() const;

    /**
     * Shortcut to avoid dealing with TQDomNodeList
     * all the time.
     */
    TQDomNode namedItem( const TQString& name ) const;

    bool isNull() const;
    void clear();

    TQDomAttr toAttr();
    TQDomCDATASection toCDATASection();
    TQDomDocumentFragment toDocumentFragment();
    TQDomDocument toDocument();
    TQDomDocumentType toDocumentType();
    TQDomElement toElement();
    TQDomEntityReference toEntityReference();
    TQDomText toText();
    TQDomEntity toEntity();
    TQDomNotation toNotation();
    TQDomProcessingInstruction toProcessingInstruction();
    TQDomCharacterData toCharacterData();
    TQDomComment toComment();

    void save( TQTextStream&, int ) const;

protected:
    TQDomNodePrivate* impl;
    TQDomNode( TQDomNodePrivate* );

private:
    friend class TQDomDocument;
    friend class TQDomDocumentType;
    friend class TQDomNodeList;
    friend class TQDomNamedNodeMap;
};

class TQM_EXPORT_DOM TQDomNodeList
{
public:
    TQDomNodeList();
    TQDomNodeList( const TQDomNodeList& );
    TQDomNodeList& operator= ( const TQDomNodeList& );
    bool operator== ( const TQDomNodeList& ) const;
    bool operator!= ( const TQDomNodeList& ) const;
    virtual ~TQDomNodeList();

    // DOM functions
    virtual TQDomNode item( int index ) const;

    // DOM read only attributes
    virtual uint length() const;
    uint count() const { return length(); } // TQt API consitancy

private:
    TQDomNodeListPrivate* impl;
    TQDomNodeList( TQDomNodeListPrivate* );

    friend class TQDomNode;
    friend class TQDomElement;
    friend class TQDomDocument;
};

class TQM_EXPORT_DOM TQDomDocumentType : public TQDomNode
{
public:
    TQDomDocumentType();
    TQDomDocumentType( const TQDomDocumentType& x );
    TQDomDocumentType& operator= ( const TQDomDocumentType& );
    ~TQDomDocumentType();

    // DOM read only attributes
    virtual TQString name() const;
    virtual TQDomNamedNodeMap entities() const;
    virtual TQDomNamedNodeMap notations() const;
    virtual TQString publicId() const;
    virtual TQString systemId() const;
    virtual TQString internalSubset() const;

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isDocumentType() const;

private:
    TQDomDocumentType( TQDomDocumentTypePrivate* );

    friend class TQDomImplementation;
    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomDocument : public TQDomNode
{
public:
    TQDomDocument();
    Q_EXPLICIT TQDomDocument( const TQString& name );
    Q_EXPLICIT TQDomDocument( const TQDomDocumentType& doctype );
    TQDomDocument( const TQDomDocument& x );
    TQDomDocument& operator= ( const TQDomDocument& );
    ~TQDomDocument();

    // DOM functions
    TQDomElement createElement( const TQString& tagName );
    TQDomDocumentFragment createDocumentFragment();
    TQDomText createTextNode( const TQString& data );
    TQDomComment createComment( const TQString& data );
    TQDomCDATASection createCDATASection( const TQString& data );
    TQDomProcessingInstruction createProcessingInstruction( const TQString& target, const TQString& data );
    TQDomAttr createAttribute( const TQString& name );
    TQDomEntityReference createEntityReference( const TQString& name );
    TQDomNodeList elementsByTagName( const TQString& tagname ) const;
    TQDomNode importNode( const TQDomNode& importedNode, bool deep );
    TQDomElement createElementNS( const TQString& nsURI, const TQString& qName );
    TQDomAttr createAttributeNS( const TQString& nsURI, const TQString& qName );
    TQDomNodeList elementsByTagNameNS( const TQString& nsURI, const TQString& localName );
    TQDomElement elementById( const TQString& elementId );

    // DOM read only attributes
    TQDomDocumentType doctype() const;
    TQDomImplementation implementation() const;
    TQDomElement documentElement() const;

    // TQt extensions
    bool setContent( const TQCString& text, bool namespaceProcessing, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( const TQByteArray& text, bool namespaceProcessing, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( const TQString& text, bool namespaceProcessing, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( TQIODevice* dev, bool namespaceProcessing, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( const TQCString& text, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
    bool setContent( const TQByteArray& text, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( const TQString& text, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );
    bool setContent( TQIODevice* dev, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );

    bool setContent( TQXmlInputSource *source, TQXmlReader *reader, TQString *errorMsg=0, int *errorLine=0, int *errorColumn=0  );

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isDocument() const;

    // TQt extensions
    TQString toString() const; // ### TQt 4: merge the two overloads
    TQString toString( int ) const;
    TQCString toCString() const; // ### TQt 4: merge the two overloads
    TQCString toCString( int ) const;

private:
    TQDomDocument( TQDomDocumentPrivate* );

    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomNamedNodeMap
{
public:
    TQDomNamedNodeMap();
    TQDomNamedNodeMap( const TQDomNamedNodeMap& );
    TQDomNamedNodeMap& operator= ( const TQDomNamedNodeMap& );
    bool operator== ( const TQDomNamedNodeMap& ) const;
    bool operator!= ( const TQDomNamedNodeMap& ) const;
    ~TQDomNamedNodeMap();

    // DOM functions
    TQDomNode namedItem( const TQString& name ) const;
    TQDomNode setNamedItem( const TQDomNode& newNode );
    TQDomNode removeNamedItem( const TQString& name );
    TQDomNode item( int index ) const;
    TQDomNode namedItemNS( const TQString& nsURI, const TQString& localName ) const;
    TQDomNode setNamedItemNS( const TQDomNode& newNode );
    TQDomNode removeNamedItemNS( const TQString& nsURI, const TQString& localName );

    // DOM read only attributes
    uint length() const;
    uint count() const { return length(); } // TQt API consitancy

    // TQt extension
    bool contains( const TQString& name ) const;

private:
    TQDomNamedNodeMapPrivate* impl;
    TQDomNamedNodeMap( TQDomNamedNodeMapPrivate* );

    friend class TQDomNode;
    friend class TQDomDocumentType;
    friend class TQDomElement;
};

class TQM_EXPORT_DOM TQDomDocumentFragment : public TQDomNode
{
public:
    TQDomDocumentFragment();
    TQDomDocumentFragment( const TQDomDocumentFragment& x );
    TQDomDocumentFragment& operator= ( const TQDomDocumentFragment& );
    ~TQDomDocumentFragment();

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isDocumentFragment() const;

private:
    TQDomDocumentFragment( TQDomDocumentFragmentPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomCharacterData : public TQDomNode
{
public:
    TQDomCharacterData();
    TQDomCharacterData( const TQDomCharacterData& x );
    TQDomCharacterData& operator= ( const TQDomCharacterData& );
    ~TQDomCharacterData();

    // DOM functions
    virtual TQString substringData( unsigned long offset, unsigned long count );
    virtual void appendData( const TQString& arg );
    virtual void insertData( unsigned long offset, const TQString& arg );
    virtual void deleteData( unsigned long offset, unsigned long count );
    virtual void replaceData( unsigned long offset, unsigned long count, const TQString& arg );

    // DOM read only attributes
    virtual uint length() const;

    // DOM attributes
    virtual TQString data() const;
    virtual void setData( const TQString& );

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isCharacterData() const;

private:
    TQDomCharacterData( TQDomCharacterDataPrivate* );

    friend class TQDomDocument;
    friend class TQDomText;
    friend class TQDomComment;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomAttr : public TQDomNode
{
public:
    TQDomAttr();
    TQDomAttr( const TQDomAttr& x );
    TQDomAttr& operator= ( const TQDomAttr& );
    ~TQDomAttr();

    // DOM read only attributes
    virtual TQString name() const;
    virtual bool specified() const;
    virtual TQDomElement ownerElement() const;

    // DOM attributes
    virtual TQString value() const;
    virtual void setValue( const TQString& );

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isAttr() const;

private:
    TQDomAttr( TQDomAttrPrivate* );

    friend class TQDomDocument;
    friend class TQDomElement;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomElement : public TQDomNode
{
public:
    TQDomElement();
    TQDomElement( const TQDomElement& x );
    TQDomElement& operator= ( const TQDomElement& );
    ~TQDomElement();

    // DOM functions
    TQString attribute( const TQString& name, const TQString& defValue = TQString::null ) const;
    void setAttribute( const TQString& name, const TQString& value );
    void setAttribute( const TQString& name, int value );
    void setAttribute( const TQString& name, uint value );
    void setAttribute( const TQString& name, long value );
    void setAttribute( const TQString& name, ulong value );
    void setAttribute( const TQString& name, double value );
    void removeAttribute( const TQString& name );
    TQDomAttr attributeNode( const TQString& name);
    TQDomAttr setAttributeNode( const TQDomAttr& newAttr );
    TQDomAttr removeAttributeNode( const TQDomAttr& oldAttr );
    virtual TQDomNodeList elementsByTagName( const TQString& tagname ) const;
    bool hasAttribute( const TQString& name ) const;

    TQString attributeNS( const TQString nsURI, const TQString& localName, const TQString& defValue ) const;
    void setAttributeNS( const TQString nsURI, const TQString& qName, const TQString& value );
    void setAttributeNS( const TQString nsURI, const TQString& qName, int value );
    void setAttributeNS( const TQString nsURI, const TQString& qName, uint value );
    void setAttributeNS( const TQString nsURI, const TQString& qName, long value );
    void setAttributeNS( const TQString nsURI, const TQString& qName, ulong value );
    void setAttributeNS( const TQString nsURI, const TQString& qName, double value );
    void removeAttributeNS( const TQString& nsURI, const TQString& localName );
    TQDomAttr attributeNodeNS( const TQString& nsURI, const TQString& localName );
    TQDomAttr setAttributeNodeNS( const TQDomAttr& newAttr );
    virtual TQDomNodeList elementsByTagNameNS( const TQString& nsURI, const TQString& localName ) const;
    bool hasAttributeNS( const TQString& nsURI, const TQString& localName ) const;

    // DOM read only attributes
    TQString tagName() const;
    void setTagName( const TQString& name ); // TQt extension

    // Reimplemented from TQDomNode
    TQDomNamedNodeMap attributes() const;
    TQDomNode::NodeType nodeType() const;
    bool isElement() const;

    TQString text() const;

private:
    TQDomElement( TQDomElementPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
    friend class TQDomAttr;
};

class TQM_EXPORT_DOM TQDomText : public TQDomCharacterData
{
public:
    TQDomText();
    TQDomText( const TQDomText& x );
    TQDomText& operator= ( const TQDomText& );
    ~TQDomText();

    // DOM functions
    TQDomText splitText( int offset );

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isText() const;

private:
    TQDomText( TQDomTextPrivate* );

    friend class TQDomCDATASection;
    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomComment : public TQDomCharacterData
{
public:
    TQDomComment();
    TQDomComment( const TQDomComment& x );
    TQDomComment& operator= ( const TQDomComment& );
    ~TQDomComment();

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isComment() const;

private:
    TQDomComment( TQDomCommentPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomCDATASection : public TQDomText
{
public:
    TQDomCDATASection();
    TQDomCDATASection( const TQDomCDATASection& x );
    TQDomCDATASection& operator= ( const TQDomCDATASection& );
    ~TQDomCDATASection();

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isCDATASection() const;

private:
    TQDomCDATASection( TQDomCDATASectionPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomNotation : public TQDomNode
{
public:
    TQDomNotation();
    TQDomNotation( const TQDomNotation& x );
    TQDomNotation& operator= ( const TQDomNotation& );
    ~TQDomNotation();

    // DOM read only attributes
    TQString publicId() const;
    TQString systemId() const;

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isNotation() const;

private:
    TQDomNotation( TQDomNotationPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomEntity : public TQDomNode
{
public:
    TQDomEntity();
    TQDomEntity( const TQDomEntity& x );
    TQDomEntity& operator= ( const TQDomEntity& );
    ~TQDomEntity();

    // DOM read only attributes
    virtual TQString publicId() const;
    virtual TQString systemId() const;
    virtual TQString notationName() const;

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isEntity() const;

private:
    TQDomEntity( TQDomEntityPrivate* );

    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomEntityReference : public TQDomNode
{
public:
    TQDomEntityReference();
    TQDomEntityReference( const TQDomEntityReference& x );
    TQDomEntityReference& operator= ( const TQDomEntityReference& );
    ~TQDomEntityReference();

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isEntityReference() const;

private:
    TQDomEntityReference( TQDomEntityReferencePrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};

class TQM_EXPORT_DOM TQDomProcessingInstruction : public TQDomNode
{
public:
    TQDomProcessingInstruction();
    TQDomProcessingInstruction( const TQDomProcessingInstruction& x );
    TQDomProcessingInstruction& operator= ( const TQDomProcessingInstruction& );
    ~TQDomProcessingInstruction();

    // DOM read only attributes
    virtual TQString target() const;

    // DOM attributes
    virtual TQString data() const;
    virtual void setData( const TQString& d );

    // Reimplemented from TQDomNode
    TQDomNode::NodeType nodeType() const;
    bool isProcessingInstruction() const;

private:
    TQDomProcessingInstruction( TQDomProcessingInstructionPrivate* );

    friend class TQDomDocument;
    friend class TQDomNode;
};


TQM_EXPORT_DOM TQTextStream& operator<<( TQTextStream&, const TQDomNode& );

#endif //QT_NO_DOM
#endif // TQDOM_H