Я создал Java объекты из XSD, используя IntelliJ Tools> JAXB> Generate Java Code From XML Схема, используя JAXB ...
Я в основном пытаюсь сгенерировать Java объекты из XSD, а затем прочитайте XML, который будет совместим с этим XSD, в Java объекты.
Для моего упражнения я использую XSD на веб-сайте шести групп, связанном с версией кредита 1.10.
Однако, когда я пытаюсь запустить следующий код, я вижу исключение: Java .lang.ClassCastException: javax. xml .bind.JAXBElement не может быть приведен
public class Pain001Tester {
public static void main(String[] args) throws IOException {
String fileName = "pain_001_Beispiel_1.xml";
ClassLoader classLoader = new Pain001Tester().getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
//File is found
System.out.println("File Found : " + file.exists());
//Read File Content
String content = new String(Files.readAllBytes(file.toPath()));
System.out.println(content);
JAXBContext jaxbContext;
try
{
jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
ObjectFactory xmlMessage = (ObjectFactory) jaxbUnmarshaller.unmarshal(new StringReader(content));
//ObjectFactory xmlMessage = (ObjectFactory) JAXBIntrospector.getValue(jaxbUnmarshaller.unmarshal(new StringReader(content)));
//JAXBElement<ObjectFactory> userElement = (JAXBElement<ObjectFactory>) jaxbUnmarshaller.unmarshal(new StringReader(content));
//ObjectFactory user = userElement.getValue();
System.out.println(xmlMessage);
}
catch (JAXBException e)
{
e.printStackTrace();
}
}
}
Я думаю, что моя проблема связана с XMLRootElement, но я не уверен, что это проблема. Я понимаю, что следующий вопрос stackoverflow приближается к моей проблеме, но не смог решить мою проблему, используя пару решений, выделенных в случае stackoverflow: Нет @XmlRootElement, сгенерированный JAXB