我正在寻找有关如何阅读亚马逊用于验证其XML产品Feed的XSD的一些说明。
当我提交没有说明或BulletPoint Feed的基本产品Feed时,我收到此错误:
未提供" bullet_point1"的值。请提供" bullet_point1"的值。此信息显示在产品详细信息页面上,可帮助客户评估产品。
未提供" product_description"的值。请提供" product_description"的值。此信息显示在产品详细信息页面上,可帮助客户评估产品。
以下是相关的XSD部分:
<xsd:element name="Description" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:normalizedString">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="BulletPoint" type="LongStringNotNull" minOccurs="0" maxOccurs="5"/>
我的理解是minOccurs="0"
意味着它不是必需的,但它显然是。我已经查看了一些其他内部XSD(例如cordova-plugin-transport-security),以防这些字段被覆盖但没有看到任何内容。
这是错误的XSD吗?我读错了吗?
答案 0 :(得分:2)
是的,minOccurs="0"
表示可选,但是......
通常,应用程序通常具有超出其XML输入的XSD中指定的附加要求。当仅在某些情况下需要参数时,XSD会在一般情况下将它们列为可选参数,然后在XSD的带外检查它们。 (XSD 1.1通过xs:assertion
为条件要求的元素/属性提供了一些额外的表达能力,但它尚未被广泛采用。)
请注意,bullet_point1
未出现在您与问题相关的任何XSD或文档中。如果bullet_point1
来自XSD中的BulletPoint
,那么它显然是一个下游应用程序,它会提出额外要求,并在未满足时发出错误。
答案 1 :(得分:2)
我向亚马逊开发商询问了这个问题,他们回答我:
类别的xsd未正确更新,因此某些元素将是 需要但没有反映在.xsd文档中,这就是问题所在。