예제 #1
0
    def test_get_schemas_from_doc(self):
        filename = self.get_simple_valid_xml()

        parser = etree.XMLParser(remove_blank_text=True)
        doc = etree.parse(filename, parser=parser)

        schema = getSchemas(doc=doc)
        self.assertTrue(type(schema) is etree.XMLSchema)
예제 #2
0
    def run(self, xml_filename=None, schema_filename=None):
        """
        Validates (using LXML) an XML file using a specified schema file
        """

        doc = etree.ElementTree(file=xml_filename)

        if schema_filename:
            xmlschema = etree.XMLSchema(etree.parse(schema_filename))
        else:
            xmlschema = getSchemas(doc=doc)

        xmlschema.assertValid(doc)
        self.set_progress(100, total=100)
        return "Success"
예제 #3
0
def validate_against_schema(xmlfile, schema=None, rootdir=None):
    doc = etree.ElementTree(file=xmlfile)

    if schema:
        xmlschema = etree.XMLSchema(etree.parse(schema))
    else:
        xmlschema = getSchemas(doc=doc)

    xmlschema.assertValid(doc)

    if rootdir is None:
        rootdir = os.path.split(xmlfile)[0]

    for ptr in find_pointers(xmlfile):
        validate_against_schema(os.path.join(rootdir, ptr.path), schema)
예제 #4
0
파일: util.py 프로젝트: ESSolutions/ESSArch
def validate_against_schema(xmlfile, schema=None, rootdir=None):
    doc = etree.ElementTree(file=xmlfile)

    if schema:
        xmlschema = etree.parse(schema)
    else:
        xmlschema = getSchemas(doc=doc)

    with tempfile.TemporaryDirectory() as tempdir:
        xmlschema = download_imported_https_schemas(xmlschema, tempdir)
        xmlschema = etree.XMLSchema(xmlschema)
        xmlschema.assertValid(doc)

    if rootdir is None:
        rootdir = os.path.split(xmlfile)[0]

    for ptr in find_pointers(xmlfile):
        validate_against_schema(os.path.join(rootdir, ptr.path), schema)
예제 #5
0
    def test_get_schema_from_file_with_bad_input(self):
        fp = self.get_bad_xml_file()

        with self.assertRaises(etree.XMLSyntaxError):
            getSchemas(filename=fp)
예제 #6
0
    def test_get_schema_from_none_existing_file_should_raise_exception(self):
        filename = "this_file_hopefully_does_not_exist"

        with self.assertRaises(IOError):
            getSchemas(filename=filename)
예제 #7
0
 def test_get_schema_with_no_argument_should_throw_exception(self):
     with self.assertRaisesRegexp(
             AttributeError,
             "'NoneType' object has no attribute 'getroot'"):
         getSchemas()
예제 #8
0
 def test_get_schema_from_file(self):
     schema = getSchemas(filename=self.get_simple_valid_xml())
     self.assertTrue(type(schema) is etree.XMLSchema)
예제 #9
0
 def test_get_schema_from_file(self):
     schema = getSchemas(filename=self.get_simple_valid_xml())
     self.assertIs(type(schema), etree._Element)