// qdom.sip generated by MetaSIP
//
// This file is part of the QtXml Python extension module.
//
// Copyright (c) 2024 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt5.
// 
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file.  Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
// 
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license.  For more information contact
// info@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


class QDomImplementation
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomImplementation();
    QDomImplementation(const QDomImplementation &);
    ~QDomImplementation();
    bool operator==(const QDomImplementation &) const;
    bool operator!=(const QDomImplementation &) const;
    bool hasFeature(const QString &feature, const QString &version) const;
    QDomDocumentType createDocumentType(const QString &qName, const QString &publicId, const QString &systemId);
    QDomDocument createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype);

    enum InvalidDataPolicy
    {
        AcceptInvalidChars,
        DropInvalidChars,
        ReturnNullNode,
    };

    static QDomImplementation::InvalidDataPolicy invalidDataPolicy();
    static void setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy);
    bool isNull();
};

class QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    enum NodeType
    {
        ElementNode,
        AttributeNode,
        TextNode,
        CDATASectionNode,
        EntityReferenceNode,
        EntityNode,
        ProcessingInstructionNode,
        CommentNode,
        DocumentNode,
        DocumentTypeNode,
        DocumentFragmentNode,
        NotationNode,
        BaseNode,
        CharacterDataNode,
    };

    enum EncodingPolicy
    {
        EncodingFromDocument,
        EncodingFromTextStream,
    };

    QDomNode();
    QDomNode(const QDomNode &);
    ~QDomNode();
    bool operator==(const QDomNode &) const;
    bool operator!=(const QDomNode &) const;
    QDomNode insertBefore(const QDomNode &newChild, const QDomNode &refChild);
    QDomNode insertAfter(const QDomNode &newChild, const QDomNode &refChild);
    QDomNode replaceChild(const QDomNode &newChild, const QDomNode &oldChild);
    QDomNode removeChild(const QDomNode &oldChild);
    QDomNode appendChild(const QDomNode &newChild);
    bool hasChildNodes() const;
    QDomNode cloneNode(bool deep = true) const;
    void normalize();
    bool isSupported(const QString &feature, const QString &version) const;
    QString nodeName() const;
    QDomNode::NodeType nodeType() const;
    QDomNode parentNode() const;
    QDomNodeList childNodes() const;
    QDomNode firstChild() const;
    QDomNode lastChild() const;
    QDomNode previousSibling() const;
    QDomNode nextSibling() const;
    QDomNamedNodeMap attributes() const;
    QDomDocument ownerDocument() const;
    QString namespaceURI() const;
    QString localName() const;
    bool hasAttributes() const;
    QString nodeValue() const;
    void setNodeValue(const QString &);
    QString prefix() const;
    void setPrefix(const QString &pre);
    bool isAttr() const;
    bool isCDATASection() const;
    bool isDocumentFragment() const;
    bool isDocument() const;
    bool isDocumentType() const;
    bool isElement() const;
    bool isEntityReference() const;
    bool isText() const;
    bool isEntity() const;
    bool isNotation() const;
    bool isProcessingInstruction() const;
    bool isCharacterData() const;
    bool isComment() const;
    QDomNode namedItem(const QString &name) const;
    bool isNull() const;
    void clear();
    QDomAttr toAttr() const;
    QDomCDATASection toCDATASection() const;
    QDomDocumentFragment toDocumentFragment() const;
    QDomDocument toDocument() const;
    QDomDocumentType toDocumentType() const;
    QDomElement toElement() const;
    QDomEntityReference toEntityReference() const;
    QDomText toText() const;
    QDomEntity toEntity() const;
    QDomNotation toNotation() const;
    QDomProcessingInstruction toProcessingInstruction() const;
    QDomCharacterData toCharacterData() const;
    QDomComment toComment() const;
    void save(QTextStream &, int, QDomNode::EncodingPolicy = QDomNode::EncodingFromDocument) const /ReleaseGIL/;
    QDomElement firstChildElement(const QString &tagName = QString()) const;
    QDomElement lastChildElement(const QString &tagName = QString()) const;
    QDomElement previousSiblingElement(const QString &tagName = QString()) const;
    QDomElement nextSiblingElement(const QString &taName = QString()) const;
    int lineNumber() const;
    int columnNumber() const;
};

class QDomNodeList
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomNodeList();
    QDomNodeList(const QDomNodeList &);
    ~QDomNodeList();
    bool operator==(const QDomNodeList &) const;
    bool operator!=(const QDomNodeList &) const;
    QDomNode item(int index) const;
    QDomNode at(int index) const;
    int length() const;
    int count() const /__len__/;
    int size() const;
    bool isEmpty() const;
};

class QDomDocumentType : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomDocumentType();
    QDomDocumentType(const QDomDocumentType &x);
    QString name() const;
    QDomNamedNodeMap entities() const;
    QDomNamedNodeMap notations() const;
    QString publicId() const;
    QString systemId() const;
    QString internalSubset() const;
    QDomNode::NodeType nodeType() const;
};

class QDomDocument : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomDocument();
    explicit QDomDocument(const QString &name);
    explicit QDomDocument(const QDomDocumentType &doctype);
    QDomDocument(const QDomDocument &x);
    ~QDomDocument();
    QDomElement createElement(const QString &tagName);
    QDomDocumentFragment createDocumentFragment();
    QDomText createTextNode(const QString &data);
    QDomComment createComment(const QString &data);
    QDomCDATASection createCDATASection(const QString &data);
    QDomProcessingInstruction createProcessingInstruction(const QString &target, const QString &data);
    QDomAttr createAttribute(const QString &name);
    QDomEntityReference createEntityReference(const QString &name);
    QDomNodeList elementsByTagName(const QString &tagname) const;
    QDomNode importNode(const QDomNode &importedNode, bool deep);
    QDomElement createElementNS(const QString &nsURI, const QString &qName);
    QDomAttr createAttributeNS(const QString &nsURI, const QString &qName);
    QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName);
    QDomElement elementById(const QString &elementId);
    QDomDocumentType doctype() const;
    QDomImplementation implementation() const;
    QDomElement documentElement() const;
    QDomNode::NodeType nodeType() const;
    bool setContent(const QByteArray &text, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0);
    bool setContent(const QString &text, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0);
    bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/;
    bool setContent(QXmlInputSource *source, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/;
    bool setContent(const QByteArray &text, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0);
    bool setContent(const QString &text, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0);
    bool setContent(QIODevice *dev, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/;
    bool setContent(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/;
%If (Qt_5_15_0 -)
    bool setContent(QXmlStreamReader *reader, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0);
%End
    QString toString(int indent = 1) const;
    QByteArray toByteArray(int indent = 1) const;
};

class QDomNamedNodeMap
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomNamedNodeMap();
    QDomNamedNodeMap(const QDomNamedNodeMap &);
    ~QDomNamedNodeMap();
    bool operator==(const QDomNamedNodeMap &) const;
    bool operator!=(const QDomNamedNodeMap &) const;
    QDomNode namedItem(const QString &name) const;
    QDomNode setNamedItem(const QDomNode &newNode);
    QDomNode removeNamedItem(const QString &name);
    QDomNode item(int index) const;
    QDomNode namedItemNS(const QString &nsURI, const QString &localName) const;
    QDomNode setNamedItemNS(const QDomNode &newNode);
    QDomNode removeNamedItemNS(const QString &nsURI, const QString &localName);
    int length() const;
    int count() const /__len__/;
    int size() const;
    bool isEmpty() const;
    bool contains(const QString &name) const;
};

class QDomDocumentFragment : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomDocumentFragment();
    QDomDocumentFragment(const QDomDocumentFragment &x);
    QDomNode::NodeType nodeType() const;
};

class QDomCharacterData : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomCharacterData();
    QDomCharacterData(const QDomCharacterData &x);
    QString substringData(unsigned long offset, unsigned long count);
    void appendData(const QString &arg);
    void insertData(unsigned long offset, const QString &arg);
    void deleteData(unsigned long offset, unsigned long count);
    void replaceData(unsigned long offset, unsigned long count, const QString &arg);
    int length() const;
    QString data() const;
    void setData(const QString &);
    QDomNode::NodeType nodeType() const;
};

class QDomAttr : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomAttr();
    QDomAttr(const QDomAttr &x);
    QString name() const;
    bool specified() const;
    QDomElement ownerElement() const;
    QString value() const;
    void setValue(const QString &);
    QDomNode::NodeType nodeType() const;
};

class QDomElement : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomElement();
    QDomElement(const QDomElement &x);
    QString attribute(const QString &name, const QString &defaultValue = QString()) const;
    void setAttribute(const QString &name, const QString &value);
    void setAttribute(const QString &name, qlonglong value);
    void setAttribute(const QString &name, qulonglong value);
    void setAttribute(const QString &name, double value /Constrained/);
    void setAttribute(const QString &name, int value);
    void removeAttribute(const QString &name);
    QDomAttr attributeNode(const QString &name);
    QDomAttr setAttributeNode(const QDomAttr &newAttr);
    QDomAttr removeAttributeNode(const QDomAttr &oldAttr);
    QDomNodeList elementsByTagName(const QString &tagname) const;
    bool hasAttribute(const QString &name) const;
    QString attributeNS(const QString nsURI, const QString &localName, const QString &defaultValue = QString()) const;
    void setAttributeNS(const QString nsURI, const QString &qName, const QString &value);
    void setAttributeNS(const QString nsURI, const QString &qName, qlonglong value);
    void setAttributeNS(const QString nsURI, const QString &qName, qulonglong value);
    void setAttributeNS(const QString nsURI, const QString &qName, double value /Constrained/);
    void setAttributeNS(const QString nsURI, const QString &qName, int value);
    void removeAttributeNS(const QString &nsURI, const QString &localName);
    QDomAttr attributeNodeNS(const QString &nsURI, const QString &localName);
    QDomAttr setAttributeNodeNS(const QDomAttr &newAttr);
    QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName) const;
    bool hasAttributeNS(const QString &nsURI, const QString &localName) const;
    QString tagName() const;
    void setTagName(const QString &name);
    QDomNamedNodeMap attributes() const;
    QDomNode::NodeType nodeType() const;
    QString text() const;
};

class QDomText : public QDomCharacterData
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomText();
    QDomText(const QDomText &x);
    QDomText splitText(int offset);
    QDomNode::NodeType nodeType() const;
};

class QDomComment : public QDomCharacterData
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomComment();
    QDomComment(const QDomComment &x);
    QDomNode::NodeType nodeType() const;
};

class QDomCDATASection : public QDomText
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomCDATASection();
    QDomCDATASection(const QDomCDATASection &x);
    QDomNode::NodeType nodeType() const;
};

class QDomNotation : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomNotation();
    QDomNotation(const QDomNotation &x);
    QString publicId() const;
    QString systemId() const;
    QDomNode::NodeType nodeType() const;
};

class QDomEntity : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomEntity();
    QDomEntity(const QDomEntity &x);
    QString publicId() const;
    QString systemId() const;
    QString notationName() const;
    QDomNode::NodeType nodeType() const;
};

class QDomEntityReference : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomEntityReference();
    QDomEntityReference(const QDomEntityReference &x);
    QDomNode::NodeType nodeType() const;
};

class QDomProcessingInstruction : public QDomNode
{
%TypeHeaderCode
#include <qdom.h>
%End

public:
    QDomProcessingInstruction();
    QDomProcessingInstruction(const QDomProcessingInstruction &x);
    QString target() const;
    QString data() const;
    void setData(const QString &d);
    QDomNode::NodeType nodeType() const;
};

QTextStream &operator<<(QTextStream &, const QDomNode & /Constrained/);
