Итак, я пытаюсь разобрать мой xml ответ на объект в моей программе. Однако я постоянно получаю
unexpected element (uri:"urn:ebay:apis:eBLBaseComponents", local:"GetItemResponse"). Expected elements are <{urn:ebay:apis:eBLBaseComponents}urn:ebay:apis:eBLBaseComponents>
Мое текущее решение, которое я пытался реализовать, использует класс package-info, который выглядит так:
@javax.xml.bind.annotation.XmlSchema(namespace = "urn:ebay:apis:eBLBaseComponents")
package com.ebay.queens.responses.getitemresponse;
import javax.xml.bind.annotation.XmlSchema;
Я пытался аннотировать мой класс ответа с помощью
@XmlRootElement(name="urn:ebay:apis:eBLBaseComponents")
Мой XML выглядит следующим образом (для краткости это сокращено)
<?xml version="1.0" encoding="UTF-8"?>
<GetItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2020-02-06T10:24:02.549Z</Timestamp>
<Ack>Success</Ack>
<Version>1125</Version>
<Build>E1125_INTL_API_19070421_R1</Build>
</GetItemResponse>
Наконец мой код сортировки выглядит следующим образом
String result = httpClass.genericXMLSendPOST("https://api.ebay.com/ws/api.dll", getItemRequest, "getItem");
System.out.println("Result: " + result);
try {
JAXBContext jaxbContext = JAXBContext.newInstance(GetItemResponse.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
getItemResponse = (GetItemResponse) unmarshaller.unmarshal(new StringReader(result));
System.out.println("---------------------------------");
} catch (JAXBException e) {
LOGGER.error("Failed to deserialize XML.", e);
}
I Я пробовал и исследовал много подобных проблем с переполнением стека, но ни одна из них не подходит для моей ситуации, поэтому, если у кого-то есть какие-либо идеи или я смогу помочь мне решить эту проблему, это было бы здорово!