/*
 * Module code.
 *
 * Generated by SIP 6.15.1
 *
 *     Copyright: (c) 2020 by Total Control Software
 *     License:   wxWindows License
 */

#include "sipAPI_xml.h"
        #include <wx/object.h>
        #include <wx/xml/xml.h>
        #include <wx/xml/xml.h>
        #include <wx/stream.h>
        #include <wx/stream.h>
        #include <wx/xml/xml.h>
        #include <wx/xml/xml.h>

/* Define the strings used by this module. */
const char sipStrings__xml[] = {
    'X', 'M', 'L', 'D', 'O', 'C', '_', 'K', 'E', 'E', 'P', '_', 'W', 'H', 'I', 'T', 'E', 'S', 'P', 'A', 'C', 'E', '_', 'N', 'O', 'D', 'E', 'S', 0,
    'X', 'M', 'L', '_', 'C', 'D', 'A', 'T', 'A', '_', 'S', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'D', 'O', 'C', 'U', 'M', 'E', 'N', 'T', '_', 'F', 'R', 'A', 'G', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'D', 'O', 'C', 'U', 'M', 'E', 'N', 'T', '_', 'T', 'Y', 'P', 'E', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'H', 'T', 'M', 'L', '_', 'D', 'O', 'C', 'U', 'M', 'E', 'N', 'T', '_', 'N', 'O', 'D', 'E', 0,
    'G', 'e', 't', 'L', 'i', 'b', 'r', 'a', 'r', 'y', 'V', 'e', 'r', 's', 'i', 'o', 'n', 'I', 'n', 'f', 'o', 0,
    'w', 'x', 'X', 'm', 'l', 'D', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'L', 'o', 'a', 'd', 'F', 'l', 'a', 'g', 0,
    'X', 'M', 'L', '_', 'E', 'N', 'T', 'I', 'T', 'Y', '_', 'R', 'E', 'F', '_', 'N', 'O', 'D', 'E', 0,
    'D', 'e', 't', 'a', 'c', 'h', 'D', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'N', 'o', 'd', 'e', 0,
    'X', 'M', 'L', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'U', 'T', 'E', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'N', 'O', '_', 'I', 'N', 'D', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', 0,
    'X', 'M', 'L', '_', 'D', 'O', 'C', 'U', 'M', 'E', 'N', 'T', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'O', 'D', 'E', 0,
    'I', 'n', 's', 'e', 'r', 't', 'C', 'h', 'i', 'l', 'd', 'A', 'f', 't', 'e', 'r', 0,
    'I', 's', 'W', 'h', 'i', 't', 'e', 's', 'p', 'a', 'c', 'e', 'O', 'n', 'l', 'y', 0,
    'X', 'M', 'L', '_', 'C', 'O', 'M', 'M', 'E', 'N', 'T', '_', 'N', 'O', 'D', 'E', 0,
    'X', 'M', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'N', 'O', 'D', 'E', 0,
    'D', 'e', 'l', 'e', 't', 'e', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0,
    'G', 'e', 't', 'D', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'N', 'o', 'd', 'e', 0,
    'G', 'e', 't', 'F', 'i', 'l', 'e', 'E', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 0,
    'G', 'e', 't', 'N', 'o', 'C', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'D', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'N', 'o', 'd', 'e', 0,
    'S', 'e', 't', 'F', 'i', 'l', 'e', 'E', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 0,
    'S', 'e', 't', 'N', 'o', 'C', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'X', 'M', 'L', '_', 'E', 'N', 'T', 'I', 'T', 'Y', '_', 'N', 'O', 'D', 'E', 0,
    'A', 'p', 'p', 'e', 'n', 'd', 'T', 'o', 'P', 'r', 'o', 'l', 'o', 'g', 0,
    'G', 'e', 't', 'N', 'o', 'd', 'e', 'C', 'o', 'n', 't', 'e', 'n', 't', 0,
    'w', 'x', 'X', 'm', 'l', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0,
    'G', 'e', 't', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 's', 0,
    'G', 'e', 't', 'F', 'u', 'l', 'l', 'S', 't', 'r', 'i', 'n', 'g', 0,
    'G', 'e', 't', 'L', 'i', 'n', 'e', 'N', 'u', 'm', 'b', 'e', 'r', 0,
    'X', 'M', 'L', '_', 'T', 'E', 'X', 'T', '_', 'N', 'O', 'D', 'E', 0,
    'f', 'o', 'l', 'l', 'o', 'w', 'i', 'n', 'g', 'N', 'o', 'd', 'e', 0,
    'p', 'r', 'e', 'c', 'e', 'd', 'i', 'n', 'g', 'N', 'o', 'd', 'e', 0,
    'w', 'x', 'X', 'm', 'l', 'D', 'o', 'c', 'u', 'm', 'e', 'n', 't', 0,
    'w', 'x', 'X', 'm', 'l', 'N', 'o', 'd', 'e', 'T', 'y', 'p', 'e', 0,
    'A', 'd', 'd', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0,
    'G', 'e', 't', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0,
    'H', 'a', 's', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0,
    'n', 'o', 'c', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'w', 'x', 'X', 'm', 'l', 'D', 'o', 'c', 't', 'y', 'p', 'e', 0,
    'G', 'e', 't', 'C', 'h', 'i', 'l', 'd', 'r', 'e', 'n', 0,
    'G', 'e', 't', 'F', 'i', 'l', 'e', 'T', 'y', 'p', 'e', 0,
    'G', 'e', 't', 'P', 'u', 'b', 'l', 'i', 'c', 'I', 'd', 0,
    'G', 'e', 't', 'R', 'o', 'o', 't', 'N', 'a', 'm', 'e', 0,
    'G', 'e', 't', 'S', 'y', 's', 't', 'e', 'm', 'I', 'd', 0,
    'I', 'n', 's', 'e', 'r', 't', 'C', 'h', 'i', 'l', 'd', 0,
    'R', 'e', 'm', 'o', 'v', 'e', 'C', 'h', 'i', 'l', 'd', 0,
    'S', 'e', 't', 'F', 'i', 'l', 'e', 'T', 'y', 'p', 'e', 0,
    'X', 'M', 'L', 'D', 'O', 'C', '_', 'N', 'O', 'N', 'E', 0,
    'X', 'M', 'L', '_', 'P', 'I', '_', 'N', 'O', 'D', 'E', 0,
    'g', 'r', 'a', 'n', 'd', 'p', 'a', 'r', 'e', 'n', 't', 0,
    'D', 'e', 't', 'a', 'c', 'h', 'R', 'o', 'o', 't', 0,
    'G', 'e', 't', 'C', 'o', 'n', 't', 'e', 'n', 't', 0,
    'G', 'e', 't', 'D', 'o', 'c', 't', 'y', 'p', 'e', 0,
    'G', 'e', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'S', 'e', 't', 'C', 'o', 'n', 't', 'e', 'n', 't', 0,
    'S', 'e', 't', 'D', 'o', 'c', 't', 'y', 'p', 'e', 0,
    'S', 'e', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    'd', 'e', 'f', 'a', 'u', 'l', 't', 'V', 'a', 'l', 0,
    'i', 'n', 'd', 'e', 'n', 't', 's', 't', 'e', 'p', 0,
    'w', 'i', 'd', 't', 'h', 'T', 'i', 't', 'l', 'e', 0,
    'G', 'e', 't', 'P', 'a', 'r', 'e', 'n', 't', 0,
    'S', 'e', 't', 'P', 'a', 'r', 'e', 'n', 't', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 'M', 'a', 'x', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 'M', 'i', 'n', 0,
    's', 'i', 'z', 'e', 'F', 'l', 'a', 'g', 's', 0,
    'w', 'x', 'X', 'm', 'l', 'N', 'o', 'd', 'e', 0,
    'A', 'd', 'd', 'C', 'h', 'i', 'l', 'd', 0,
    'G', 'e', 't', 'D', 'e', 'p', 't', 'h', 0,
    'G', 'e', 't', 'V', 'a', 'l', 'u', 'e', 0,
    'S', 'e', 't', 'V', 'a', 'l', 'u', 'e', 0,
    'a', 't', 't', 'r', 'N', 'a', 'm', 'e', 0,
    'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 0,
    'f', 'i', 'l', 'e', 'T', 'y', 'p', 'e', 0,
    'f', 'i', 'l', 'e', 'n', 'a', 'm', 'e', 0,
    'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0,
    'p', 'u', 'b', 'l', 'i', 'c', 'I', 'd', 0,
    'r', 'o', 'o', 't', 'N', 'a', 'm', 'e', 0,
    's', 'y', 's', 't', 'e', 'm', 'I', 'd', 0,
    'G', 'e', 't', 'N', 'a', 'm', 'e', 0,
    'G', 'e', 't', 'N', 'e', 'x', 't', 0,
    'G', 'e', 't', 'R', 'o', 'o', 't', 0,
    'G', 'e', 't', 'T', 'y', 'p', 'e', 0,
    'I', 's', 'V', 'a', 'l', 'i', 'd', 0,
    'S', 'e', 't', 'N', 'a', 'm', 'e', 0,
    'S', 'e', 't', 'N', 'e', 'x', 't', 0,
    'S', 'e', 't', 'R', 'o', 'o', 't', 0,
    'S', 'e', 't', 'T', 'y', 'p', 'e', 0,
    'c', 'o', 'n', 't', 'e', 'n', 't', 0,
    'd', 'o', 'c', 't', 'y', 'p', 'e', 0,
    'u', 'n', 'i', 't', 'M', 'a', 'x', 0,
    'u', 'n', 'i', 't', 'M', 'i', 'n', 0,
    'v', 'a', 'r', 'i', 'a', 'n', 't', 0,
    'w', 'x', '.', '_', 'x', 'm', 'l', 0,
    'G', 'e', 't', 'E', 'O', 'L', 0,
    'c', 'l', 'i', 'e', 'n', 't', 0,
    'c', 'o', 'l', 'u', 'm', 'n', 0,
    'd', 'i', 'a', 'l', 'o', 'g', 0,
    'e', 'n', 'a', 'b', 'l', 'e', 0,
    'h', 'e', 'i', 'g', 'h', 't', 0,
    'l', 'i', 'n', 'e', 'N', 'o', 0,
    'r', 'o', 'w', 'M', 'a', 'x', 0,
    'r', 'o', 'w', 'M', 'i', 'n', 0,
    's', 't', 'r', 'e', 'a', 'm', 0,
    'C', 'l', 'e', 'a', 'r', 0,
    'a', 't', 't', 'r', 's', 0,
    'c', 'h', 'i', 'l', 'd', 0,
    'c', 'o', 'u', 'n', 't', 0,
    'e', 'v', 'e', 'n', 't', 0,
    'f', 'l', 'a', 'g', 's', 0,
    'l', 'e', 'v', 'e', 'l', 0,
    'o', 'r', 'd', 'e', 'r', 0,
    'p', 'o', 'p', 'u', 'p', 0,
    's', 'c', 'a', 'l', 'e', 0,
    's', 'i', 'z', 'e', 'r', 0,
    's', 't', 'y', 'l', 'e', 0,
    'v', 'a', 'l', 'u', 'e', 0,
    'w', 'i', 'd', 't', 'h', 0,
    'I', 's', 'O', 'k', 0,
    'L', 'o', 'a', 'd', 0,
    'S', 'a', 'v', 'e', 0,
    'a', 't', 't', 'r', 0,
    'i', 'n', 'c', 'H', 0,
    'i', 'n', 'c', 'W', 0,
    'i', 'n', 'f', 'o', 0,
    'i', 't', 'e', 'm', 0,
    'm', 'a', 'x', 'H', 0,
    'm', 'a', 'x', 'W', 0,
    'm', 'i', 'n', 'H', 0,
    'm', 'i', 'n', 'W', 0,
    'n', 'e', 'x', 't', 0,
    'n', 'o', 'd', 'e', 0,
    'r', 'e', 'c', 't', 0,
    's', 'h', 'o', 'w', 0,
    's', 'i', 'z', 'e', 0,
    't', 'i', 'm', 'e', 0,
    'u', 'n', 'i', 't', 0,
    'c', 'o', 'n', 0,
    'd', 'o', 'c', 0,
    'i', 'd', 'x', 0,
    'm', 's', 'g', 0,
    'p', 'o', 's', 0,
    'r', 'o', 'w', 0,
    'd', 'c', 0,
};

bool sipVH__xml_9(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxOutputStream& stream, int indentstep)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "Di", &stream, sipType_wxOutputStream, SIP_NULLPTR, indentstep);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_8(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const ::wxString& filename, int indentstep)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "Ni", new ::wxString(filename), sipType_wxString, SIP_NULLPTR, indentstep);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_7(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxInputStream& stream, const ::wxString& encoding, int flags)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "DNi", &stream, sipType_wxInputStream, SIP_NULLPTR, new ::wxString(encoding), sipType_wxString, SIP_NULLPTR, flags);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_6(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const ::wxString& filename, const ::wxString& encoding, int flags)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "NNi", new ::wxString(filename), sipType_wxString, SIP_NULLPTR, new ::wxString(encoding), sipType_wxString, SIP_NULLPTR, flags);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_5(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxXmlNode*child)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "D", child, sipType_wxXmlNode, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_4(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxXmlNode*child, ::wxXmlNode*followingNode)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "DD", child, sipType_wxXmlNode, SIP_NULLPTR, followingNode, sipType_wxXmlNode, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

bool sipVH__xml_3(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const ::wxString& name)
{
    bool sipRes = 0;
    PyObject *sipResObj = sipCallMethod(SIP_NULLPTR, sipMethod, "N", new ::wxString(name), sipType_wxString, SIP_NULLPTR);

    sipParseResultEx(sipGILState, sipErrorHandler, sipPySelf, sipMethod, sipResObj, "b", &sipRes);

    return sipRes;
}

void sipVH__xml_2(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxXmlNode*child)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", child, sipType_wxXmlNode, SIP_NULLPTR);
}

void sipVH__xml_1(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, ::wxXmlAttribute*attr)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "D", attr, sipType_wxXmlAttribute, SIP_NULLPTR);
}

void sipVH__xml_0(sip_gilstate_t sipGILState, sipVirtErrorHandlerFunc sipErrorHandler, sipSimpleWrapper *sipPySelf, PyObject *sipMethod, const ::wxString& name, const ::wxString& value)
{
    sipCallProcedureMethod(sipGILState, sipErrorHandler, sipPySelf, sipMethod, "NN", new ::wxString(name), sipType_wxString, SIP_NULLPTR, new ::wxString(value), sipType_wxString, SIP_NULLPTR);
}
static sipEnumTypeDef enumTypes[] = {
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxXmlDocumentLoadFlag, SIP_NULLPTR, 0}, sipNameNr_XmlDocumentLoadFlag, -1, SIP_NULLPTR},
    {{-1, SIP_NULLPTR, SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_wxXmlNodeType, SIP_NULLPTR, 0}, sipNameNr_XmlNodeType, -1, SIP_NULLPTR},
};

/* These are the enum members of all global enums. */
static sipEnumMemberDef enummembers[] = {
    {sipName_XMLDOC_KEEP_WHITESPACE_NODES, static_cast<int>(::wxXMLDOC_KEEP_WHITESPACE_NODES), 3},
    {sipName_XMLDOC_NONE, static_cast<int>(::wxXMLDOC_NONE), 3},
    {sipName_XML_ATTRIBUTE_NODE, static_cast<int>(::wxXML_ATTRIBUTE_NODE), 5},
    {sipName_XML_CDATA_SECTION_NODE, static_cast<int>(::wxXML_CDATA_SECTION_NODE), 5},
    {sipName_XML_COMMENT_NODE, static_cast<int>(::wxXML_COMMENT_NODE), 5},
    {sipName_XML_DOCUMENT_FRAG_NODE, static_cast<int>(::wxXML_DOCUMENT_FRAG_NODE), 5},
    {sipName_XML_DOCUMENT_NODE, static_cast<int>(::wxXML_DOCUMENT_NODE), 5},
    {sipName_XML_DOCUMENT_TYPE_NODE, static_cast<int>(::wxXML_DOCUMENT_TYPE_NODE), 5},
    {sipName_XML_ELEMENT_NODE, static_cast<int>(::wxXML_ELEMENT_NODE), 5},
    {sipName_XML_ENTITY_NODE, static_cast<int>(::wxXML_ENTITY_NODE), 5},
    {sipName_XML_ENTITY_REF_NODE, static_cast<int>(::wxXML_ENTITY_REF_NODE), 5},
    {sipName_XML_HTML_DOCUMENT_NODE, static_cast<int>(::wxXML_HTML_DOCUMENT_NODE), 5},
    {sipName_XML_NOTATION_NODE, static_cast<int>(::wxXML_NOTATION_NODE), 5},
    {sipName_XML_PI_NODE, static_cast<int>(::wxXML_PI_NODE), 5},
    {sipName_XML_TEXT_NODE, static_cast<int>(::wxXML_TEXT_NODE), 5},
};


/*
 * This defines each type in this module.
 */
sipTypeDef *sipExportedTypes__xml[] = {
    &sipTypeDef__xml_wxXmlAttribute.ctd_base,
    &sipTypeDef__xml_wxXmlDoctype.ctd_base,
    &sipTypeDef__xml_wxXmlDocument.ctd_base,
    &enumTypes[0].etd_base,
    &sipTypeDef__xml_wxXmlNode.ctd_base,
    &enumTypes[1].etd_base,
};


/* This defines the types that this module needs to import from _core. */
sipImportedTypeDef sipImportedTypes__xml__core[] = {
    {"wxInputStream"},
    {"wxObject"},
    {"wxOutputStream"},
    {"wxString"},
    {"wxTextFileType"},
    {"wxVersionInfo"},
    {SIP_NULLPTR}
};


/* This defines the modules that this module needs to import. */
static sipImportedModuleDef importsTable[] = {
    {"wx._core", sipImportedTypes__xml__core, SIP_NULLPTR, SIP_NULLPTR},
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR}
};


/* Define the enum members and ints to be added to this module. */
static sipIntInstanceDef intInstances[] = {
    {sipName_XML_NO_INDENTATION, wxXML_NO_INDENTATION},
    {0, 0}
};


/* This defines this module. */
sipExportedModuleDef sipModuleAPI__xml = {
    SIP_NULLPTR,
    14,
    sipNameNr_wx__xml,
    0,
    sipStrings__xml,
    importsTable,
    SIP_NULLPTR,
    6,
    sipExportedTypes__xml,
    SIP_NULLPTR,
    15,
    enummembers,
    0,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, intInstances, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
};


/* The SIP API and the APIs of any imported modules. */
const sipAPIDef *sipAPI__xml;


/* The Python module initialisation function. */
#if defined(SIP_STATIC_MODULE)
extern "C" PyObject *PyInit__xml()
#else
PyMODINIT_FUNC PyInit__xml()
#endif
{
    static PyMethodDef sip_methods[] = {
        {SIP_NULLPTR, SIP_NULLPTR, 0, SIP_NULLPTR}
    };
    static PyModuleDef sip_module_def = {
        PyModuleDef_HEAD_INIT,
        "wx._xml",
        SIP_NULLPTR,
        -1,
        sip_methods,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR
    };

    PyObject *sipModule, *sipModuleDict;
    PyObject *sip_sipmod, *sip_capiobj;

    /* Initialise the module and get it's dictionary. */
    if ((sipModule = PyModule_Create(&sip_module_def)) == SIP_NULLPTR)
        return SIP_NULLPTR;

    sipModuleDict = PyModule_GetDict(sipModule);

    /* Get the SIP module's API. */
    if ((sip_sipmod = PyImport_ImportModule("wx.siplib")) == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sip_capiobj = PyDict_GetItemString(PyModule_GetDict(sip_sipmod), "_C_API");
    Py_DECREF(sip_sipmod);

    if (sip_capiobj == SIP_NULLPTR || !PyCapsule_CheckExact(sip_capiobj))
    {
        PyErr_SetString(PyExc_AttributeError, "wx.siplib._C_API is missing or has the wrong type");
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sipAPI__xml = reinterpret_cast<const sipAPIDef *>(PyCapsule_GetPointer(sip_capiobj, "wx.siplib._C_API"));

    if (sipAPI__xml == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    /* Export the module and publish it's API. */
    if (sipExportModule(&sipModuleAPI__xml, 12, 14, 0) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    /* Initialise the module now all its dependencies have been set up. */
    if (sipInitModule(&sipModuleAPI__xml, sipModuleDict) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    return sipModule;
}
