我们为各种客户建立了一个处理亚马逊供稿的系统。这是工作了很多客户和我们成功地处理这样的反馈:处理亚马逊MWS供稿响应
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.02</DocumentVersion>
<MerchantIdentifier>REDACTED_8055</MerchantIdentifier>
</Header>
<MessageType>ProcessingReport</MessageType>
<Message>
<MessageID>1</MessageID>
<ProcessingReport>
<DocumentTransactionID>1016539</DocumentTransactionID>
<StatusCode>Complete</StatusCode>
<ProcessingSummary>
<MessagesProcessed>218</MessagesProcessed>
<MessagesSuccessful>218</MessagesSuccessful>
<MessagesWithError>0</MessagesWithError>
<MessagesWithWarning>0</MessagesWithWarning>
</ProcessingSummary>
</ProcessingReport>
</Message>
</AmazonEnvelope>
然而,一个客户正在恢复这样的饲料响应:
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>3.00</DocumentVersion>
<MerchantIdentifier>REDACTED_43183</MerchantIdentifier>
</Header>
<MessageType>ProcessingReport</MessageType>
<Message>
<MessageID>1</MessageID>
<ProcessingReport>
<ProcessingReportType>Inventory</ProcessingReportType>
<DocumentTransactionID>10460738</DocumentTransactionID>
<Summary MarketplaceName="All">
<StatusCode>Complete</StatusCode>
<ProcessingSummary>
<MessagesProcessed>1</MessagesProcessed>
<MessagesSuccessful>1</MessagesSuccessful>
<MessagesWithError>0</MessagesWithError>
<MessagesWithWarning>0</MessagesWithWarning>
</ProcessingSummary>
</Summary>
</ProcessingReport>
</Message>
</AmazonEnvelope>
不失败解组。请注意细微差别:DocumentVersion不同,并且processingSummary嵌入在架构不期望的摘要标记内。后者会杀死JAXB解组过程。我找不到任何文件说明为什么发生这种情况,并希望以前有人遇到过这种情况。
我甚至不能告诉JAXB忽略未知元素,因为我需要ProcessingSummary并将它埋在奇怪的“Summary”标记下。
有谁知道为什么一个客户会得到一种类型的饲料反应,另一个会得到一个不同的饲料反应?
那么,你的问题到底是什么?为什么亚马逊向其中一个客户提供不同的XML?很显然,这是一个不同的模式,所以没有突出的JAXB不能用1.02类解组3.00。 – lexicore
是的,我的问题是,“为什么亚马逊向不同的客户提供不同的XML?”我将编辑该问题以反映这一点。 – IcedDante