Using camel's in:header() xpath function,  we can deal with  xml stored in
message header very easy; for example:
        <setHeader name="cheaperBooks">
                <xpath>in:header('bookstore')/child::book[price<100]</xpath>
        </setHeader>

The setHeader could retrieve all cheaper books(price less than 100) from a
bookstore xml (which already stored in message header('bookstore')

But in camel, things are not always so easy. The user must make sure input
message's body must be a valid XML or null(although the body's content may
have nothing to do with the bookstore xml). Otherwise the above xapth
express will failed; 

Suggestion(Maybe):

Camel's XPath expression should check if the input body's content could be
convert to xml. If the body cannot, then using a null instead of original
message body to do XPathExpression.evaluate;


Reply via email to