Я нашел обходной путь к этой проблеме - несколько уродливый, но он работает.
При чтении через Javadoc Camel BuilderSupport and Expression кажется, что модификатор .saxon()
не работает противвыражение .xpath
, поскольку оно не возвращает объект XpathBuilder.Однако, поскольку .when()
может принимать выражение в качестве самого параметра, использование формы BuilderSupport xpath()
возвращает объект XPathBuilder и, таким образом, поддерживает модификатор .saxon()
.
Однако Talend не отображается вбыть в состоянии разрешить вам предоставить параметр для функции .when
, но только потом применять квалификаторы выражений.
Чтобы обойти это, я имею следующую структуру:
Критериям ссылки «Критерии» присвоено постоянное выражение "false"
.Затем следует компонент cJavaDSLProcessor с кодом вида:
.when(xpath("myXPath2Expression").saxon())
, и это работает, хотя и с использованием неиспользуемых критериев в результирующем .choice()
, что, безусловно, является плохим стилем.