我們爲各種客戶建立了一個處理亞馬遜供稿的系統。這是工作了很多客戶和我們成功地處理這樣的反饋:處理亞馬遜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