qdom.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00004 ** All rights reserved.
00005 ** Contact: Nokia Corporation (qt-info@nokia.com)
00006 **
00007 ** This file is part of the QtXml module of the Qt Toolkit.
00008 **
00009 ** $QT_BEGIN_LICENSE:LGPL$
00010 ** Commercial Usage
00011 ** Licensees holding valid Qt Commercial licenses may use this file in
00012 ** accordance with the Qt Commercial License Agreement provided with the
00013 ** Software or, alternatively, in accordance with the terms contained in
00014 ** a written agreement between you and Nokia.
00015 **
00016 ** GNU Lesser General Public License Usage
00017 ** Alternatively, this file may be used under the terms of the GNU Lesser
00018 ** General Public License version 2.1 as published by the Free Software
00019 ** Foundation and appearing in the file LICENSE.LGPL included in the
00020 ** packaging of this file.  Please review the following information to
00021 ** ensure the GNU Lesser General Public License version 2.1 requirements
00022 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00023 **
00024 ** In addition, as a special exception, Nokia gives you certain additional
00025 ** rights.  These rights are described in the Nokia Qt LGPL Exception
00026 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this module.
00027 **
00028 ** GNU General Public License Usage
00029 ** Alternatively, this file may be used under the terms of the GNU
00030 ** General Public License version 3.0 as published by the Free Software
00031 ** Foundation and appearing in the file LICENSE.GPL included in the
00032 ** packaging of this file.  Please review the following information to
00033 ** ensure the GNU General Public License version 3.0 requirements will be
00034 ** met: http://www.gnu.org/copyleft/gpl.html.
00035 **
00036 ** If you have questions regarding the use of this file, please contact
00037 ** Nokia at qt-info@nokia.com.
00038 ** $QT_END_LICENSE$
00039 **
00040 ****************************************************************************/
00041 
00042 #ifndef QDOM_H
00043 #define QDOM_H
00044 
00045 #include <QtCore/qstring.h>
00046 
00047 QT_BEGIN_HEADER
00048 
00049 QT_BEGIN_NAMESPACE
00050 
00051 QT_MODULE(Xml)
00052 
00053 #ifndef QT_NO_DOM
00054 
00055 class QIODevice;
00056 class QTextStream;
00057 
00058 class QXmlInputSource;
00059 class QXmlReader;
00060 
00061 class QDomDocumentPrivate;
00062 class QDomDocumentTypePrivate;
00063 class QDomDocumentFragmentPrivate;
00064 class QDomNodePrivate;
00065 class QDomNodeListPrivate;
00066 class QDomImplementationPrivate;
00067 class QDomElementPrivate;
00068 class QDomNotationPrivate;
00069 class QDomEntityPrivate;
00070 class QDomEntityReferencePrivate;
00071 class QDomProcessingInstructionPrivate;
00072 class QDomAttrPrivate;
00073 class QDomCharacterDataPrivate;
00074 class QDomTextPrivate;
00075 class QDomCommentPrivate;
00076 class QDomCDATASectionPrivate;
00077 class QDomNamedNodeMapPrivate;
00078 class QDomImplementationPrivate;
00079 
00080 class QDomNodeList;
00081 class QDomElement;
00082 class QDomText;
00083 class QDomComment;
00084 class QDomCDATASection;
00085 class QDomProcessingInstruction;
00086 class QDomAttr;
00087 class QDomEntityReference;
00088 class QDomDocument;
00089 class QDomNamedNodeMap;
00090 class QDomDocument;
00091 class QDomDocumentFragment;
00092 class QDomDocumentType;
00093 class QDomImplementation;
00094 class QDomNode;
00095 class QDomEntity;
00096 class QDomNotation;
00097 class QDomCharacterData;
00098 
00099 class Q_XML_EXPORT QDomImplementation
00100 {
00101 public:
00102     QDomImplementation();
00103     QDomImplementation(const QDomImplementation&);
00104     ~QDomImplementation();
00105     QDomImplementation& operator= (const QDomImplementation&);
00106     bool operator== (const QDomImplementation&) const;
00107     bool operator!= (const QDomImplementation&) const;
00108 
00109     // functions
00110     bool hasFeature(const QString& feature, const QString& version) const;
00111     QDomDocumentType createDocumentType(const QString& qName, const QString& publicId, const QString& systemId);
00112     QDomDocument createDocument(const QString& nsURI, const QString& qName, const QDomDocumentType& doctype);
00113 
00114     enum InvalidDataPolicy { AcceptInvalidChars = 0, DropInvalidChars, ReturnNullNode };
00115     static InvalidDataPolicy invalidDataPolicy();
00116     static void setInvalidDataPolicy(InvalidDataPolicy policy);
00117 
00118     // Qt extension
00119     bool isNull();
00120 
00121 private:
00122     QDomImplementationPrivate* impl;
00123     QDomImplementation(QDomImplementationPrivate*);
00124 
00125     friend class QDomDocument;
00126 };
00127 
00128 class Q_XML_EXPORT QDomNode
00129 {
00130 public:
00131     enum NodeType {
00132         ElementNode               = 1,
00133         AttributeNode             = 2,
00134         TextNode                  = 3,
00135         CDATASectionNode          = 4,
00136         EntityReferenceNode       = 5,
00137         EntityNode                = 6,
00138         ProcessingInstructionNode = 7,
00139         CommentNode               = 8,
00140         DocumentNode              = 9,
00141         DocumentTypeNode          = 10,
00142         DocumentFragmentNode      = 11,
00143         NotationNode              = 12,
00144         BaseNode                  = 21,// this is not in the standard
00145         CharacterDataNode         = 22 // this is not in the standard
00146     };
00147 
00148     enum EncodingPolicy
00149     {
00150         EncodingFromDocument      = 1,
00151         EncodingFromTextStream    = 2
00152     };
00153 
00154     QDomNode();
00155     QDomNode(const QDomNode&);
00156     QDomNode& operator= (const QDomNode&);
00157     bool operator== (const QDomNode&) const;
00158     bool operator!= (const QDomNode&) const;
00159     ~QDomNode();
00160 
00161     // DOM functions
00162     QDomNode insertBefore(const QDomNode& newChild, const QDomNode& refChild);
00163     QDomNode insertAfter(const QDomNode& newChild, const QDomNode& refChild);
00164     QDomNode replaceChild(const QDomNode& newChild, const QDomNode& oldChild);
00165     QDomNode removeChild(const QDomNode& oldChild);
00166     QDomNode appendChild(const QDomNode& newChild);
00167     bool hasChildNodes() const;
00168     QDomNode cloneNode(bool deep = true) const;
00169     void normalize();
00170     bool isSupported(const QString& feature, const QString& version) const;
00171 
00172     // DOM read-only attributes
00173     QString nodeName() const;
00174     NodeType nodeType() const;
00175     QDomNode parentNode() const;
00176     QDomNodeList childNodes() const;
00177     QDomNode firstChild() const;
00178     QDomNode lastChild() const;
00179     QDomNode previousSibling() const;
00180     QDomNode nextSibling() const;
00181     QDomNamedNodeMap attributes() const;
00182     QDomDocument ownerDocument() const;
00183     QString namespaceURI() const;
00184     QString localName() const;
00185     bool hasAttributes() const;
00186 
00187     // DOM attributes
00188     QString nodeValue() const;
00189     void setNodeValue(const QString&);
00190     QString prefix() const;
00191     void setPrefix(const QString& pre);
00192 
00193     // Qt extensions
00194     bool isAttr() const;
00195     bool isCDATASection() const;
00196     bool isDocumentFragment() const;
00197     bool isDocument() const;
00198     bool isDocumentType() const;
00199     bool isElement() const;
00200     bool isEntityReference() const;
00201     bool isText() const;
00202     bool isEntity() const;
00203     bool isNotation() const;
00204     bool isProcessingInstruction() const;
00205     bool isCharacterData() const;
00206     bool isComment() const;
00207 
00212     QDomNode namedItem(const QString& name) const;
00213 
00214     bool isNull() const;
00215     void clear();
00216 
00217     QDomAttr toAttr() const;
00218     QDomCDATASection toCDATASection() const;
00219     QDomDocumentFragment toDocumentFragment() const;
00220     QDomDocument toDocument() const;
00221     QDomDocumentType toDocumentType() const;
00222     QDomElement toElement() const;
00223     QDomEntityReference toEntityReference() const;
00224     QDomText toText() const;
00225     QDomEntity toEntity() const;
00226     QDomNotation toNotation() const;
00227     QDomProcessingInstruction toProcessingInstruction() const;
00228     QDomCharacterData toCharacterData() const;
00229     QDomComment toComment() const;
00230 
00231     void save(QTextStream&, int) const;
00232     void save(QTextStream&, int, EncodingPolicy) const; // ### Qt 5: Merge overload(if we at all keep this)
00233 
00234     QDomElement firstChildElement(const QString &tagName = QString()) const;
00235     QDomElement lastChildElement(const QString &tagName = QString()) const;
00236     QDomElement previousSiblingElement(const QString &tagName = QString()) const;
00237     QDomElement nextSiblingElement(const QString &taName = QString()) const;
00238 
00239     int lineNumber() const;
00240     int columnNumber() const;
00241 
00242 protected:
00243     QDomNodePrivate* impl;
00244     QDomNode(QDomNodePrivate*);
00245 
00246 private:
00247     friend class QDomDocument;
00248     friend class QDomDocumentType;
00249     friend class QDomNodeList;
00250     friend class QDomNamedNodeMap;
00251 };
00252 
00253 class Q_XML_EXPORT QDomNodeList
00254 {
00255 public:
00256     QDomNodeList();
00257     QDomNodeList(const QDomNodeList&);
00258     QDomNodeList& operator= (const QDomNodeList&);
00259     bool operator== (const QDomNodeList&) const;
00260     bool operator!= (const QDomNodeList&) const;
00261     ~QDomNodeList();
00262 
00263     // DOM functions
00264     QDomNode item(int index) const;
00265     inline QDomNode at(int index) const { return item(index); } // Qt API consistency
00266 
00267     // DOM read only attributes
00268     uint length() const;
00269     inline int count() const { return length(); } // Qt API consitancy
00270     inline int size() const { return length(); } // Qt API consistency
00271     inline bool isEmpty() const { return length() == 0; } // Qt API consistency
00272 
00273 private:
00274     QDomNodeListPrivate* impl;
00275     QDomNodeList(QDomNodeListPrivate*);
00276 
00277     friend class QDomNode;
00278     friend class QDomElement;
00279     friend class QDomDocument;
00280 };
00281 
00282 class Q_XML_EXPORT QDomDocumentType : public QDomNode
00283 {
00284 public:
00285     QDomDocumentType();
00286     QDomDocumentType(const QDomDocumentType& x);
00287     QDomDocumentType& operator= (const QDomDocumentType&);
00288 
00289     // DOM read only attributes
00290     QString name() const;
00291     QDomNamedNodeMap entities() const;
00292     QDomNamedNodeMap notations() const;
00293     QString publicId() const;
00294     QString systemId() const;
00295     QString internalSubset() const;
00296 
00297     // Overridden from QDomNode
00298     inline QDomNode::NodeType nodeType() const { return DocumentTypeNode; }
00299 
00300 private:
00301     QDomDocumentType(QDomDocumentTypePrivate*);
00302 
00303     friend class QDomImplementation;
00304     friend class QDomDocument;
00305     friend class QDomNode;
00306 };
00307 
00308 class Q_XML_EXPORT QDomDocument : public QDomNode
00309 {
00310 public:
00311     QDomDocument();
00312     explicit QDomDocument(const QString& name);
00313     explicit QDomDocument(const QDomDocumentType& doctype);
00314     QDomDocument(const QDomDocument& x);
00315     QDomDocument& operator= (const QDomDocument&);
00316     ~QDomDocument();
00317 
00318     // DOM functions
00319     QDomElement createElement(const QString& tagName);
00320     QDomDocumentFragment createDocumentFragment();
00321     QDomText createTextNode(const QString& data);
00322     QDomComment createComment(const QString& data);
00323     QDomCDATASection createCDATASection(const QString& data);
00324     QDomProcessingInstruction createProcessingInstruction(const QString& target, const QString& data);
00325     QDomAttr createAttribute(const QString& name);
00326     QDomEntityReference createEntityReference(const QString& name);
00327     QDomNodeList elementsByTagName(const QString& tagname) const;
00328     QDomNode importNode(const QDomNode& importedNode, bool deep);
00329     QDomElement createElementNS(const QString& nsURI, const QString& qName);
00330     QDomAttr createAttributeNS(const QString& nsURI, const QString& qName);
00331     QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName);
00332     QDomElement elementById(const QString& elementId);
00333 
00334     // DOM read only attributes
00335     QDomDocumentType doctype() const;
00336     QDomImplementation implementation() const;
00337     QDomElement documentElement() const;
00338 
00339     // Overridden from QDomNode
00340     inline QDomNode::NodeType nodeType() const { return DocumentNode; }
00341 
00342     // Qt extensions
00343     bool setContent(const QByteArray& text, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00344     bool setContent(const QString& text, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00345     bool setContent(QIODevice* dev, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00346     bool setContent(QXmlInputSource *source, bool namespaceProcessing, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00347     bool setContent(const QByteArray& text, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00348     bool setContent(const QString& text, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00349     bool setContent(QIODevice* dev, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00350     bool setContent(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg=0, int *errorLine=0, int *errorColumn=0 );
00351 
00352     // Qt extensions
00353     QString toString(int = 1) const;
00354     QByteArray toByteArray(int = 1) const;
00355 
00356 private:
00357     QDomDocument(QDomDocumentPrivate*);
00358 
00359     friend class QDomNode;
00360 };
00361 
00362 class Q_XML_EXPORT QDomNamedNodeMap
00363 {
00364 public:
00365     QDomNamedNodeMap();
00366     QDomNamedNodeMap(const QDomNamedNodeMap&);
00367     QDomNamedNodeMap& operator= (const QDomNamedNodeMap&);
00368     bool operator== (const QDomNamedNodeMap&) const;
00369     bool operator!= (const QDomNamedNodeMap&) const;
00370     ~QDomNamedNodeMap();
00371 
00372     // DOM functions
00373     QDomNode namedItem(const QString& name) const;
00374     QDomNode setNamedItem(const QDomNode& newNode);
00375     QDomNode removeNamedItem(const QString& name);
00376     QDomNode item(int index) const;
00377     QDomNode namedItemNS(const QString& nsURI, const QString& localName) const;
00378     QDomNode setNamedItemNS(const QDomNode& newNode);
00379     QDomNode removeNamedItemNS(const QString& nsURI, const QString& localName);
00380 
00381     // DOM read only attributes
00382     uint length() const;
00383     int count() const { return length(); } // Qt API consitancy
00384     inline int size() const { return length(); } // Qt API consistency
00385     inline bool isEmpty() const { return length() == 0; } // Qt API consistency
00386 
00387     // Qt extension
00388     bool contains(const QString& name) const;
00389 
00390 private:
00391     QDomNamedNodeMapPrivate* impl;
00392     QDomNamedNodeMap(QDomNamedNodeMapPrivate*);
00393 
00394     friend class QDomNode;
00395     friend class QDomDocumentType;
00396     friend class QDomElement;
00397 };
00398 
00399 class Q_XML_EXPORT QDomDocumentFragment : public QDomNode
00400 {
00401 public:
00402     QDomDocumentFragment();
00403     QDomDocumentFragment(const QDomDocumentFragment& x);
00404     QDomDocumentFragment& operator= (const QDomDocumentFragment&);
00405 
00406     // Overridden from QDomNode
00407     inline QDomNode::NodeType nodeType() const { return DocumentFragmentNode; }
00408 
00409 private:
00410     QDomDocumentFragment(QDomDocumentFragmentPrivate*);
00411 
00412     friend class QDomDocument;
00413     friend class QDomNode;
00414 };
00415 
00416 class Q_XML_EXPORT QDomCharacterData : public QDomNode
00417 {
00418 public:
00419     QDomCharacterData();
00420     QDomCharacterData(const QDomCharacterData& x);
00421     QDomCharacterData& operator= (const QDomCharacterData&);
00422 
00423     // DOM functions
00424     QString substringData(unsigned long offset, unsigned long count);
00425     void appendData(const QString& arg);
00426     void insertData(unsigned long offset, const QString& arg);
00427     void deleteData(unsigned long offset, unsigned long count);
00428     void replaceData(unsigned long offset, unsigned long count, const QString& arg);
00429 
00430     // DOM read only attributes
00431     uint length() const;
00432 
00433     // DOM attributes
00434     QString data() const;
00435     void setData(const QString&);
00436 
00437     // Overridden from QDomNode
00438     QDomNode::NodeType nodeType() const;
00439 
00440 private:
00441     QDomCharacterData(QDomCharacterDataPrivate*);
00442 
00443     friend class QDomDocument;
00444     friend class QDomText;
00445     friend class QDomComment;
00446     friend class QDomNode;
00447 };
00448 
00449 class Q_XML_EXPORT QDomAttr : public QDomNode
00450 {
00451 public:
00452     QDomAttr();
00453     QDomAttr(const QDomAttr& x);
00454     QDomAttr& operator= (const QDomAttr&);
00455 
00456     // DOM read only attributes
00457     QString name() const;
00458     bool specified() const;
00459     QDomElement ownerElement() const;
00460 
00461     // DOM attributes
00462     QString value() const;
00463     void setValue(const QString&);
00464 
00465     // Overridden from QDomNode
00466     inline QDomNode::NodeType nodeType() const { return AttributeNode; }
00467 
00468 private:
00469     QDomAttr(QDomAttrPrivate*);
00470 
00471     friend class QDomDocument;
00472     friend class QDomElement;
00473     friend class QDomNode;
00474 };
00475 
00476 class Q_XML_EXPORT QDomElement : public QDomNode
00477 {
00478 public:
00479     QDomElement();
00480     QDomElement(const QDomElement& x);
00481     QDomElement& operator= (const QDomElement&);
00482 
00483     // DOM functions
00484     QString attribute(const QString& name, const QString& defValue = QString() ) const;
00485     void setAttribute(const QString& name, const QString& value);
00486     void setAttribute(const QString& name, qlonglong value);
00487     void setAttribute(const QString& name, qulonglong value);
00488     inline void setAttribute(const QString& name, int value)
00489         { setAttribute(name, qlonglong(value)); }
00490     inline void setAttribute(const QString& name, uint value)
00491         { setAttribute(name, qulonglong(value)); }
00492     void setAttribute(const QString& name, float value);
00493     void setAttribute(const QString& name, double value);
00494     void removeAttribute(const QString& name);
00495     QDomAttr attributeNode(const QString& name);
00496     QDomAttr setAttributeNode(const QDomAttr& newAttr);
00497     QDomAttr removeAttributeNode(const QDomAttr& oldAttr);
00498     QDomNodeList elementsByTagName(const QString& tagname) const;
00499     bool hasAttribute(const QString& name) const;
00500 
00501     QString attributeNS(const QString nsURI, const QString& localName, const QString& defValue = QString()) const;
00502     void setAttributeNS(const QString nsURI, const QString& qName, const QString& value);
00503     inline void setAttributeNS(const QString nsURI, const QString& qName, int value)
00504         { setAttributeNS(nsURI, qName, qlonglong(value)); }
00505     inline void setAttributeNS(const QString nsURI, const QString& qName, uint value)
00506         { setAttributeNS(nsURI, qName, qulonglong(value)); }
00507     void setAttributeNS(const QString nsURI, const QString& qName, qlonglong value);
00508     void setAttributeNS(const QString nsURI, const QString& qName, qulonglong value);
00509     void setAttributeNS(const QString nsURI, const QString& qName, double value);
00510     void removeAttributeNS(const QString& nsURI, const QString& localName);
00511     QDomAttr attributeNodeNS(const QString& nsURI, const QString& localName);
00512     QDomAttr setAttributeNodeNS(const QDomAttr& newAttr);
00513     QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName) const;
00514     bool hasAttributeNS(const QString& nsURI, const QString& localName) const;
00515 
00516     // DOM read only attributes
00517     QString tagName() const;
00518     void setTagName(const QString& name); // Qt extension
00519 
00520     // Overridden from QDomNode
00521     QDomNamedNodeMap attributes() const;
00522     inline QDomNode::NodeType nodeType() const { return ElementNode; }
00523 
00524     QString text() const;
00525 
00526 private:
00527     QDomElement(QDomElementPrivate*);
00528 
00529     friend class QDomDocument;
00530     friend class QDomNode;
00531     friend class QDomAttr;
00532 };
00533 
00534 class Q_XML_EXPORT QDomText : public QDomCharacterData
00535 {
00536 public:
00537     QDomText();
00538     QDomText(const QDomText& x);
00539     QDomText& operator= (const QDomText&);
00540 
00541     // DOM functions
00542     QDomText splitText(int offset);
00543 
00544     // Overridden from QDomCharacterData
00545     inline QDomNode::NodeType nodeType() const { return TextNode; }
00546 
00547 private:
00548     QDomText(QDomTextPrivate*);
00549 
00550     friend class QDomCDATASection;
00551     friend class QDomDocument;
00552     friend class QDomNode;
00553 };
00554 
00555 class Q_XML_EXPORT QDomComment : public QDomCharacterData
00556 {
00557 public:
00558     QDomComment();
00559     QDomComment(const QDomComment& x);
00560     QDomComment& operator= (const QDomComment&);
00561 
00562     // Overridden from QDomCharacterData
00563     inline QDomNode::NodeType nodeType() const { return CommentNode; }
00564 
00565 private:
00566     QDomComment(QDomCommentPrivate*);
00567 
00568     friend class QDomDocument;
00569     friend class QDomNode;
00570 };
00571 
00572 class Q_XML_EXPORT QDomCDATASection : public QDomText
00573 {
00574 public:
00575     QDomCDATASection();
00576     QDomCDATASection(const QDomCDATASection& x);
00577     QDomCDATASection& operator= (const QDomCDATASection&);
00578 
00579     // Overridden from QDomText
00580     inline QDomNode::NodeType nodeType() const { return CDATASectionNode; }
00581 
00582 private:
00583     QDomCDATASection(QDomCDATASectionPrivate*);
00584 
00585     friend class QDomDocument;
00586     friend class QDomNode;
00587 };
00588 
00589 class Q_XML_EXPORT QDomNotation : public QDomNode
00590 {
00591 public:
00592     QDomNotation();
00593     QDomNotation(const QDomNotation& x);
00594     QDomNotation& operator= (const QDomNotation&);
00595 
00596     // DOM read only attributes
00597     QString publicId() const;
00598     QString systemId() const;
00599 
00600     // Overridden from QDomNode
00601     inline QDomNode::NodeType nodeType() const { return NotationNode; }
00602 
00603 private:
00604     QDomNotation(QDomNotationPrivate*);
00605 
00606     friend class QDomDocument;
00607     friend class QDomNode;
00608 };
00609 
00610 class Q_XML_EXPORT QDomEntity : public QDomNode
00611 {
00612 public:
00613     QDomEntity();
00614     QDomEntity(const QDomEntity& x);
00615     QDomEntity& operator= (const QDomEntity&);
00616 
00617     // DOM read only attributes
00618     QString publicId() const;
00619     QString systemId() const;
00620     QString notationName() const;
00621 
00622     // Overridden from QDomNode
00623     inline QDomNode::NodeType nodeType() const { return EntityNode; }
00624 
00625 private:
00626     QDomEntity(QDomEntityPrivate*);
00627 
00628     friend class QDomNode;
00629 };
00630 
00631 class Q_XML_EXPORT QDomEntityReference : public QDomNode
00632 {
00633 public:
00634     QDomEntityReference();
00635     QDomEntityReference(const QDomEntityReference& x);
00636     QDomEntityReference& operator= (const QDomEntityReference&);
00637 
00638     // Overridden from QDomNode
00639     inline QDomNode::NodeType nodeType() const { return EntityReferenceNode; }
00640 
00641 private:
00642     QDomEntityReference(QDomEntityReferencePrivate*);
00643 
00644     friend class QDomDocument;
00645     friend class QDomNode;
00646 };
00647 
00648 class Q_XML_EXPORT QDomProcessingInstruction : public QDomNode
00649 {
00650 public:
00651     QDomProcessingInstruction();
00652     QDomProcessingInstruction(const QDomProcessingInstruction& x);
00653     QDomProcessingInstruction& operator= (const QDomProcessingInstruction&);
00654 
00655     // DOM read only attributes
00656     QString target() const;
00657 
00658     // DOM attributes
00659     QString data() const;
00660     void setData(const QString& d);
00661 
00662     // Overridden from QDomNode
00663     inline QDomNode::NodeType nodeType() const { return ProcessingInstructionNode; }
00664 
00665 private:
00666     QDomProcessingInstruction(QDomProcessingInstructionPrivate*);
00667 
00668     friend class QDomDocument;
00669     friend class QDomNode;
00670 };
00671 
00672 
00673 Q_XML_EXPORT QTextStream& operator<<(QTextStream&, const QDomNode&);
00674 
00675 #endif // QT_NO_DOM
00676 
00677 QT_END_NAMESPACE
00678 
00679 QT_END_HEADER
00680 
00681 #endif // QDOM_H