[英]Error validating/parsing xml file against xsd with lxml/objectify in Python
在Python / Django中,我需要根据给定的XMLSchema解析和目标化.xml文件,该XMLSchema由以以下方式相互引用的三个.xsd文件组成:
schema3.xsd(指的是schema1.xsd)
schema2.xsd(引用schema1.xsd)
schema1.xsd(引用schema2.xsd)
为此,我使用下面的代码段,这些代码段已经与两个xml / xsd文件(其中.xsd是“独立的”,没有引用其他.xsd的)一起使用时已经测试过成功:
import lxml import os.path from lxml import etree, objectify from lxml.etree import XMLSyntaxError def xml_validator(request): # define path of files path_file_xml = '../myxmlfile.xml' path_file_xsd = '../schema3.xsd' # get file XML xml_file = open(path_file_xml, 'r') xml_string = xml_file.read() xml_file.close() # get XML Schema doc = etree.parse(path_file_xsd) schema = etree.XMLSchema(doc) #define parser parser = objectify.makeparser(schema=schema) # trasform XML file root = objectify.fromstring(xml_string, parser) test1 = root.tag return render(request, 'risultati.html', {'risultato': test1})
不幸的是,我被上面描述的多个.xsd遇到的以下错误所困扰:
复杂类型'ObjectType':内容模型不确定。
请求方法:GET请求网址: http : //127.0.0.1 : 8000 / xml_validator
Django版本:1.9.1异常类型:XMLSchemaParseError异常
值:复杂类型'ObjectType':内容模型不确定,第80行
有什么想法吗?
在此先非常感谢您提供解决此问题的任何建议或有用的提示...
干杯
更新23/03/2016
此处(以及该帖子的以下答案,因为它实际上超出了帖子的最大字符数),以找出问题的文件示例...
我最好的猜测是您的XSD模型不遵守“ 唯一粒子归因”规则。 在查看其他内容之前,我将排除此情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.