Кажется, что стандартный подход для десериализации JAXB XML заключается в указании имени пакета при создании контекста. Затем JAXB ищет класс на основе корневого элемента:
JAXBContext jc = JAXBContext.newInstance("com.foo");
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal(new StringReader("<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MyJaxb>..."));
Я ищу более гибкий подход, при котором мне не нужно указывать имя пакета и все равно можно десериализовать любой объект. Это было бы так же просто, как JAXB, хранящий пакет в XML, но я не могу понять, как это сделать. Я могу написать код, чтобы сделать это сам, но это было бы неприятно. Он хотел бы, чтобы JAXB сделал это, если это возможно. Кстати, я не использую схемы, просто аннотации и маршал / демаршал. Есть идеи?