переменная верблюда XPATH в XQuery element () проблема преобразования - PullRequest
0 голосов
/ 24 октября 2018

В Apache Camel мне нужно извлечь элемент XML и передать его в xquery как element (), но у меня странная ошибка.Любые идеи и предложения приветствуются!

Код верблюда:

from(SOAP_ENDPOINT_IN_URI + "&dataFormat=CXF_MESSAGE") 
.setHeader("CMDRequest",  XPathBuilder.xpath("//*[local-name() = 
'CMDRequest']") 

Код запроса:

declare variable $in.headers.CMDRequest as element() external ;

Ошибка:

Вызывается: net.sf.saxon.trans.XPathException: Обязательный тип элемента значения переменной $ in.headers.GetDeltaCustomerRequest is element ();предоставленное значение имеет тип элемента Q {http://saxon.sf.net/java-type}com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList

1 Ответ

0 голосов
/ 24 октября 2018

Похоже, ваш xpath возвращает список элементов, а не один элемент.Это можно исправить, взяв первый элемент массива CMDRequest (при условии, что список никогда не будет пустым):

.setHeader("CMDRequest",  XPathBuilder.xpath("(//*[local-name()='CMDRequest'])[1]") 
...