Я пытаюсь развязать XML-строку, которая не соответствует классу JAXB. Я ожидал, что это вызовет исключение, но вместо этого будет возвращен новый объект JAXB.JAXB Unmarshalling of bad XML не генерирует исключение
xmlStr (Input XML)
<urn1:RgBad
xmlns:urn1="urn:none">
</urn1:RgBad>
Правильный XML
<urn:Rg
xmlns:urn="urn:test"
Код
(clazz = Rg.class)
JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StreamSource source = new StreamSource(new StringReader(xmlStr));
//Returns an actual Rg object, even though the source root element and namespace are different.
(unmarshaller.unmarshal(source, clazz)).getValue();
Вы должны добавить проверку схемы в JAXB. –