The XML module contains a number of tools to help you read, transform, and write XML. xmlXML Module Accepts XML messages only. Alternatively, you can set the "not" attribute to filter out XML messages. Filters messages based on XPath expressions using JXPath. Filters messages based on XPath expressions using JXPath. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. A property that will be made available to the filter context. Expression Evaluators can be used to grab these properties from the message at runtime. Whether errors are thrown if the XPath expression doesn't exist. The expected value of the XPath expression evaluation. If the expected value matches the evaluation, the filter returns true. The Jaxen filter allows you to route messages based on XPath expressions. The Jaxen filter is generally faster than the JXPath filter and should be considered the first choice when using an XPath filter. The Jaxen filter allows you to route messages based on XPath expressions. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. A property that wil be made available to the filter context. Expression Evaluators can be used to grab these properties from the message at runtime. The expected value of the XPath expression evaluation. If the expected value matches the evaluation, the filter returns true. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. The XPath expression used to split the message.The location of a schema location that should be used to validate the current message. This is not required if the message contains the location of the schema. Whether to enable schema validation when processing the XML message. Note that this can have a serious performance hit on high-throughput systems. The filter-based splitter router will select the endpoint where you want to send part of a message by filtering parts using the endpoint filters. Whether this router should fail if none of the endpoint filters match the payload. The default is true. The round robin message splitter will split a DOM4J document into nodes based on the {{splitExpression}} property. It will then send these document fragments to the list of specified endpoints in a round-robin fashion. Optionally, you can specify a namespaces property map that contain prefix/namespace mappings. If there is no endpoint filtering and this attribute is true (the default), the first message part is routed to the first endpoint, the second part routes to the second endpoint, and so on with the nth part going to the (n modulo number of endpoints) endpoint. If false, the messages will be distributed equally among all endpoints. The encoding to use for the resulting XML/Text. Converts an XML payload (Document, XML stream, Source, etc.) to a serialized String representation. Converts an XML payload (Document, XML stream, Source, etc.) to an OutputHandler for efficient serialization. The JXPathExtractor is a simple transformer that evaluates an XPath expression against the given bean and returns the result. By default, a single result will be returned. If multiple values are expected, set the {{singleResult}} property to {{false}}. In this case a {{List}} of values will be returned. Note the property is currently ignored for non-String/XML payloads. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. The XPath expression. The type of output the extractor should use: VALUE, XML, or NODE. By default, it returns the VALUE of the node. Whether the extractor should return a single result instead of a list. Defaults to true. Converts a Java object to an XML representation using XStream. Whether the transformer will serialize the payload or the entire MuleMessage including not only its payload, but also its properties, correlation ID, etc. Transforms an XML message payload to an org.w3c.dom.Document. Converts XML to Java bean graphs using XStream. The XSLT transformer uses XSLT to transform the message payload. Transformation objects are pooled for better performance. You can set transformation context properties on the transformer and can pull these properties from the message using Expression Evaluators. This works in a very similar way to the XQuery Transformer on MuleForge. The inline XSLT script definition. This is not required if the {{xslt-file}} attribute is set. A property that wil be made available to the transform context. Expression Evaluators can be used to grab these properties from the message at runtime. Transformers are pooled for better throughput, since performing and XSL transformation can be expensive. This attribute controls how many instances will remain idle in the transformer pool. The total number of XSLT transformers that will get pooled at any given time. The full path to the XSL template file to use when performing the transformation. This can be a path on the local file system or on the classpath. This attribute is not required if the <xslt-text> element has been set. The URI resolver to use when validating the XSL output. If not set, a default resolver will be used that checks for resources on the local file system and classpath. The fully qualified class name of the {{javax.xml.TransformerFactory}} instance to use. If not specified, the default JDK factory {{TransformerFactory.newInstance()}} will be used. Formats an XML string using the Pretty Printer functionality in {{org.dom4j.io.OutputFormat}}. The encoding format to use, such as UTF-8. Whether to expand empty elements from <tagName> to <tagName></tagName>. Whether to enable indenting of the XML code. If true, the indent string and size are used. The string to use as the indent, usually an empty space. The number of indent strings to use for each indent, such as "2" if {{indentString}} is set to an empty space and you want to use two empty spaces for each indent. The string to use for new lines, typically "\n". If the {{newlines}} attribute is true, the number of closing tags after which a newline separator is inserted. For example, setting this to "5" will cause a newline to be inserted after the output of five closing tags (including single tags). Whether newlines should be printed. If false, the XML is printed all on one line. Whether the XML declaration line includes the encoding of the document. It is common to suppress this in protocols such as SOAP. Whether to ensure that text immediately preceded by or followed by an element will be "padded" with a single space. This is useful when you set {{trimText}} to true and want to ensure that "the quick <b>brown</b> fox" does not become "the quick<b>brown</b>fox". Whether to suppress the XML declaration line. It is common to suppress this in protocols such as SOAP. Whether to trim white space in the XML. Whether to use the XHTML standard, which is like HTML but passes an XML parser with real closed tags, and outputs CDATA sections with CDATA delimiters. A namespace declaration for XPath expressions. The prefix used here can be used inside XPath expressions.