Можно ли заставить XmlWrapper игнорировать неизвестные элементы по умолчанию?Я знаю, как установить его для каждого класса, но можете ли вы сделать это глобально по умолчанию для данного XmlMapper?
Я пытался использовать DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, как кто-то предложил, но это не работает (и читалapi doc похоже это не правильное решение).
package zm.study.xmlserialize.jackson;
import java.io.StringReader;
import org.junit.Test;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class JacksonIgnoreUnknownTest {
public static class A {
public String f1;
}
@JsonIgnoreProperties(ignoreUnknown=true)
public static class B {
public String f1;
}
@Test
public void ignoreUnknownGlobally() throws Exception
{
String xml = "<A><f1>1</f1><f2>2</f2></A>";
XmlMapper mapper = new XmlMapper();
mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, true);
mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
mapper.readValue(new StringReader(xml), A.class);
}
@Test
public void ignoreUnknownPerType() throws Exception
{
String xml = "<B><f1>1</f1><f2>2</f2></B>";
XmlMapper mapper = new XmlMapper();
mapper.readValue(new StringReader(xml), B.class);
}
}