Дублирующиеся теги XML не обнаруживаются даже при использовании необходимых свойств - PullRequest
2 голосов
/ 21 июня 2019

У меня есть приложение веб-службы Springboot, и я использую теги Джексона для XML и JSON.Для JSON я могу идентифицировать дубликаты, но не в XML.Для обнаружения дубликатов в JSON используется следующая конфигурация

spring:
   jackson:
      deserialization:
         fail-on-unknown-properties: true
      parser:
         STRICT_DUPLICATE_DETECTION: true

DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY или JsonParser.Feature.STRICT_DUPLICATE_DETECTION, ни один из них не работает с вводом XML

Конфигурация для определения дубликатов, поскольку ниже указана конфигурация для обнаружения дубликатов1006 *

@Configuration
public class AppConfig {

    @Bean(name = "xmlmapper")
    public ObjectMapper xmlObjectMapper() {
        ObjectMapper mapper = new XmlMapper();
        mapper.setSerializationInclusion(Include.NON_NULL);
        mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
        mapper.enable(JsonParser.Feature.STRICT_DUPLICATE_DETECTION);
        return mapper;
    }
}

Теперь, когда мы даем XML с дублирующимся элементом, он не выдает ошибку по умолчанию, он выбирает второе значение тега

<Test>
   <A>v1</A>
   <A>v2</A>
</Test>

Соответствующий класс указан ниже

@JacksonXmlRootElement(localName="Test")
public class Test {
      @JsonProperty("A")
      @JacksonXmlProperty(localName="A")
      protected String a;
}

Ожидаемый результат - выдается ошибка, когда дубликаты тегов передаются в XML, но это не так.Я не хочу использовать регистронезависимость, поскольку это может вызвать еще одну проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...