Spring 集成 - 使用 XmlValidatingMessageSelector DSL 在过滤器中添加信息

Spring Integration - Add info at filter with XmlValidatingMessageSelector DSL

最好解释一下。

我想要的是 DSL 中的验证 xml,它根据 xml.

的字段之一应用一个或另一个 xsd

现在看起来像这样:

从 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))

有什么办法吗?

你的解释有点不清楚,我猜一下:

您想使用通过流传递的消息中的 XSD 资源,而不是在提到的 XmlValidatingMessageSelector 上静态配置。

如果是这样,那么不幸的是这就是 XmlValidatingMessageSelector 的设计方式。

作为解决方案,我建议使用现有 XmlValidatingMessageSelector 中的一些复制逻辑来实现您自己的 DynaicXmlValidatingMessageSelector,并在 accept() 方法中即时创建一个 XmlValidator基于收到的消息。