Загрузка недействительной Robot Framework XML Schema (xsd) с использованием библиотеки l xml python - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь проверить вывод. xml файл из Robot Framework с официально предоставленной XML схемой :

Для проверки xml в Python I ' м, используя l xml library .

    def validate_xml_file(schema, filename: str):
        log.info("Validating XML file: {}".format(filename))
        xsd_doc = etree.parse(schema)
        xsd = etree.XMLSchema(xsd_doc)
        xml = etree.parse(filename)
        result = xsd.assertValid(xml)

Я получаю следующую ошибку:

  File "src/lxml/xmlschema.pxi", line 86, in lxml.etree.XMLSchema.__init__
lxml.etree.XMLSchemaParseError: Element '{http://www.w3.org/2001/XMLSchema}element': Invalid value for maxOccurs (must be 0 or 1)., line 19

Как вы можете видеть в xsd-файле Robot Framework, строка 19: <xs:element name="kw" type="kw" maxOccurs="2" minOccurs="0"/>, что означает, что есть проблема с macOccurs = "2" . Знаете ли вы о каком-то "хорошем" способе, как игнорировать это правило?

Спасибо.

1 Ответ

2 голосов
/ 10 января 2020

Хорошо, я нашел проблему. l xml не поддерживает XSD 1.1, он поддерживает только XSD 1.0. Поэтому я просто взял RobotFramework XSD 1.0 и теперь он работает, как и ожидалось.

...