我正在编写一个Python脚本,该脚本创建XML数据,然后使用XSD文件对其进行验证。在XML数据的一个特定位置,即使看起来正确,我也会收到验证错误。
首先,这是XSD文件的摘录
@4=d
我将其解释为“地址”标签可以包含零个或一个“城市”标签和“邮政编码”标签。作为我的xml数据的简化版本是这样的:
def string_list_to_int_list(l):
return l.astype(float)
converted_list = list(map(string_list_to_int_list, list2))
根据XSD,我认为这是合法的xml数据。这是代码:
<xs:complexType name="address">
<xs:all>
<xs:element name="city" type="string255Length" minOccurs="0">
<xs:element name="postal_code" type="string255Length" minOccurs="0">
运行该代码时,我得到
<address>
<city>London</city>
</address>
在我看来,XML验证程序似乎忽略了schema_doc = etree.parse(xsd_file)
schema = etree.XMLSchema(schema_doc)
schema.assertValid(xml_data)
语句,因此要求所有元素都存在。
有人知道是什么原因导致了这个看似意外的错误吗?