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 or not 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. The XPath filter uses the JAXP libraries to filter XPath expressions. Available as of Mule 2.2. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. The expected value of the XPath expression evaluation. If the expected value matches the evaluation, the filter returns true. The schema validation filter uses the JAXP libraries to validate your message against a schema. Available as of Mule 2.2. The path to the schema file. You can specify multiple schema locations for validation. The schema language to use. The default is "http://www.w3.org/2001/XMLSchema". Whether the filter should cache the result of the XML. If this is false, the filter will be more efficient, but it won't allow you to read the XML again. 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 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. The XPathExtractor is a simple transformer that evaluates an XPath expression using the JAXP libraries against the given bean and returns the result. By default, a String of the result will be returned. To return a Node, NodeSet, Boolean or Number result, the {{resultType}} attribute can be set. A namespace declaration, expressed as {{prefix}} and {{uri}} attributes. The prefix can then be used inside the expression. The XPath expression. The XPath result type (e.g. STRING or NODE). 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 core of XStream consists of a registry of Converters. The responsibility of a Converter is to provide a strategy for converting particular types of objects found in the object graph, to and from XML. XStream is provided with Converters for common types such as primitives, String, File, Collections, arrays, and Dates. For a list of defautl convers see: http://xstream.codehaus.org/converters.html Which XStream driver class to use. Unless you know what you are doing the default will be fine for most cases. Converts a Java object to an XML representation using XStream. Converts XML to Java bean graphs using XStream. A reference to a JaxbContext created as a Spring bean The reference name of this context. Usually this will be referenced by a JAXB transformer A colon-separated list of packages where JAXB classes live 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. 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. An Xml transformer uses XQuery 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. A property that wil be made available to the XQuery transform context. Expression Evaluators can be used to grab these properties from the message at runtime. The inline XQuery script definition. This is not required if the <xquery-file> attribute is set. Transformers are pooled for better throughput, since performing and XQuery transformation can be expensive. This attribute controls how many instances will remain idle in the transformer pool. The total number of XQuery transformers that will get pooled at any given time. The full path to the XQuery 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 <xquery-text> element has been set. A reference to a Saxon configuration object to configure the transformer (configured as a Spring bean). If not set, the default Saxon configuration is used. Formats an XML string using the Pretty Printer functionality in {{org.dom4j.io.OutputFormat}}. 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 manager that allows global namespaces to be configured. These namespaces will be made available to expressions routers, filters and transformers. If true, the top-level namespaces declared in this configuration file will be added to the Manager. Defaults to false. A namespace declaration for XPath expressions. The prefix used here can be used inside XPath expressions. An alias used when serializing object to XML. The Alias replaces a fully qualified class name defines one or more class names for converters to be used by XStream to handle different object types.