xmlContentFilter
Description
The xmlContentFilter removes certain XML elements from message bodies. The elements are described using an XPath expression.
Can be used in
spring:beans, api, bean, if, interceptor, internalProxy, proxy, registration, request, response, serviceProxy, soapProxy, stompProxy, swaggerProxy, transport and wsStompReassembler
Syntax
<xmlContentFilter xPath="string" />
Sample
<proxies> <serviceProxy port="2000"> <response> <xmlContentFilter xPath="//book/reviews" /> </response> <target host="www.membrane-soa.org" /> </serviceProxy> </proxies>
Attributes
Name | Required | Default | Description | Example |
---|---|---|---|---|
xPath | true | - | An XPath 1.0 expression describing the elements to be removed from message bodies. |
Explanation
If the XPath expression is simple enough, a StAX-Parser is used to determine whether the XPath might match a message at all. This can improve performance significantly, as a DOM tree does probably not have to to be constructed for every message. This is, for example, the case in
<xmlContentFilter xPath="//*[local-name()='Fault' and namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']//*[local-name()='stacktrace']" />
If the message body is not well-formed XML, it is left unchanged. If the message is XOP-encoded, the XPath-expression is run on the reconstituted message; if it matches, the message is replaced by the modified reconstituted message.