"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

PyPI(PyQt6): https://pypi.org/project/IceSpringPySideStubs-PyQt6

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import typing
from PyQt5.QtXml import *
from PyQt5 import sip


class QXmlEntityResolver(sip.simplewrapper):
    """
    https://doc.qt.io/qt-5/qxmlentityresolver.html

    **Detailed Description**

    If an application needs to implement customized handling for external
    entities, it must implement this interface, i.e. **resolveEntity** (), and
    register it with **QXmlReader::setEntityResolver** ().

    **See also** **QXmlDTDHandler** , **QXmlDeclHandler** ,
    **QXmlContentHandler** , **QXmlErrorHandler** , **QXmlLexicalHandler** , and
    Introduction to SAX2.
    """

    @typing.overload
    def __init__(self) -> None:
        ...

    @typing.overload
    def __init__(self, a0: "QXmlEntityResolver") -> None:
        ...

    def errorString(self) -> str:
        """
        https://doc.qt.io/qt-5/qxmlentityresolver.html#errorString

        **[pure virtual] QString QXmlEntityResolver::errorString() const**

        The reader calls this function to get an error string if any of the
        handler functions returns `false`.
        """
        ...

    def resolveEntity(
        self, publicId: str, systemId: str
    ) -> typing.Tuple[bool, QXmlInputSource]:
        """
        https://doc.qt.io/qt-5/qxmlentityresolver.html#resolveEntity

        **[pure virtual] bool QXmlEntityResolver::resolveEntity(const QString &
        publicId , const QString & systemId , QXmlInputSource *& ret )**

        The reader calls this function before it opens any external entity,
        except the top-level document entity. The application may request the
        reader to resolve the entity itself ( **ret** is 0) or to use an
        entirely different input source ( **ret** points to the input source).

        The reader deletes the input source **ret** when it no longer needs it,
        so you should allocate it on the heap with `new`.

        The argument **publicId** is the public identifier of the external
        entity, **systemId** is the system identifier of the external entity and
        **ret** is the return value of this function. If **ret** is 0 the reader
        should resolve the entity itself, if it is non-zero it must point to an
        input source which the reader uses instead.

        If this function returns `false` the reader stops parsing and reports an
        error. The reader uses the function **errorString** () to get the error
        message.
        """
        ...
