SILENT KILLERPanel

Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > site-packages > lxml


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/cloudlinux/venv/lib64/python3.11/site-packages/lxml

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
html Directory - -
includes Directory - -
isoschematron Directory - -
ElementInclude.py File 8560 bytes April 17 2025 13:10:58.
__init__.py File 575 bytes April 17 2025 13:10:58.
_elementpath.cpython-311-x86_64-linux-gnu.so File 230680 bytes April 17 2025 13:11:30.
_elementpath.py File 10742 bytes April 17 2025 13:10:58.
apihelpers.pxi File 64452 bytes April 17 2025 13:10:58.
builder.cpython-311-x86_64-linux-gnu.so File 123624 bytes April 17 2025 13:11:30.
builder.py File 8147 bytes April 17 2025 13:10:58.
classlookup.pxi File 22462 bytes April 17 2025 13:10:58.
cleanup.pxi File 8458 bytes April 17 2025 13:10:58.
cssselect.py File 3366 bytes April 17 2025 13:10:58.
debug.pxi File 3283 bytes April 17 2025 13:10:58.
docloader.pxi File 5783 bytes April 17 2025 13:10:58.
doctestcompare.py File 18339 bytes April 17 2025 13:10:58.
dtd.pxi File 15219 bytes April 17 2025 13:10:58.
etree.cpython-311-x86_64-linux-gnu.so File 5797240 bytes April 17 2025 13:11:30.
etree.h File 8575 bytes April 17 2025 13:10:58.
etree.pyx File 132415 bytes April 17 2025 13:10:58.
etree_api.h File 17467 bytes April 17 2025 13:10:58.
extensions.pxi File 33241 bytes April 17 2025 13:10:58.
iterparse.pxi File 16607 bytes April 17 2025 13:10:58.
lxml.etree.h File 8575 bytes April 17 2025 13:10:58.
lxml.etree_api.h File 17472 bytes April 17 2025 13:10:58.
nsclasses.pxi File 9145 bytes April 17 2025 13:10:58.
objectify.cpython-311-x86_64-linux-gnu.so File 3351520 bytes April 17 2025 13:11:30.
objectify.pyx File 77100 bytes April 17 2025 13:10:58.
objectpath.pxi File 11479 bytes April 17 2025 13:10:58.
parser.pxi File 78247 bytes April 17 2025 13:10:58.
parsertarget.pxi File 6859 bytes April 17 2025 13:10:58.
proxy.pxi File 23562 bytes April 17 2025 13:10:58.
public-api.pxi File 6660 bytes April 17 2025 13:10:58.
pyclasslookup.py File 92 bytes April 17 2025 13:10:58.
readonlytree.pxi File 19048 bytes April 17 2025 13:10:58.
relaxng.pxi File 6085 bytes April 17 2025 13:10:58.
sax.cpython-311-x86_64-linux-gnu.so File 201680 bytes April 17 2025 13:11:30.
sax.py File 9396 bytes April 17 2025 13:10:58.
saxparser.pxi File 32542 bytes April 17 2025 13:10:58.
schematron.pxi File 5782 bytes April 17 2025 13:10:58.
serializer.pxi File 67999 bytes April 17 2025 13:10:58.
usedoctest.py File 230 bytes April 17 2025 13:10:58.
xinclude.pxi File 2460 bytes April 17 2025 13:10:58.
xmlerror.pxi File 49531 bytes April 17 2025 13:10:58.
xmlid.pxi File 6064 bytes April 17 2025 13:10:58.
xmlschema.pxi File 8079 bytes April 17 2025 13:10:58.
xpath.pxi File 19571 bytes April 17 2025 13:10:58.
xslt.pxi File 36694 bytes April 17 2025 13:10:58.
xsltext.pxi File 11085 bytes April 17 2025 13:10:58.

Reading File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/lxml/schematron.pxi

# support for Schematron validation
from lxml.includes cimport schematron


cdef class SchematronError(LxmlError):
    """Base class of all Schematron errors.
    """

cdef class SchematronParseError(SchematronError):
    """Error while parsing an XML document as Schematron schema.
    """

cdef class SchematronValidateError(SchematronError):
    """Error while validating an XML document with a Schematron schema.
    """


################################################################################
# Schematron

cdef class Schematron(_Validator):
    u"""Schematron(self, etree=None, file=None)
    A Schematron validator.

    Pass a root Element or an ElementTree to turn it into a validator.
    Alternatively, pass a filename as keyword argument 'file' to parse from
    the file system.

    Schematron is a less well known, but very powerful schema language.  The main
    idea is to use the capabilities of XPath to put restrictions on the structure
    and the content of XML documents.  Here is a simple example::

      >>> schematron = Schematron(XML('''
      ... <schema xmlns="http://www.ascc.net/xml/schematron" >
      ...   <pattern name="id is the only permitted attribute name">
      ...     <rule context="*">
      ...       <report test="@*[not(name()='id')]">Attribute
      ...         <name path="@*[not(name()='id')]"/> is forbidden<name/>
      ...       </report>
      ...     </rule>
      ...   </pattern>
      ... </schema>
      ... '''))

      >>> xml = XML('''
      ... <AAA name="aaa">
      ...   <BBB id="bbb"/>
      ...   <CCC color="ccc"/>
      ... </AAA>
      ... ''')

      >>> schematron.validate(xml)
      0

      >>> xml = XML('''
      ... <AAA id="aaa">
      ...   <BBB id="bbb"/>
      ...   <CCC/>
      ... </AAA>
      ... ''')

      >>> schematron.validate(xml)
      1

    Schematron was added to libxml2 in version 2.6.21.  Before version 2.6.32,
    however, Schematron lacked support for error reporting other than to stderr.
    This version is therefore required to retrieve validation warnings and
    errors in lxml.
    """
    cdef schematron.xmlSchematron* _c_schema
    cdef xmlDoc* _c_schema_doc
    def __cinit__(self):
        self._c_schema = NULL
        self._c_schema_doc = NULL

    def __init__(self, etree=None, *, file=None):
        cdef _Document doc
        cdef _Element root_node
        cdef xmlNode* c_node
        cdef char* c_href
        cdef schematron.xmlSchematronParserCtxt* parser_ctxt = NULL
        _Validator.__init__(self)
        if not config.ENABLE_SCHEMATRON:
            raise SchematronError, \
                u"lxml.etree was compiled without Schematron support."
        if etree is not None:
            doc = _documentOrRaise(etree)
            root_node = _rootNodeOrRaise(etree)
            self._c_schema_doc = _copyDocRoot(doc._c_doc, root_node._c_node)
            parser_ctxt = schematron.xmlSchematronNewDocParserCtxt(self._c_schema_doc)
        elif file is not None:
            filename = _getFilenameForFile(file)
            if filename is None:
                # XXX assume a string object
                filename = file
            filename = _encodeFilename(filename)
            with self._error_log:
                orig_loader = _register_document_loader()
                parser_ctxt = schematron.xmlSchematronNewParserCtxt(_cstr(filename))
                _reset_document_loader(orig_loader)
        else:
            raise SchematronParseError, u"No tree or file given"

        if parser_ctxt is NULL:
            if self._c_schema_doc is not NULL:
                tree.xmlFreeDoc(self._c_schema_doc)
                self._c_schema_doc = NULL
            raise MemoryError()

        try:
            with self._error_log:
                orig_loader = _register_document_loader()
                self._c_schema = schematron.xmlSchematronParse(parser_ctxt)
                _reset_document_loader(orig_loader)
        finally:
            schematron.xmlSchematronFreeParserCtxt(parser_ctxt)

        if self._c_schema is NULL:
            raise SchematronParseError(
                u"Document is not a valid Schematron schema",
                self._error_log)

    def __dealloc__(self):
        schematron.xmlSchematronFree(self._c_schema)
        if self._c_schema_doc is not NULL:
            tree.xmlFreeDoc(self._c_schema_doc)

    def __call__(self, etree):
        u"""__call__(self, etree)

        Validate doc using Schematron.

        Returns true if document is valid, false if not."""
        cdef _Document doc
        cdef _Element root_node
        cdef xmlDoc* c_doc
        cdef schematron.xmlSchematronValidCtxt* valid_ctxt
        cdef int ret

        assert self._c_schema is not NULL, "Schematron instance not initialised"
        doc = _documentOrRaise(etree)
        root_node = _rootNodeOrRaise(etree)

        valid_ctxt = schematron.xmlSchematronNewValidCtxt(
            self._c_schema, schematron.XML_SCHEMATRON_OUT_ERROR)
        if valid_ctxt is NULL:
            raise MemoryError()

        try:
            self._error_log.clear()
            schematron.xmlSchematronSetValidStructuredErrors(
                valid_ctxt, _receiveError, <void*>self._error_log)
            c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
            with nogil:
                ret = schematron.xmlSchematronValidateDoc(valid_ctxt, c_doc)
            _destroyFakeDoc(doc._c_doc, c_doc)
        finally:
            schematron.xmlSchematronFreeValidCtxt(valid_ctxt)

        if ret == -1:
            raise SchematronValidateError(
                u"Internal error in Schematron validation",
                self._error_log)
        if ret == 0:
            return True
        else:
            return False

SILENT KILLER Tool