Coverage Report

Created: 2025-07-23 08:13

/work/prefix/include/QtXml/qdom.h
Line
Count
Source (jump to first uncovered line)
1
/****************************************************************************
2
**
3
** Copyright (C) 2016 The Qt Company Ltd.
4
** Contact: https://www.qt.io/licensing/
5
**
6
** This file is part of the QtXml module of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and The Qt Company. For licensing terms
14
** and conditions see https://www.qt.io/terms-conditions. For further
15
** information use the contact form at https://www.qt.io/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 3 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL3 included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 3 requirements
23
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24
**
25
** GNU General Public License Usage
26
** Alternatively, this file may be used under the terms of the GNU
27
** General Public License version 2.0 or (at your option) the GNU General
28
** Public license version 3 or any later version approved by the KDE Free
29
** Qt Foundation. The licenses are as published by the Free Software
30
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31
** included in the packaging of this file. Please review the following
32
** information to ensure the GNU General Public License requirements will
33
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34
** https://www.gnu.org/licenses/gpl-3.0.html.
35
**
36
** $QT_END_LICENSE$
37
**
38
****************************************************************************/
39
40
#ifndef QDOM_H
41
#define QDOM_H
42
43
#include <QtXml/qtxmlglobal.h>
44
#include <QtCore/qstring.h>
45
46
QT_BEGIN_NAMESPACE
47
48
49
#ifndef QT_NO_DOM
50
51
class QIODevice;
52
class QTextStream;
53
54
class QXmlInputSource;
55
class QXmlReader;
56
57
class QDomDocumentPrivate;
58
class QDomDocumentTypePrivate;
59
class QDomDocumentFragmentPrivate;
60
class QDomNodePrivate;
61
class QDomNodeListPrivate;
62
class QDomImplementationPrivate;
63
class QDomElementPrivate;
64
class QDomNotationPrivate;
65
class QDomEntityPrivate;
66
class QDomEntityReferencePrivate;
67
class QDomProcessingInstructionPrivate;
68
class QDomAttrPrivate;
69
class QDomCharacterDataPrivate;
70
class QDomTextPrivate;
71
class QDomCommentPrivate;
72
class QDomCDATASectionPrivate;
73
class QDomNamedNodeMapPrivate;
74
class QDomImplementationPrivate;
75
76
class QDomNodeList;
77
class QDomElement;
78
class QDomText;
79
class QDomComment;
80
class QDomCDATASection;
81
class QDomProcessingInstruction;
82
class QDomAttr;
83
class QDomEntityReference;
84
class QDomDocument;
85
class QDomNamedNodeMap;
86
class QDomDocument;
87
class QDomDocumentFragment;
88
class QDomDocumentType;
89
class QDomImplementation;
90
class QDomNode;
91
class QDomEntity;
92
class QDomNotation;
93
class QDomCharacterData;
94
class QXmlStreamReader;
95
96
class Q_XML_EXPORT QDomImplementation
97
{
98
public:
99
    QDomImplementation();
100
    QDomImplementation(const QDomImplementation&);
101
    ~QDomImplementation();
102
    QDomImplementation& operator= (const QDomImplementation&);
103
    bool operator== (const QDomImplementation&) const;
104
    bool operator!= (const QDomImplementation&) const;
105
106
    // functions
107
    bool hasFeature(const QString& feature, const QString& version) const;
108
    QDomDocumentType createDocumentType(const QString& qName, const QString& publicId, const QString& systemId);
109
    QDomDocument createDocument(const QString& nsURI, const QString& qName, const QDomDocumentType& doctype);
110
111
    enum InvalidDataPolicy { AcceptInvalidChars = 0, DropInvalidChars, ReturnNullNode };
112
    static InvalidDataPolicy invalidDataPolicy();
113
    static void setInvalidDataPolicy(InvalidDataPolicy policy);
114
115
    // Qt extension
116
    bool isNull();
117
118
private:
119
    QDomImplementationPrivate* impl;
120
    QDomImplementation(QDomImplementationPrivate*);
121
122
    friend class QDomDocument;
123
};
124
125
class Q_XML_EXPORT QDomNode
126
{
127
public:
128
    enum NodeType {
129
        ElementNode               = 1,
130
        AttributeNode             = 2,
131
        TextNode                  = 3,
132
        CDATASectionNode          = 4,
133
        EntityReferenceNode       = 5,
134
        EntityNode                = 6,
135
        ProcessingInstructionNode = 7,
136
        CommentNode               = 8,
137
        DocumentNode              = 9,
138
        DocumentTypeNode          = 10,
139
        DocumentFragmentNode      = 11,
140
        NotationNode              = 12,
141
        BaseNode                  = 21,// this is not in the standard
142
        CharacterDataNode         = 22 // this is not in the standard
143
    };
144
145
    enum EncodingPolicy
146
    {
147
        EncodingFromDocument      = 1,
148
        EncodingFromTextStream    = 2
149
    };
150
151
    QDomNode();
152
    QDomNode(const QDomNode&);
153
    QDomNode& operator= (const QDomNode&);
154
    bool operator== (const QDomNode&) const;
155
    bool operator!= (const QDomNode&) const;
156
    ~QDomNode();
157
158
    // DOM functions
159
    QDomNode insertBefore(const QDomNode& newChild, const QDomNode& refChild);
160
    QDomNode insertAfter(const QDomNode& newChild, const QDomNode& refChild);
161
    QDomNode replaceChild(const QDomNode& newChild, const QDomNode& oldChild);
162
    QDomNode removeChild(const QDomNode& oldChild);
163
    QDomNode appendChild(const QDomNode& newChild);
164
    bool hasChildNodes() const;
165
    QDomNode cloneNode(bool deep = true) const;
166
    void normalize();
167
    bool isSupported(const QString& feature, const QString& version) const;
168
169
    // DOM read-only attributes
170
    QString nodeName() const;
171
    NodeType nodeType() const;
172
    QDomNode parentNode() const;
173
    QDomNodeList childNodes() const;
174
    QDomNode firstChild() const;
175
    QDomNode lastChild() const;
176
    QDomNode previousSibling() const;
177
    QDomNode nextSibling() const;
178
    QDomNamedNodeMap attributes() const;
179
    QDomDocument ownerDocument() const;
180
    QString namespaceURI() const;
181
    QString localName() const;
182
    bool hasAttributes() const;
183
184
    // DOM attributes
185
    QString nodeValue() const;
186
    void setNodeValue(const QString&);
187
    QString prefix() const;
188
    void setPrefix(const QString& pre);
189
190
    // Qt extensions
191
    bool isAttr() const;
192
    bool isCDATASection() const;
193
    bool isDocumentFragment() const;
194
    bool isDocument() const;
195
    bool isDocumentType() const;
196
    bool isElement() const;
197
    bool isEntityReference() const;
198
    bool isText() const;
199
    bool isEntity() const;
200
    bool isNotation() const;
201
    bool isProcessingInstruction() const;
202
    bool isCharacterData() const;
203
    bool isComment() const;
204
205
    /**
206
     * Shortcut to avoid dealing with QDomNodeList
207
     * all the time.
208
     */
209
    QDomNode namedItem(const QString& name) const;
210
211
    bool isNull() const;
212
    void clear();
213
214
    QDomAttr toAttr() const;
215
    QDomCDATASection toCDATASection() const;
216
    QDomDocumentFragment toDocumentFragment() const;
217
    QDomDocument toDocument() const;
218
    QDomDocumentType toDocumentType() const;
219
    QDomElement toElement() const;
220
    QDomEntityReference toEntityReference() const;
221
    QDomText toText() const;
222
    QDomEntity toEntity() const;
223
    QDomNotation toNotation() const;
224
    QDomProcessingInstruction toProcessingInstruction() const;
225
    QDomCharacterData toCharacterData() const;
226
    QDomComment toComment() const;
227
228
    void save(QTextStream&, int, EncodingPolicy=QDomNode::EncodingFromDocument) const;
229
230
    QDomElement firstChildElement(const QString &tagName = QString()) const;
231
    QDomElement lastChildElement(const QString &tagName = QString()) const;
232
    QDomElement previousSiblingElement(const QString &tagName = QString()) const;
233
    QDomElement nextSiblingElement(const QString &taName = QString()) const;
234
235
    int lineNumber() const;
236
    int columnNumber() const;
237
238
protected:
239
    QDomNodePrivate* impl;
240
    QDomNode(QDomNodePrivate*);
241
242
private:
243
    friend class QDomDocument;
244
    friend class QDomDocumentType;
245
    friend class QDomNodeList;
246
    friend class QDomNamedNodeMap;
247
};
248
249
class Q_XML_EXPORT QDomNodeList
250
{
251
public:
252
    QDomNodeList();
253
    QDomNodeList(const QDomNodeList&);
254
    QDomNodeList& operator= (const QDomNodeList&);
255
    bool operator== (const QDomNodeList&) const;
256
    bool operator!= (const QDomNodeList&) const;
257
    ~QDomNodeList();
258
259
    // DOM functions
260
    QDomNode item(int index) const;
261
0
    inline QDomNode at(int index) const { return item(index); } // Qt API consistency
262
263
    // DOM read only attributes
264
    int length() const;
265
0
    inline int count() const { return length(); } // Qt API consitancy
266
0
    inline int size() const { return length(); } // Qt API consistency
267
0
    inline bool isEmpty() const { return length() == 0; } // Qt API consistency
268
269
private:
270
    QDomNodeListPrivate* impl;
271
    QDomNodeList(QDomNodeListPrivate*);
272
273
    friend class QDomNode;
274
    friend class QDomElement;
275
    friend class QDomDocument;
276
};
277
278
class Q_XML_EXPORT QDomDocumentType : public QDomNode
279
{
280
public:
281
    QDomDocumentType();
282
    QDomDocumentType(const QDomDocumentType& x);
283
    QDomDocumentType& operator= (const QDomDocumentType&);
284
285
    // DOM read only attributes
286
    QString name() const;
287
    QDomNamedNodeMap entities() const;
288
    QDomNamedNodeMap notations() const;
289
    QString publicId() const;
290
    QString systemId() const;
291
    QString internalSubset() const;
292
293
    // Overridden from QDomNode
294
0
    inline QDomNode::NodeType nodeType() const { return DocumentTypeNode; }
295
296
private:
297
    QDomDocumentType(QDomDocumentTypePrivate*);
298
299
    friend class QDomImplementation;
300
    friend class QDomDocument;
301
    friend class QDomNode;
302
};
303
304
class Q_XML_EXPORT QDomDocument : public QDomNode
305
{
306
public:
307
    QDomDocument();
308
    explicit QDomDocument(const QString& name);
309
    explicit QDomDocument(const QDomDocumentType& doctype);
310
    QDomDocument(const QDomDocument& x);
311
    QDomDocument& operator= (const QDomDocument&);
312
    ~QDomDocument();
313
314
    // DOM functions
315
    QDomElement createElement(const QString& tagName);
316
    QDomDocumentFragment createDocumentFragment();
317
    QDomText createTextNode(const QString& data);
318
    QDomComment createComment(const QString& data);
319
    QDomCDATASection createCDATASection(const QString& data);
320
    QDomProcessingInstruction createProcessingInstruction(const QString& target, const QString& data);
321
    QDomAttr createAttribute(const QString& name);
322
    QDomEntityReference createEntityReference(const QString& name);
323
    QDomNodeList elementsByTagName(const QString& tagname) const;
324
    QDomNode importNode(const QDomNode& importedNode, bool deep);
325
    QDomElement createElementNS(const QString& nsURI, const QString& qName);
326
    QDomAttr createAttributeNS(const QString& nsURI, const QString& qName);
327
    QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName);
328
    QDomElement elementById(const QString& elementId);
329
330
    // DOM read only attributes
331
    QDomDocumentType doctype() const;
332
    QDomImplementation implementation() const;
333
    QDomElement documentElement() const;
334
335
    // Overridden from QDomNode
336
0
    inline QDomNode::NodeType nodeType() const { return DocumentNode; }
337
338
    // Qt extensions
339
    bool setContent(const QByteArray& text, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
340
    bool setContent(const QString& text, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
341
    bool setContent(QIODevice* dev, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
342
#if QT_DEPRECATED_SINCE(5, 15)
343
QT_WARNING_PUSH
344
QT_WARNING_DISABLE_DEPRECATED
345
    QT_DEPRECATED_X("Use other overloads instead")
346
    bool setContent(QXmlInputSource *source, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
347
QT_WARNING_POP
348
#endif
349
    bool setContent(const QByteArray& text, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
350
    bool setContent(const QString& text, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
351
    bool setContent(QIODevice* dev, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
352
#if QT_DEPRECATED_SINCE(5, 15)
353
QT_WARNING_PUSH
354
QT_WARNING_DISABLE_DEPRECATED
355
    QT_DEPRECATED_X("Use other overloads instead")
356
    bool setContent(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr );
357
QT_WARNING_POP
358
#endif
359
    bool setContent(QXmlStreamReader *reader, bool namespaceProcessing, QString *errorMsg = nullptr,
360
                    int *errorLine = nullptr, int *errorColumn = nullptr);
361
362
    // Qt extensions
363
    QString toString(int = 1) const;
364
    QByteArray toByteArray(int = 1) const;
365
366
private:
367
    QDomDocument(QDomDocumentPrivate*);
368
369
    friend class QDomNode;
370
};
371
372
class Q_XML_EXPORT QDomNamedNodeMap
373
{
374
public:
375
    QDomNamedNodeMap();
376
    QDomNamedNodeMap(const QDomNamedNodeMap&);
377
    QDomNamedNodeMap& operator= (const QDomNamedNodeMap&);
378
    bool operator== (const QDomNamedNodeMap&) const;
379
    bool operator!= (const QDomNamedNodeMap&) const;
380
    ~QDomNamedNodeMap();
381
382
    // DOM functions
383
    QDomNode namedItem(const QString& name) const;
384
    QDomNode setNamedItem(const QDomNode& newNode);
385
    QDomNode removeNamedItem(const QString& name);
386
    QDomNode item(int index) const;
387
    QDomNode namedItemNS(const QString& nsURI, const QString& localName) const;
388
    QDomNode setNamedItemNS(const QDomNode& newNode);
389
    QDomNode removeNamedItemNS(const QString& nsURI, const QString& localName);
390
391
    // DOM read only attributes
392
    int length() const;
393
0
    int count() const { return length(); } // Qt API consitancy
394
0
    inline int size() const { return length(); } // Qt API consistency
395
0
    inline bool isEmpty() const { return length() == 0; } // Qt API consistency
396
397
    // Qt extension
398
    bool contains(const QString& name) const;
399
400
private:
401
    QDomNamedNodeMapPrivate* impl;
402
    QDomNamedNodeMap(QDomNamedNodeMapPrivate*);
403
404
    friend class QDomNode;
405
    friend class QDomDocumentType;
406
    friend class QDomElement;
407
};
408
409
class Q_XML_EXPORT QDomDocumentFragment : public QDomNode
410
{
411
public:
412
    QDomDocumentFragment();
413
    QDomDocumentFragment(const QDomDocumentFragment& x);
414
    QDomDocumentFragment& operator= (const QDomDocumentFragment&);
415
416
    // Overridden from QDomNode
417
0
    inline QDomNode::NodeType nodeType() const { return DocumentFragmentNode; }
418
419
private:
420
    QDomDocumentFragment(QDomDocumentFragmentPrivate*);
421
422
    friend class QDomDocument;
423
    friend class QDomNode;
424
};
425
426
class Q_XML_EXPORT QDomCharacterData : public QDomNode
427
{
428
public:
429
    QDomCharacterData();
430
    QDomCharacterData(const QDomCharacterData& x);
431
    QDomCharacterData& operator= (const QDomCharacterData&);
432
433
    // DOM functions
434
    QString substringData(unsigned long offset, unsigned long count);
435
    void appendData(const QString& arg);
436
    void insertData(unsigned long offset, const QString& arg);
437
    void deleteData(unsigned long offset, unsigned long count);
438
    void replaceData(unsigned long offset, unsigned long count, const QString& arg);
439
440
    // DOM read only attributes
441
    int length() const;
442
443
    // DOM attributes
444
    QString data() const;
445
    void setData(const QString&);
446
447
    // Overridden from QDomNode
448
    QDomNode::NodeType nodeType() const;
449
450
private:
451
    QDomCharacterData(QDomCharacterDataPrivate*);
452
453
    friend class QDomDocument;
454
    friend class QDomText;
455
    friend class QDomComment;
456
    friend class QDomNode;
457
};
458
459
class Q_XML_EXPORT QDomAttr : public QDomNode
460
{
461
public:
462
    QDomAttr();
463
    QDomAttr(const QDomAttr& x);
464
    QDomAttr& operator= (const QDomAttr&);
465
466
    // DOM read only attributes
467
    QString name() const;
468
    bool specified() const;
469
    QDomElement ownerElement() const;
470
471
    // DOM attributes
472
    QString value() const;
473
    void setValue(const QString&);
474
475
    // Overridden from QDomNode
476
0
    inline QDomNode::NodeType nodeType() const { return AttributeNode; }
477
478
private:
479
    QDomAttr(QDomAttrPrivate*);
480
481
    friend class QDomDocument;
482
    friend class QDomElement;
483
    friend class QDomNode;
484
};
485
486
class Q_XML_EXPORT QDomElement : public QDomNode
487
{
488
public:
489
    QDomElement();
490
    QDomElement(const QDomElement& x);
491
    QDomElement& operator= (const QDomElement&);
492
493
    // DOM functions
494
    QString attribute(const QString& name, const QString& defValue = QString() ) const;
495
    void setAttribute(const QString& name, const QString& value);
496
    void setAttribute(const QString& name, qlonglong value);
497
    void setAttribute(const QString& name, qulonglong value);
498
    inline void setAttribute(const QString& name, int value)
499
0
        { setAttribute(name, qlonglong(value)); }
500
    inline void setAttribute(const QString& name, uint value)
501
0
        { setAttribute(name, qulonglong(value)); }
502
    void setAttribute(const QString& name, float value);
503
    void setAttribute(const QString& name, double value);
504
    void removeAttribute(const QString& name);
505
    QDomAttr attributeNode(const QString& name);
506
    QDomAttr setAttributeNode(const QDomAttr& newAttr);
507
    QDomAttr removeAttributeNode(const QDomAttr& oldAttr);
508
    QDomNodeList elementsByTagName(const QString& tagname) const;
509
    bool hasAttribute(const QString& name) const;
510
511
    QString attributeNS(const QString nsURI, const QString& localName, const QString& defValue = QString()) const;
512
    void setAttributeNS(const QString nsURI, const QString& qName, const QString& value);
513
    inline void setAttributeNS(const QString nsURI, const QString& qName, int value)
514
0
        { setAttributeNS(nsURI, qName, qlonglong(value)); }
515
    inline void setAttributeNS(const QString nsURI, const QString& qName, uint value)
516
0
        { setAttributeNS(nsURI, qName, qulonglong(value)); }
517
    void setAttributeNS(const QString nsURI, const QString& qName, qlonglong value);
518
    void setAttributeNS(const QString nsURI, const QString& qName, qulonglong value);
519
    void setAttributeNS(const QString nsURI, const QString& qName, double value);
520
    void removeAttributeNS(const QString& nsURI, const QString& localName);
521
    QDomAttr attributeNodeNS(const QString& nsURI, const QString& localName);
522
    QDomAttr setAttributeNodeNS(const QDomAttr& newAttr);
523
    QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName) const;
524
    bool hasAttributeNS(const QString& nsURI, const QString& localName) const;
525
526
    // DOM read only attributes
527
    QString tagName() const;
528
    void setTagName(const QString& name); // Qt extension
529
530
    // Overridden from QDomNode
531
    QDomNamedNodeMap attributes() const;
532
0
    inline QDomNode::NodeType nodeType() const { return ElementNode; }
533
534
    QString text() const;
535
536
private:
537
    QDomElement(QDomElementPrivate*);
538
539
    friend class QDomDocument;
540
    friend class QDomNode;
541
    friend class QDomAttr;
542
};
543
544
class Q_XML_EXPORT QDomText : public QDomCharacterData
545
{
546
public:
547
    QDomText();
548
    QDomText(const QDomText& x);
549
    QDomText& operator= (const QDomText&);
550
551
    // DOM functions
552
    QDomText splitText(int offset);
553
554
    // Overridden from QDomCharacterData
555
0
    inline QDomNode::NodeType nodeType() const { return TextNode; }
556
557
private:
558
    QDomText(QDomTextPrivate*);
559
560
    friend class QDomCDATASection;
561
    friend class QDomDocument;
562
    friend class QDomNode;
563
};
564
565
class Q_XML_EXPORT QDomComment : public QDomCharacterData
566
{
567
public:
568
    QDomComment();
569
    QDomComment(const QDomComment& x);
570
    QDomComment& operator= (const QDomComment&);
571
572
    // Overridden from QDomCharacterData
573
0
    inline QDomNode::NodeType nodeType() const { return CommentNode; }
574
575
private:
576
    QDomComment(QDomCommentPrivate*);
577
578
    friend class QDomDocument;
579
    friend class QDomNode;
580
};
581
582
class Q_XML_EXPORT QDomCDATASection : public QDomText
583
{
584
public:
585
    QDomCDATASection();
586
    QDomCDATASection(const QDomCDATASection& x);
587
    QDomCDATASection& operator= (const QDomCDATASection&);
588
589
    // Overridden from QDomText
590
0
    inline QDomNode::NodeType nodeType() const { return CDATASectionNode; }
591
592
private:
593
    QDomCDATASection(QDomCDATASectionPrivate*);
594
595
    friend class QDomDocument;
596
    friend class QDomNode;
597
};
598
599
class Q_XML_EXPORT QDomNotation : public QDomNode
600
{
601
public:
602
    QDomNotation();
603
    QDomNotation(const QDomNotation& x);
604
    QDomNotation& operator= (const QDomNotation&);
605
606
    // DOM read only attributes
607
    QString publicId() const;
608
    QString systemId() const;
609
610
    // Overridden from QDomNode
611
0
    inline QDomNode::NodeType nodeType() const { return NotationNode; }
612
613
private:
614
    QDomNotation(QDomNotationPrivate*);
615
616
    friend class QDomDocument;
617
    friend class QDomNode;
618
};
619
620
class Q_XML_EXPORT QDomEntity : public QDomNode
621
{
622
public:
623
    QDomEntity();
624
    QDomEntity(const QDomEntity& x);
625
    QDomEntity& operator= (const QDomEntity&);
626
627
    // DOM read only attributes
628
    QString publicId() const;
629
    QString systemId() const;
630
    QString notationName() const;
631
632
    // Overridden from QDomNode
633
0
    inline QDomNode::NodeType nodeType() const { return EntityNode; }
634
635
private:
636
    QDomEntity(QDomEntityPrivate*);
637
638
    friend class QDomNode;
639
};
640
641
class Q_XML_EXPORT QDomEntityReference : public QDomNode
642
{
643
public:
644
    QDomEntityReference();
645
    QDomEntityReference(const QDomEntityReference& x);
646
    QDomEntityReference& operator= (const QDomEntityReference&);
647
648
    // Overridden from QDomNode
649
0
    inline QDomNode::NodeType nodeType() const { return EntityReferenceNode; }
650
651
private:
652
    QDomEntityReference(QDomEntityReferencePrivate*);
653
654
    friend class QDomDocument;
655
    friend class QDomNode;
656
};
657
658
class Q_XML_EXPORT QDomProcessingInstruction : public QDomNode
659
{
660
public:
661
    QDomProcessingInstruction();
662
    QDomProcessingInstruction(const QDomProcessingInstruction& x);
663
    QDomProcessingInstruction& operator= (const QDomProcessingInstruction&);
664
665
    // DOM read only attributes
666
    QString target() const;
667
668
    // DOM attributes
669
    QString data() const;
670
    void setData(const QString& d);
671
672
    // Overridden from QDomNode
673
0
    inline QDomNode::NodeType nodeType() const { return ProcessingInstructionNode; }
674
675
private:
676
    QDomProcessingInstruction(QDomProcessingInstructionPrivate*);
677
678
    friend class QDomDocument;
679
    friend class QDomNode;
680
};
681
682
683
Q_XML_EXPORT QTextStream& operator<<(QTextStream&, const QDomNode&);
684
685
#endif // QT_NO_DOM
686
687
QT_END_NAMESPACE
688
689
#endif // QDOM_H