home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / qdom.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  21KB  |  664 lines

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