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
基于收到的消息。
最好解释一下。
我想要的是 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
基于收到的消息。