You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2022/09/02 17:52:00 UTC

[jira] [Resolved] (CAMEL-16485) Allow XML namespaces for xpath mock expectations

     [ https://issues.apache.org/jira/browse/CAMEL-16485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-16485.
---------------------------------
    Resolution: Information Provided

> Allow XML namespaces for xpath mock expectations
> ------------------------------------------------
>
>                 Key: CAMEL-16485
>                 URL: https://issues.apache.org/jira/browse/CAMEL-16485
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-test
>    Affects Versions: 3.9.0
>            Reporter: Dietrich Schulten
>            Priority: Major
>
> It is possible to write an xpath expectation for a mock endpoint:
> {code:java}
>  mockendpoint.message(0).body().matches().xpath("/ns2:myElement"){code}
> However, this does not seem to work with namespaced elements (ns2 in the example above).
> The Camel XPath documentation says that the {{Namespaces}} class can be used to define namespaces for e.g. xpath filters (btw. the code snippet that was formerly presented to show the usage got lost in the current manual).
> Also, the {{XPathBuilder}} already has a {{namespace()}} method to set namespaces. But it appears that the {{MockExpressionClause.getExpressionValue }}does not support that, it uses {{XPathLanguage.createPredicate}} to create the XPath expression with a plain {{XPathBuilder}} without defining namespaces.
> Is it possible to add namespaces to mock expectations somehow? If not I would like to suggest such support as an improvement. If it were built like the filter DSL, it should be possible to say sth like:
> {code:java}
> Namespaces namespaces = new Namespaces("ns2", "http://xpsw.domap.de/xpsw174");
> mockendpoint.message(0).body().matches().xpath("/ns2:myElement", namespaces) {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)