Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# ntqdom.h

This is the verbatim text of the ntqdom.h include file. It is provided only for illustration; the copyright remains with Trolltech.

    /****************************************************************************
    ** $Id: qt/ntqdom.h   3.3.8   edited Jan 11 14:39 $
    **
    ** Definition of TQDomDocument and related classes.
    **
    ** Created : 000518
    **
    ** Copyright (C) 1992-2007 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 file LICENSE.GPL 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 "ntqstring.h"
    #endif // QT_H

    #if !defined(TQT_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