3. Enterprise Integration Patterns

xmlContentFilter

Version

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 performancewhere 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.


Syntax

<xmlContentFilter xPath="string" />
<xmlContentFilter xPath="string" />

Sample

<proxies>
<serviceProxy port="2000">
<response>
<xmlContentFilter xPath="//book/reviews" />
</response>

<target host="www.membrane-soa.org" />
</serviceProxy>
</proxies>
<proxies>
  <serviceProxy port="2000">
	<response>
	  <xmlContentFilter xPath="//book/reviews" />
	</response>

	<target host="www.membrane-soa.org" />
  </serviceProxy>
</proxies>

Attributes

NameRequiredDefaultDescriptionExamples
xPathtrue-An XPath 1.0 expression describing the elements to be removed from message bodies.-

Can be used in