Spring Integration - Добавить информацию в фильтр с помощью XmlValidatingMessageSelector DSL - PullRequest
0 голосов
/ 22 мая 2018

Лучше объяснить.

То, что я хочу, это xml проверки в DSL, который применяет тот или иной xsd в зависимости от одного из полей xml.

В настоящее время выглядит так:

Чтение из MongoDB -> Разделить файлы, которые есть в JSON -> при попытке проверить.Но я хочу передать в качестве параметра тот же XML, а не «classpath: validation.xsd».

return IntegrationFlows.from(configurationInbound(factory))
                .split(Configuration.class,m->m.getFiles().values())
                .filter(new XmlValidatingMessageSelector(commonResources.getResource("classpath:validation.xsd"),
                        SchemaType.XML_SCHEMA))

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 22 мая 2018

Ваше объяснение немного неясно, но позвольте мне предположить:

Вы хотите использовать ресурс XSD из сообщения, проходящего через поток, а не статически сконфигурированный в упомянутом XmlValidatingMessageSelector.

Если это так, то, к сожалению, именно так устроен этот XmlValidatingMessageSelector.

В качестве решения я предлагаю реализовать свой собственный DynaicXmlValidatingMessageSelector с некоторой копией логики из существующего XmlValidatingMessageSelector и создатьXmlValidator в методе accept() на лету на основе входящего сообщения.

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