Class XMLContentFilterInterceptor

java.lang.Object
com.predic8.membrane.core.interceptor.AbstractInterceptor
com.predic8.membrane.core.interceptor.xmlcontentfilter.XMLContentFilterInterceptor
All Implemented Interfaces:
Interceptor

public class XMLContentFilterInterceptor extends AbstractInterceptor
Description

The xmlContentFilter removes certain XML elements from message bodies. The elements are described using an XPath expression.

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']" /> xmlContentFilter using a StAX-Parser for improved performance where the existence of the <Fault>-element is checked using the StAX-parser before the DOM is constructed.

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.

Topic
3. Enterprise Integration Patterns