import typing

import java
import java.chaquopy
import java.io
import java.lang
import java.net
import javax.xml.transform
import org.w3c.dom
import org.w3c.dom.ls
import org.xml.sax

class Schema(java.lang.Object):
    def __init__(self) -> None: ...
    def newValidator(self) -> Validator: ...
    def newValidatorHandler(self) -> ValidatorHandler: ...

class SchemaFactory(java.lang.Object):
    def __init__(self) -> None: ...
    def getErrorHandler(self) -> org.xml.sax.ErrorHandler: ...
    def getFeature(self, name: str | java.lang.String, /) -> bool: ...
    def getProperty(self, name: str | java.lang.String, /) -> java.lang.Object: ...
    def getResourceResolver(self) -> org.w3c.dom.ls.LSResourceResolver: ...
    def isSchemaLanguageSupported(self, arg1: str | java.lang.String, /) -> bool: ...
    @typing.overload
    @staticmethod
    def newInstance(schemaLanguage: str | java.lang.String, /) -> SchemaFactory: ...
    @typing.overload
    @staticmethod
    def newInstance(schemaLanguage: str | java.lang.String, factoryClassName: str | java.lang.String, classLoader: java.lang.ClassLoader, /) -> SchemaFactory: ...
    @typing.overload
    def newSchema(self) -> Schema: ...
    @typing.overload
    def newSchema(self, schema: java.io.File, /) -> Schema: ...
    @typing.overload
    def newSchema(self, schema: java.net.URL, /) -> Schema: ...
    @typing.overload
    def newSchema(self, schema: javax.xml.transform.Source, /) -> Schema: ...
    @typing.overload
    def newSchema(self, arg1: java.chaquopy.JavaArray[javax.xml.transform.Source], /) -> Schema: ...
    def setErrorHandler(self, arg1: org.xml.sax.ErrorHandler, /) -> None: ...
    def setFeature(self, name: str | java.lang.String, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProperty(self, name: str | java.lang.String, object: java.lang.Object | int | bool | float | str, /) -> None: ...
    def setResourceResolver(self, arg1: org.w3c.dom.ls.LSResourceResolver, /) -> None: ...

class SchemaFactoryLoader(java.lang.Object):
    def __init__(self) -> None: ...
    def newFactory(self, arg1: str | java.lang.String, /) -> SchemaFactory: ...

class TypeInfoProvider(java.lang.Object):
    def __init__(self) -> None: ...
    def getAttributeTypeInfo(self, arg1: int | java.jint | java.lang.Integer, /) -> org.w3c.dom.TypeInfo: ...
    def getElementTypeInfo(self) -> org.w3c.dom.TypeInfo: ...
    def isIdAttribute(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...
    def isSpecified(self, arg1: int | java.jint | java.lang.Integer, /) -> bool: ...

class Validator(java.lang.Object):
    def __init__(self) -> None: ...
    def getErrorHandler(self) -> org.xml.sax.ErrorHandler: ...
    def getFeature(self, name: str | java.lang.String, /) -> bool: ...
    def getProperty(self, name: str | java.lang.String, /) -> java.lang.Object: ...
    def getResourceResolver(self) -> org.w3c.dom.ls.LSResourceResolver: ...
    def reset(self) -> None: ...
    def setErrorHandler(self, arg1: org.xml.sax.ErrorHandler, /) -> None: ...
    def setFeature(self, name: str | java.lang.String, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProperty(self, name: str | java.lang.String, object: java.lang.Object | int | bool | float | str, /) -> None: ...
    def setResourceResolver(self, arg1: org.w3c.dom.ls.LSResourceResolver, /) -> None: ...
    @typing.overload
    def validate(self, source: javax.xml.transform.Source, /) -> None: ...
    @typing.overload
    def validate(self, arg1: javax.xml.transform.Source, arg2: javax.xml.transform.Result, /) -> None: ...

class ValidatorHandler(org.xml.sax.ContentHandler):
    def __init__(self) -> None: ...
    def getContentHandler(self) -> org.xml.sax.ContentHandler: ...
    def getErrorHandler(self) -> org.xml.sax.ErrorHandler: ...
    def getFeature(self, name: str | java.lang.String, /) -> bool: ...
    def getProperty(self, name: str | java.lang.String, /) -> java.lang.Object: ...
    def getResourceResolver(self) -> org.w3c.dom.ls.LSResourceResolver: ...
    def getTypeInfoProvider(self) -> TypeInfoProvider: ...
    def setContentHandler(self, arg1: org.xml.sax.ContentHandler, /) -> None: ...
    def setErrorHandler(self, arg1: org.xml.sax.ErrorHandler, /) -> None: ...
    def setFeature(self, name: str | java.lang.String, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProperty(self, name: str | java.lang.String, object: java.lang.Object | int | bool | float | str, /) -> None: ...
    def setResourceResolver(self, arg1: org.w3c.dom.ls.LSResourceResolver, /) -> None: ...
