【问题标题】:XSD validation clarification for Amazon MWS product feed亚马逊 MWS 产品 Feed 的 XSD 验证说明
【发布时间】:2016-02-15 08:02:31
【问题描述】:

我正在寻找有关如何阅读亚马逊用来验证其 XML 产品提要的 XSD 的一些说明。

这是使用的XSD(和内部的Product),这些是docs

当我提交没有描述的基本产品 Feed 或 BulletPoint 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(例如 Base),以防它们被覆盖但没有看到任何内容。

这是错误的 XSD 吗?我读错了吗?

【问题讨论】:

    标签: xml amazon-web-services xsd amazon-mws


    【解决方案1】:

    是的,minOccurs="0" 表示可选,但是...

    一般来说,应用程序通常具有超出其 XML 输入的 XSD 中指定的其他要求。当仅在某些情况下需要参数时,XSD 会在一般情况下将它们列为可选参数,然后在 XSD 带外检查它们。 (XSD 1.1 通过xs:assertion 为有条件地要求元素/属性提供了一些额外的表现力,但它还没有被广泛采用。)

    请注意,bullet_point1 不会出现在您链接到问题的任何 XSD 或文档中。如果 bullet_point1 是从 XSD 中的 BulletPoint 派生的,那么它显然是一个下游应用程序,它提出了额外的要求并在未满足时发出错误。

    【讨论】:

    • 是的 - 我怀疑它是其他下游。亚马逊接受包含 bullet_point1-5 的 xls 文件。我希望做出明智的验证决定,但我想这将是一个尝试和告诉的事情。
    【解决方案2】:

    我向亚马逊开发者提出了这个问题,他们回答了我:

    xsd 类别未正确更新,因此某些元素会 需要但未反映在 .xsd 文档中,这是问题所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 2018-06-04
      相关资源
      最近更新 更多