【问题标题】:Load invalid Robot Framework XML Schema (xsd) using lxml python library使用 lxml python 库加载无效的 Robot Framework XML Schema (xsd)
【发布时间】:2020-01-10 08:58:43
【问题描述】:

我正在尝试使用官方提供的XML schema 验证来自 Robot Framework 的 output.xml 文件:

对于 Python 中的 xml 验证,我使用的是 lxml 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

正如您在 Robot Framework xsd 文件中看到的,第 19 行是: <xs:element name="kw" type="kw" maxOccurs="2" minOccurs="0"/> 这意味着 ma​​cOccurs="2" 存在问题。你知道一些“不错”的方式,如何忽略这条规则?

谢谢。

【问题讨论】:

    标签: python python-3.x xml xsd lxml


    【解决方案1】:

    好的,我找到了问题。 lxml 不支持 XSD 1.1,它只支持 XSD 1.0。所以我刚刚使用了 RobotFramework XSD 1.0,现在它可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2019-07-12
      • 2014-06-17
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多