You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2018/11/29 08:26:59 UTC

svn commit: r1037379 [4/20] - in /websites/production/camel/content: ./ 2018/11/29/ cache/

Modified: websites/production/camel/content/book-dataformat-appendix.html
==============================================================================
--- websites/production/camel/content/book-dataformat-appendix.html (original)
+++ websites/production/camel/content/book-dataformat-appendix.html Thu Nov 29 08:26:57 2018
@@ -95,13 +95,13 @@
 
 <h1 id="BookDataFormatAppendix-DataFormatAppendix">Data Format Appendix</h1>
 
-<h2 id="BookDataFormatAppendix-DataFormat">Data Format</h2>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-DataFormat">Data Format</h2>
 
 <p>Camel supports a pluggable DataFormat to allow messages to be marshalled to and from binary or text formats to support a kind of <a shape="rect" href="message-translator.html">Message Translator</a>.</p>
 
 <p>The following data formats are currently supported:</p>
 
-<ul><li>Standard JVM object marshalling<ul><li><a shape="rect" href="serialization.html">Serialization</a></li><li><a shape="rect" href="string.html">String</a></li></ul></li></ul><ul><li>Object marshalling<ul><li><a shape="rect" href="avro.html">Avro</a></li><li><a shape="rect" href="boon.html">Boon</a></li><li><a shape="rect" href="hessian.html">Hessian</a></li><li><a shape="rect" href="json.html">JSON</a></li><li><a shape="rect" href="protobuf.html">Protobuf</a></li><li><a shape="rect" href="yaml-data-format.html">YAML</a></li></ul></li></ul><ul><li>Object/XML marshalling<ul><li><a shape="rect" href="castor.html">Castor</a></li><li><a shape="rect" href="jaxb.html">JAXB</a></li><li><a shape="rect" href="xmlbeans.html">XmlBeans</a></li><li><a shape="rect" href="xstream.html">XStream</a></li><li><a shape="rect" href="jibx.html">JiBX</a></li><li><a shape="rect" href="jackson-xml.html">Jackson XML</a></li></ul></li></ul><ul><li>Object/XML/Webservice marshalling<ul><li><a shape="rect" 
 href="soap.html">SOAP</a></li></ul></li></ul><ul><li>Direct JSON / XML marshalling<ul><li><a shape="rect" href="xmljson.html">XmlJson</a></li></ul></li></ul><ul><li>Flat data structure marshalling<ul><li><a shape="rect" href="beanio.html">BeanIO</a></li><li><a shape="rect" href="bindy.html">Bindy</a></li><li><a shape="rect" href="csv.html">CSV</a></li><li><a shape="rect" href="edi.html">EDI</a></li><li><a shape="rect" href="flatpack-dataformat.html">Flatpack DataFormat</a></li><li><a shape="rect" href="univocity-parsers-formats.html">uniVocity-parsers formats</a></li></ul></li></ul><ul><li>Domain specific marshalling<ul><li><a shape="rect" href="hl7-dataformat.html">HL7 DataFormat</a></li></ul></li></ul><ul><li>Compression<ul><li><a shape="rect" href="gzip-data-format.html">GZip data format</a></li><li><a shape="rect" href="zip-dataformat.html">Zip DataFormat</a></li><li><a shape="rect" href="zip-file-dataformat.html">Zip File DataFormat</a></li><li><a shape="rect" href="lzf-data-fo
 rmat.html">LZF Data Format</a></li><li><a shape="rect" href="tar-dataformat.html">Tar DataFormat</a></li></ul></li></ul><ul><li>Security<ul><li><a shape="rect" href="crypto.html">Crypto</a></li><li><a shape="rect" href="crypto.html">PGP</a></li><li><a shape="rect" href="xmlsecurity-dataformat.html">XMLSecurity DataFormat</a></li></ul></li></ul><ul><li>Misc.<ul><li><a shape="rect" href="base64.html">Base64</a></li><li><a shape="rect" href="custom-dataformat.html">Custom DataFormat</a> - to use your own custom implementation</li><li><a shape="rect" href="mime-multipart.html">MIME-Multipart</a></li><li><a shape="rect" href="rss.html">RSS</a></li><li><a shape="rect" href="tidymarkup.html">TidyMarkup</a></li><li><a shape="rect" href="syslog.html">Syslog</a></li><li><a shape="rect" href="ical.html">ICal</a></li><li><a shape="rect" href="barcode-data-format.html">Barcode </a>- to read and generate barcodes (QR-Code, PDF417, ...)</li></ul></li></ul>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><ul><li>Standard JVM object marshalling<ul><li><a shape="rect" href="serialization.html">Serialization</a></li><li><a shape="rect" href="string.html">String</a></li></ul></li></ul><ul><li>Object marshalling<ul><li><a shape="rect" href="avro.html">Avro</a></li><li><a shape="rect" href="boon.html">Boon</a></li><li><a shape="rect" href="hessian.html">Hessian</a></li><li><a shape="rect" href="json.html">JSON</a></li><li><a shape="rect" href="protobuf.html">Protobuf</a></li><li><a shape="rect" href="yaml-data-format.html">YAML</a></li></ul></li></ul><ul><li>Object/XML marshalling<ul><li><a shape="rect" href="castor.html">Castor</a></li><li><a shape="rect" href="jaxb.html">JAXB</a></li><li><a shape="rect" href="xmlbeans.html">XmlBeans</a></li><li><a shape="rect" href="xstream.html">XStream</a></li><li><a shape="rect" href="jibx.html">JiBX</a></li><li><a shape="rect" href="jackson-xml.html">Jackson XML</a><
 /li></ul></li></ul><ul><li>Object/XML/Webservice marshalling<ul><li><a shape="rect" href="soap.html">SOAP</a></li></ul></li></ul><ul><li>Direct JSON / XML marshalling<ul><li><a shape="rect" href="xmljson.html">XmlJson</a></li></ul></li></ul><ul><li>Flat data structure marshalling<ul><li><a shape="rect" href="beanio.html">BeanIO</a></li><li><a shape="rect" href="bindy.html">Bindy</a></li><li><a shape="rect" href="csv.html">CSV</a></li><li><a shape="rect" href="edi.html">EDI</a></li><li><a shape="rect" href="flatpack-dataformat.html">Flatpack DataFormat</a></li><li><a shape="rect" href="univocity-parsers-formats.html">uniVocity-parsers formats</a></li></ul></li></ul><ul><li>Domain specific marshalling<ul><li><a shape="rect" href="hl7-dataformat.html">HL7 DataFormat</a></li></ul></li></ul><ul><li>Compression<ul><li><a shape="rect" href="gzip-data-format.html">GZip data format</a></li><li><a shape="rect" href="zip-dataformat.html">Zip DataFormat</a></li><li><a shape="rect" href="zip-fil
 e-dataformat.html">Zip File DataFormat</a></li><li><a shape="rect" href="lzf-data-format.html">LZF Data Format</a></li><li><a shape="rect" href="tar-dataformat.html">Tar DataFormat</a></li></ul></li></ul><ul><li>Security<ul><li><a shape="rect" href="crypto.html">Crypto</a></li><li><a shape="rect" href="crypto.html">PGP</a></li><li><a shape="rect" href="xmlsecurity-dataformat.html">XMLSecurity DataFormat</a></li></ul></li></ul><ul><li>Misc.<ul><li><a shape="rect" href="base64.html">Base64</a></li><li><a shape="rect" href="custom-dataformat.html">Custom DataFormat</a> - to use your own custom implementation</li><li><a shape="rect" href="mime-multipart.html">MIME-Multipart</a></li><li><a shape="rect" href="rss.html">RSS</a></li><li><a shape="rect" href="tidymarkup.html">TidyMarkup</a></li><li><a shape="rect" href="syslog.html">Syslog</a></li><li><a shape="rect" href="ical.html">ICal</a></li><li><a shape="rect" href="barcode-data-format.html">Barcode </a>- to read and generate barcodes 
 (QR-Code, PDF417, ...)</li></ul></li></ul></div>
 
 <p>And related is the following:</p>
 <ul class="alternate"><li><a shape="rect" href="dataformat-component.html">DataFormat Component</a> for working with <a shape="rect" href="data-format.html">Data Format</a>s as if it was a regular <a shape="rect" href="component.html">Component</a> supporting <a shape="rect" href="endpoint.html">Endpoint</a>s and <a shape="rect" href="uris.html">URIs</a>.</li><li><a shape="rect" href="dozer-type-conversion.html">Dozer Type Conversion</a> using Dozer for type converting POJOs</li></ul>
@@ -184,9 +184,9 @@ Error rendering macro 'code': Invalid va
   &lt;property name="contextPath" value="org.apache.camel.example"/&gt;
 &lt;/bean&gt;  
 </pre>
-</div></div>
+</div></div></div>
 
-<h2 id="BookDataFormatAppendix-Serialization">Serialization</h2>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-Serialization">Serialization</h2>
 
 <p>Serialization is a <a shape="rect" href="data-format.html">Data Format</a> which uses the standard Java Serialization mechanism to unmarshal a binary payload into Java objects or to marshal Java objects into a binary blob.<br clear="none">
  For example the following uses Java serialization to unmarshal a binary file then send it as an ObjectMessage to <a shape="rect" href="activemq.html">ActiveMQ</a></p>
@@ -201,8 +201,8 @@ from("file://foo/bar").
 
 <h3 id="BookDataFormatAppendix-Dependencies">Dependencies</h3>
 
-<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p>
-<h2 id="BookDataFormatAppendix-JAXB">JAXB</h2><p>JAXB is a <a shape="rect" href="data-format.html">Data Format</a> which uses the JAXB2 XML marshalling standard which is included in Java 6 to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p><h3 id="BookDataFormatAppendix-UsingtheJavaDSL">Using the Java DSL</h3><p>For example the following uses a named DataFormat of <em>jaxb</em> which is configured with a number of Java package names to initialize the <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html" rel="nofollow">JAXBContext</a>.</p><plain-text-body>DataFormat jaxb = new JaxbDataFormat("com.acme.model");
+<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-JAXB">JAXB</h2><p>JAXB is a <a shape="rect" href="data-format.html">Data Format</a> which uses the JAXB2 XML marshalling standard which is included in Java 6 to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p><h3 id="BookDataFormatAppendix-UsingtheJavaDSL">Using the Java DSL</h3><p>For example the following uses a named DataFormat of <em>jaxb</em> which is configured with a number of Java package names to initialize the <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html" rel="nofollow">JAXBContext</a>.</p><plain-text-body>DataFormat jaxb = new JaxbDataFormat("com.acme.model");
 
 from("activemq:My.Queue").
   unmarshal(jaxb).
@@ -240,8 +240,8 @@ jaxbDataFormat.setSchemaLocation("schema
   &lt;artifactId&gt;camel-jaxb&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
-</plain-text-body>
-<h2 id="BookDataFormatAppendix-XmlBeans">XmlBeans</h2>
+</plain-text-body></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-XmlBeans">XmlBeans</h2>
 
 <p>XmlBeans is a <a shape="rect" href="data-format.html">Data Format</a> which uses the <a shape="rect" class="external-link" href="http://xmlbeans.apache.org/">XmlBeans library</a> to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p>
 
@@ -268,8 +268,8 @@ from("activemq:My.Queue").
   &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookDataFormatAppendix-XStream">XStream</h2><p>XStream is a <a shape="rect" href="data-format.html">Data Format</a> which uses the <a shape="rect" class="external-link" href="http://xstream.codehaus.org/" rel="nofollow">XStream library</a> to marshal and unmarshal Java objects to and from XML.</p><p>To use XStream in your camel routes you need to add the a dependency on&#160;<strong>camel-xstream</strong>&#160;which implements this data format.</p><p>Maven users will need to add the following dependency to their <code>pom.xml</code>&#160;for this component:</p><parameter ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-XStream">XStream</h2><p>XStream is a <a shape="rect" href="data-format.html">Data Format</a> which uses the <a shape="rect" class="external-link" href="http://xstream.codehaus.org/" rel="nofollow">XStream library</a> to marshal and unmarshal Java objects to and from XML.</p><p>To use XStream in your camel routes you need to add the a dependency on&#160;<strong>camel-xstream</strong>&#160;which implements this data format.</p><p>Maven users will need to add the following dependency to their <code>pom.xml</code>&#160;for this component:</p><parameter ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-xstream&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
@@ -297,8 +297,8 @@ from("direct:marshal").
         ...
 
 
-</plain-text-body>
-<h2 id="BookDataFormatAppendix-CSV">CSV</h2><p>The CSV <a shape="rect" href="data-format.html">Data Format</a> uses <a shape="rect" class="external-link" href="http://commons.apache.org/proper/commons-csv/">Apache Commons CSV</a> to handle CSV payloads (Comma Separated Values) such as those exported/imported by Excel.</p><p>As of Camel 2.15.0, it now uses the&#160;<a shape="rect" class="external-link" href="http://commons.apache.org/proper/commons-csv/archives/1.1/index.html">Apache Commons CSV 1.1</a> which is based on a completely different set of options.</p><h3 id="BookDataFormatAppendix-AvailableoptionsuntilCamel2.15">Available options until Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"
 ><p>config</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVConfig</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVConfig</code> object.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; the default is <code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated in the resulting CSV. The default value is <code>true</code>; subsequent messages use the previously created columns with new fields being added at the end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" class="
 confluenceTd"><p>delimiter</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The column delimiter to use; the default value is "<code>,</code>".</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>skipFirstLine</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether or not to skip the first line of CSV input when unmarshalling (e.g. if the content has headers on the first line); the default value is <code>false</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">lazyLoad</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.12.2:</strong><span><span>&#160;Whether or not to </span></span><span style="line-height: 1.4285715;">Sequential access CSV input through 
 an iterator which could avoid OOM exception when processing huge CSV file; </span><span>the default value is false </span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">useMaps</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13:</strong> Whether to use List&lt;Map&gt; when unmarshalling instead of List&lt;List&gt;.</td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-AvailableoptionsasofCamel2.15">Available options as of Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh">Option</th><th colspan="1" rowspan="1" class="confluenceTh">Type</th><th colspan="1" rowspan="1" class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>format</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>CSVFormat</code></td><td colspan="1" rowspan="1" class="confluen
 ceTd">The reference format to use, it will be updated with the other format options, the default value is <code>CSVFormat.DEFAULT</code></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>commentMarkerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the comment marker of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>commentMarker</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the comment marker of the reference format.</p><p>This option is <code>null</code> by default. When <code>null</code> it keeps the value of the reference format which is <code>null</code> for <code>CSVFormat.DEFAULT</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><co
 de>delimiter</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the delimiter of the reference format.</p><p>This option is <code>null</code> by defaut. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>','</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escapeDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the escape character of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escape</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the esc
 ape character of the reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>headerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the header of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>header</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String[]</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the header of the reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which 
 is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p><p>In the XML DSL, this option is configured using children&#160;<code>&lt;header&gt;</code>&#160;tags:</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</plain-text-body></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-CSV">CSV</h2><p>The CSV <a shape="rect" href="data-format.html">Data Format</a> uses <a shape="rect" class="external-link" href="http://commons.apache.org/proper/commons-csv/">Apache Commons CSV</a> to handle CSV payloads (Comma Separated Values) such as those exported/imported by Excel.</p><p>As of Camel 2.15.0, it now uses the&#160;<a shape="rect" class="external-link" href="http://commons.apache.org/proper/commons-csv/archives/1.1/index.html">Apache Commons CSV 1.1</a> which is based on a completely different set of options.</p><h3 id="BookDataFormatAppendix-AvailableoptionsuntilCamel2.15">Available options until Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluence
 Th"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>config</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVConfig</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVConfig</code> object.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; the default is <code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated in the resulting CSV. The default value is <code>true</code>; subsequent messages use the previously created columns with new fields bein
 g added at the end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>delimiter</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The column delimiter to use; the default value is "<code>,</code>".</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>skipFirstLine</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether or not to skip the first line of CSV input when unmarshalling (e.g. if the content has headers on the first line); the default value is <code>false</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">lazyLoad</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.12.2:</strong><span><span>&#160;Whether or not to </sp
 an></span><span style="line-height: 1.4285715;">Sequential access CSV input through an iterator which could avoid OOM exception when processing huge CSV file; </span><span>the default value is false </span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">useMaps</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13:</strong> Whether to use List&lt;Map&gt; when unmarshalling instead of List&lt;List&gt;.</td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-AvailableoptionsasofCamel2.15">Available options as of Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh">Option</th><th colspan="1" rowspan="1" class="confluenceTh">Type</th><th colspan="1" rowspan="1" class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>format</code></td><td colspan="1" rowspan="1" class="
 confluenceTd"><code>CSVFormat</code></td><td colspan="1" rowspan="1" class="confluenceTd">The reference format to use, it will be updated with the other format options, the default value is <code>CSVFormat.DEFAULT</code></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>commentMarkerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the comment marker of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>commentMarker</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the comment marker of the reference format.</p><p>This option is <code>null</code> by default. When <code>null</code> it keeps the value of the reference format which is <code>null</code> for <code>CSVFormat.D
 EFAULT</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>delimiter</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the delimiter of the reference format.</p><p>This option is <code>null</code> by defaut. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>','</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escapeDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the escape character of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escape</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Charac
 ter</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the escape character of the reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>headerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the header of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>header</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String[]</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the header of the reference format.</p><p>This option is <code>null</code> by default. <span>W
 hen </span><code>null</code><span> it keeps the value of the reference format which is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p><p>In the XML DSL, this option is configured using children&#160;<code>&lt;header&gt;</code>&#160;tags:</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Default" data-theme="Default">&lt;csv &gt;
     &lt;header&gt;orderId&lt;/header&gt;
     &lt;header&gt;amount&lt;/header&gt;
@@ -470,8 +470,8 @@ csvConfig.setDelimiter(';');
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-The String <a shape="rect" href="data-format.html">Data Format</a> is a textual based format that supports encoding. 
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include">The String <a shape="rect" href="data-format.html">Data Format</a> is a textual based format that supports encoding. 
 
 <h3 id="BookDataFormatAppendix-Options">Options</h3>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> charset </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> null </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> To use a specific charset for encoding. If not provided Camel will use the JVM default charset. </p></td></tr></tbody></table></div>
@@ -497,8 +497,8 @@ from("jms://queue/order").unmarshal().st
 
 <h3 id="BookDataFormatAppendix-Dependencies.4">Dependencies</h3>
 
-<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p>
-<h3 id="BookDataFormatAppendix-HL7DataFormat">HL7 DataFormat</h3><p>The <a shape="rect" href="hl7.html">HL7</a> component ships with a HL7 data format that can be used to marshal or unmarshal HL7 model objects.</p><ul class="alternate"><li><code>marshal</code> = from Message to byte stream (can be used when responding using the HL7 MLLP codec)</li><li><code>unmarshal</code> = from byte stream to Message (can be used when receiving streamed data from the HL7 MLLP</li></ul><p>To use the data format, simply instantiate an instance and invoke the marshal or unmarshal operation in the route builder:</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="BookDataFormatAppendix-HL7DataFormat">HL7 DataFormat</h3><p>The <a shape="rect" href="hl7.html">HL7</a> component ships with a HL7 data format that can be used to marshal or unmarshal HL7 model objects.</p><ul class="alternate"><li><code>marshal</code> = from Message to byte stream (can be used when responding using the HL7 MLLP codec)</li><li><code>unmarshal</code> = from byte stream to Message (can be used when receiving streamed data from the HL7 MLLP</li></ul><p>To use the data format, simply instantiate an instance and invoke the marshal or unmarshal operation in the route builder:</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">  DataFormat hl7 = new HL7DataFormat();
   ...
   from("direct:hl7in").marshal(hl7).to("jms:queue:hl7out");
@@ -512,11 +512,11 @@ from("jms://queue/order").unmarshal().st
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">  from("direct:hl7in").marshal().hl7().to("jms:queue:hl7out");
   from("jms:queue:hl7out").unmarshal().hl7().to("patientLookupService");
 </pre>
-</div></div><p>&#160;</p><p>&#160;</p>
-<h2 id="BookDataFormatAppendix-EDIDataFormat">EDI DataFormat</h2>
+</div></div><p>&#160;</p><p>&#160;</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-EDIDataFormat">EDI DataFormat</h2>
 
-<p>We encourage end users to look at the <a shape="rect" class="external-link" href="http://milyn.codehaus.org/Home" rel="nofollow">Smooks</a> which supports EDI and Camel natively.</p>
-<h2 id="BookDataFormatAppendix-FlatpackDataFormat">Flatpack DataFormat</h2>
+<p>We encourage end users to look at the <a shape="rect" class="external-link" href="http://milyn.codehaus.org/Home" rel="nofollow">Smooks</a> which supports EDI and Camel natively.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-FlatpackDataFormat">Flatpack DataFormat</h2>
 <p>The <a shape="rect" href="flatpack.html">Flatpack</a> component ships with the Flatpack data format that can be used to format between fixed width or delimited text messages to a <code>List</code> of rows as <code>Map</code>. </p>
 <ul class="alternate"><li>marshal = from <code>List&lt;Map&lt;String, Object&gt;&gt;</code> to <code>OutputStream</code> (can be converted to <code>String</code>)</li><li>unmarshal = from <code>java.io.InputStream</code> (such as a <code>File</code> or <code>String</code>) to a <code>java.util.List</code> as an <code>org.apache.camel.component.flatpack.DataSetList</code> instance.<br clear="none">
 The result of the operation will contain all the data. If you need to process each row one by one you can split the exchange, using <a shape="rect" href="splitter.html">Splitter</a>.</li></ul>
@@ -567,8 +567,8 @@ from("seda:people").marshal(df).convertB
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookDataFormatAppendix-JSON">JSON</h2><p>JSON is a <a shape="rect" href="data-format.html">Data Format</a> to marshal and unmarshal Java objects to and from <a shape="rect" class="external-link" href="http://www.json.org/" rel="nofollow">JSON</a>.</p><p>For JSON to object marshalling, Camel provides integration with three popular JSON libraries:</p><ul class="alternate"><li>The <a shape="rect" class="external-link" href="http://xstream.codehaus.org/" rel="nofollow">XStream library</a> and <a shape="rect" class="external-link" href="http://jettison.codehaus.org/" rel="nofollow">Jettsion </a></li><li>The <a shape="rect" class="external-link" href="https://github.com/FasterXML/jackson" rel="nofollow">Jackson library</a></li><li><strong>Camel 2.10:</strong> The <a shape="rect" class="external-link" href="http://code.google.com/p/google-gson/" rel="nofollow">GSon library</a></li></ul><p>Every library requires adding the special camel component (see "Dependency..." paragraphs furt
 her down). By default Camel uses the XStream library.</p><parameter ac:name="title">Direct, bi-directional JSON &lt;=&gt; XML conversions</parameter><rich-text-body><p>As of Camel 2.10, Camel supports direct, bi-directional JSON &lt;=&gt; XML conversions via the <a shape="rect" href="xmljson.html">camel-xmljson</a> data format, which is documented separately.</p></rich-text-body><h3 id="BookDataFormatAppendix-UsingJSONDataFormatWiththeXStreamLibrary">Using JSON Data Format With the&#160;<code>XStream</code> Library</h3><parameter ac:name="language">java</parameter><plain-text-body>// Let's turn Object messages into JSON then send to MQSeries
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-JSON">JSON</h2><p>JSON is a <a shape="rect" href="data-format.html">Data Format</a> to marshal and unmarshal Java objects to and from <a shape="rect" class="external-link" href="http://www.json.org/" rel="nofollow">JSON</a>.</p><p>For JSON to object marshalling, Camel provides integration with three popular JSON libraries:</p><ul class="alternate"><li>The <a shape="rect" class="external-link" href="http://xstream.codehaus.org/" rel="nofollow">XStream library</a> and <a shape="rect" class="external-link" href="http://jettison.codehaus.org/" rel="nofollow">Jettsion </a></li><li>The <a shape="rect" class="external-link" href="https://github.com/FasterXML/jackson" rel="nofollow">Jackson library</a></li><li><strong>Camel 2.10:</strong> The <a shape="rect" class="external-link" href="http://code.google.com/p/google-gson/" rel="nofollow">GSon library</a></li></ul><p>Every libr
 ary requires adding the special camel component (see "Dependency..." paragraphs further down). By default Camel uses the XStream library.</p><parameter ac:name="title">Direct, bi-directional JSON &lt;=&gt; XML conversions</parameter><rich-text-body><p>As of Camel 2.10, Camel supports direct, bi-directional JSON &lt;=&gt; XML conversions via the <a shape="rect" href="xmljson.html">camel-xmljson</a> data format, which is documented separately.</p></rich-text-body><h3 id="BookDataFormatAppendix-UsingJSONDataFormatWiththeXStreamLibrary">Using JSON Data Format With the&#160;<code>XStream</code> Library</h3><parameter ac:name="language">java</parameter><plain-text-body>// Let's turn Object messages into JSON then send to MQSeries
 from("activemq:My.Queue")
   .marshal().json()
   .to("mqseries:Another.Queue");
@@ -725,8 +725,8 @@ getContext().getProperties().put("CamelJ
   &lt;artifactId&gt;camel-gson&lt;/artifactId&gt;
   &lt;version&gt;2.10.0&lt;/version&gt;
 &lt;/dependency&gt;
-</plain-text-body>
-The Zip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. Messages marshalled using Zip compression can be unmarshalled using Zip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads. It facilitates more optimal use of network bandwidth while incurring a small cost in order to compress and decompress payloads at the endpoint.<div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">About using with Files</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>The Zip data format, does not (yet) have special support for files. Which means that when using big files, the entire file content is loaded into memory.<br clear="none
 "> This is subject to change in the future, to allow a streaming based solution to have a low memory footprint.</p></div></div><h3 id="BookDataFormatAppendix-Options.2">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>compressionLevel</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To specify a specific compression Level use <code>java.util.zip.Deflater</code> settings. The possible settings are&#160; <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - <code>Deflater.BEST_SPEED</code> <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#
 160;&#160;&#160; - <code>Deflater.BEST_COMPRESSION</code> <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - <code>Deflater.DEFAULT_COMPRESSION</code> <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> If compressionLevel is not explicitly specified the compressionLevel employed is <code>Deflater.DEFAULT_COMPRESSION</code></p></td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-Marshal.1">Marshal</h3><p>In this example we marshal a regular text/XML payload to a compressed payload employing zip compression <code>Deflater.BEST_COMPRESSION</code> and send it an ActiveMQ queue called MY_QUEUE.</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</plain-text-body></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include">The Zip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. Messages marshalled using Zip compression can be unmarshalled using Zip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads. It facilitates more optimal use of network bandwidth while incurring a small cost in order to compress and decompress payloads at the endpoint.<div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">About using with Files</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>The Zip data format, does not (yet) have special support for files. Which means that
  when using big files, the entire file content is loaded into memory.<br clear="none"> This is subject to change in the future, to allow a streaming based solution to have a low memory footprint.</p></div></div><h3 id="BookDataFormatAppendix-Options.2">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>compressionLevel</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To specify a specific compression Level use <code>java.util.zip.Deflater</code> settings. The possible settings are&#160; <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - <code>Deflater.BEST_SPEED</code>
  <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - <code>Deflater.BEST_COMPRESSION</code> <br clear="none" class="atl-forced-newline"> &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - <code>Deflater.DEFAULT_COMPRESSION</code> <br clear="none" class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> If compressionLevel is not explicitly specified the compressionLevel employed is <code>Deflater.DEFAULT_COMPRESSION</code></p></td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-Marshal.1">Marshal</h3><p>In this example we marshal a regular text/XML payload to a compressed payload employing zip compression <code>Deflater.BEST_COMPRESSION</code> and send it an ActiveMQ queue called MY_QUEUE.</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">from("direct:start").marshal().zip(Deflater.BEST_COMPRESSION).to("activemq:queue:MY_QUEUE");
 </pre>
 </div></div><p>Alternatively if you would like to use the default setting you could send it as</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -735,8 +735,8 @@ The Zip <a shape="rect" href="data-forma
 </div></div><h3 id="BookDataFormatAppendix-Unmarshal.1">Unmarshal</h3><p>In this example we unmarshal&#160;a zipped&#160;payload from an ActiveMQ queue called MY_QUEUE&#160;to its original format,&#160;and forward it for&#160;processing&#160;to the UnZippedMessageProcessor. Note that the compression Level employed during the marshalling should be identical to the one employed during unmarshalling to avoid errors.</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">from("activemq:queue:MY_QUEUE").unmarshal().zip().process(new UnZippedMessageProcessor());&#160;
 </pre>
-</div></div><h3 id="BookDataFormatAppendix-Dependencies.6">Dependencies</h3><p>This data format is provided in <strong>camel-core</strong> so no additional dependencies are needed.</p>
-<h2 id="BookDataFormatAppendix-TidyMarkup">TidyMarkup</h2>
+</div></div><h3 id="BookDataFormatAppendix-Dependencies.6">Dependencies</h3><p>This data format is provided in <strong>camel-core</strong> so no additional dependencies are needed.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-TidyMarkup">TidyMarkup</h2>
 
 <p>TidyMarkup is a <a shape="rect" href="data-format.html">Data Format</a> that uses the <a shape="rect" class="external-link" href="http://www.ccil.org/~cowan/XML/tagsoup/" rel="nofollow">TagSoup</a> to tidy up HTML. It can be used to parse ugly HTML and return it as pretty wellformed HTML.</p>
 
@@ -786,8 +786,8 @@ from("file://site/inbox").unmarshal().ti
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookDataFormatAppendix-Bindy">Bindy</h2><p>The goal of this component is to allow the parsing/binding of non-structured data (or to be more precise non-XML data)<br clear="none"> to/from Java Beans that have binding mappings defined with annotations. Using Bindy, you can bind data from sources such as :</p><ul class="alternate"><li>CSV records,</li><li>Fixed-length records,</li><li>FIX messages,</li><li>or almost any other non-structured data</li></ul><p>to one or many Plain Old Java Object (POJO). Bindy converts the data according to the type of the java property. POJOs can be linked together with one-to-many relationships available in some cases. Moreover, for data type like Date, Double, Float, Integer, Short, Long and BigDecimal, you can provide the pattern to apply during the formatting of the property.</p><p>For the BigDecimal numbers, you can also define the precision and the decimal or grouping separators.</p><div class="table-wrap"><table class="confluenceTable"><tb
 ody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Format Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Pattern example</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Link</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Date</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>DateFormat</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>"dd-MM-yyyy"</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Decimal*</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Decimalformat</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>"##.###.###"</p></td>
 <td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html</a></p></td></tr></tbody></table></div><p>Decimal* = Double, Integer, Float, Short, Long</p><div class="confluence-information-macro confluence-information-macro-note conf-macro output-block" data-hasbody="true" data-macro-name="note"><p class="title">Format supported</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>This first release only support comma separated values fields and key value pair fields (e.g. : FIX messages).</p></div></div><p>To work with camel-bindy, you must first define your model in a package (e.g. com.acme.model) and for each model class (e.g. Order, Client, Instrument, ...) add the required annotations (describe
 d hereafter) to the Class or field.</p><div class="confluence-information-macro confluence-information-macro-note conf-macro output-block" data-hasbody="true" data-macro-name="note"><p class="title">Multiple models</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>If you use multiple models, each model has to be placed in it's own package to prevent unpredictable results.</p><p>From <strong>Camel 2.16</strong> onwards this is no longer the case, as you can safely have multiple models in the same package, as you configure bindy using class names instead of package names now.</p></div></div><h2 id="BookDataFormatAppendix-Annotations">Annotations</h2><p>The annotations created allow to map different concept of your model to the POJO like :</p><ul class="alternate"><li>Type of record (csv, key value pair (e.g. FIX message), fixed length ...),</li><li>Link (to link object in another ob
 ject),</li><li>DataField and their properties (int, type, ...),</li><li>KeyValuePairField (for key = value format like we have in FIX financial messages),</li><li>Section (to identify header, body and footer section),</li><li>OneToMany</li></ul><p>This section will describe them :</p><h3 id="BookDataFormatAppendix-1.CsvRecord">1. CsvRecord</h3><p>The CsvRecord annotation is used to identified the root class of the model. It represents a record = a line of a CSV file and can be linked to several children model classes.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Annotation name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Record type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Level</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>CsvRecord</strong></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>csv</p></td><td colspan="1" rowspan="1" cl
 ass="confluenceTd"><p>Class</p></td></tr></tbody></table></div><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Info</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>separator</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>string</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>mandatory - can be ',' or ';' or 'anything'. This value is interpreted as a regular expression. If you want to use a sign which has a special meaning in regular expressions, e.g. the '|' sign, than you have to mask it, like ' <br clear="none" class="atl-forced-newline"> |'</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>skipFirstLine</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" clas
 s="confluenceTd"><p>optional - default value = false - allow to skip the first line of the CSV file</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>crlf</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>string</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - possible values = WINDOWS,UNIX,MAC, or custom; default value = WINDOWS - allow to define the carriage return character to use. If you specify a value other than the three listed before, the value you enter (custom) will be used as the CRLF character(s)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>generateHeaderColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - default value = false - uses to generate the header columns of the CSV generates</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>autospanLine</p></td><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13/2.12.2:</strong> optional - default value = false - if enabled then the last column is auto spanned to end of line, for example if its a comment, etc this allows the line to contain all characters, also the delimiter char.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>isOrdered</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - default value = false - allow to change the order of the fields when CSV is generated</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>quote</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8.3/2.9:</strong> option - allow to specify a quote character of the fields when CSV is generated</p></td></tr><tr><td colspan="1" rowspan="1" c
 lass="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This annotation is associated to the root class of the model and must be declared one time.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">quoting</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.11:</strong>optional - default value = false -&#160;Indicate if the values must be quoted when marshaling when CSV is generated.</td></tr></tbody></table></div><p><strong>case 1 : separator = ','</strong></p><p>The separator used to segregate the fields in the CSV record is ',' :</p><p>10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-Bindy">Bindy</h2><p>The goal of this component is to allow the parsing/binding of non-structured data (or to be more precise non-XML data)<br clear="none"> to/from Java Beans that have binding mappings defined with annotations. Using Bindy, you can bind data from sources such as :</p><ul class="alternate"><li>CSV records,</li><li>Fixed-length records,</li><li>FIX messages,</li><li>or almost any other non-structured data</li></ul><p>to one or many Plain Old Java Object (POJO). Bindy converts the data according to the type of the java property. POJOs can be linked together with one-to-many relationships available in some cases. Moreover, for data type like Date, Double, Float, Integer, Short, Long and BigDecimal, you can provide the pattern to apply during the formatting of the property.</p><p>For the BigDecimal numbers, you can also define the precision and the decimal o
 r grouping separators.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Format Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Pattern example</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Link</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Date</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>DateFormat</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>"dd-MM-yyyy"</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Decimal*</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Decimalform
 at</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>"##.###.###"</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html</a></p></td></tr></tbody></table></div><p>Decimal* = Double, Integer, Float, Short, Long</p><div class="confluence-information-macro confluence-information-macro-note conf-macro output-block" data-hasbody="true" data-macro-name="note"><p class="title">Format supported</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>This first release only support comma separated values fields and key value pair fields (e.g. : FIX messages).</p></div></div><p>To work with camel-bindy, you must first define your model in a package (e.g. com.acme.model) and for each mode
 l class (e.g. Order, Client, Instrument, ...) add the required annotations (described hereafter) to the Class or field.</p><div class="confluence-information-macro confluence-information-macro-note conf-macro output-block" data-hasbody="true" data-macro-name="note"><p class="title">Multiple models</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>If you use multiple models, each model has to be placed in it's own package to prevent unpredictable results.</p><p>From <strong>Camel 2.16</strong> onwards this is no longer the case, as you can safely have multiple models in the same package, as you configure bindy using class names instead of package names now.</p></div></div><h2 id="BookDataFormatAppendix-Annotations">Annotations</h2><p>The annotations created allow to map different concept of your model to the POJO like :</p><ul class="alternate"><li>Type of record (csv, key value pa
 ir (e.g. FIX message), fixed length ...),</li><li>Link (to link object in another object),</li><li>DataField and their properties (int, type, ...),</li><li>KeyValuePairField (for key = value format like we have in FIX financial messages),</li><li>Section (to identify header, body and footer section),</li><li>OneToMany</li></ul><p>This section will describe them :</p><h3 id="BookDataFormatAppendix-1.CsvRecord">1. CsvRecord</h3><p>The CsvRecord annotation is used to identified the root class of the model. It represents a record = a line of a CSV file and can be linked to several children model classes.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Annotation name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Record type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Level</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>CsvRecord</strong></p></td><td colspa
 n="1" rowspan="1" class="confluenceTd"><p>csv</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Class</p></td></tr></tbody></table></div><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Info</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>separator</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>string</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>mandatory - can be ',' or ';' or 'anything'. This value is interpreted as a regular expression. If you want to use a sign which has a special meaning in regular expressions, e.g. the '|' sign, than you have to mask it, like ' <br clear="none" class="atl-forced-newline"> |'</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>skipFirstLine</p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - default value = false - allow to skip the first line of the CSV file</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>crlf</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>string</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - possible values = WINDOWS,UNIX,MAC, or custom; default value = WINDOWS - allow to define the carriage return character to use. If you specify a value other than the three listed before, the value you enter (custom) will be used as the CRLF character(s)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>generateHeaderColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - default value = false - uses to generate the header columns of the CSV generates</p></td></tr><tr><td colspan="1" rows
 pan="1" class="confluenceTd"><p>autospanLine</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13/2.12.2:</strong> optional - default value = false - if enabled then the last column is auto spanned to end of line, for example if its a comment, etc this allows the line to contain all characters, also the delimiter char.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>isOrdered</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>optional - default value = false - allow to change the order of the fields when CSV is generated</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>quote</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8.3/2.9:</strong> option - allow to specify a quote characte
 r of the fields when CSV is generated</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This annotation is associated to the root class of the model and must be declared one time.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">quoting</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.11:</strong>optional - default value = false -&#160;Indicate if the values must be quoted when marshaling when CSV is generated.</td></tr></tbody></table></div><p><strong>case 1 : separator = ','</strong></p><p>The separator used to segregate the fields in the CSV record is ',' :</p><p>10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009</p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" s
 tyle="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">@CsvRecord( separator = "," )
 public Class Order {
 ...
@@ -1579,8 +1579,8 @@ bindy.setLocale(Locale.getDefault().getI
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookDataFormatAppendix-XMLSecurityDataFormat">XMLSecurity Data Format</h2><p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p><p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p><p><strong>Available as of Camel 2.9</strong><br clear="none"> The XMLSecurity Data Format supports asymmetric key encryption. In this encryption
  model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p><p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even if the prefix values in the XPath query and the target xml document are not equivale
 nt strings.</p><h3 id="BookDataFormatAppendix-BasicOptions">Basic Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTag</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTagContents</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A boolean value to specify whether the XML 
 Element is to be encrypted or the contents of the XML Element</p><ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>passPhrase</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xmlCipherAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>TRIPLEDES</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
 cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:</p><ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li><li>XMLCipher.SEED_128 <strong>Camel 2.15</strong></li><li>XMLCipher.CAMELLIA_128, XMLCipher.CAMELLIA_192, XMLCipher.CAMELLIA_256 <strong>Camel 2.15</strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>namespaces</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A map of namespace values indexed by prefix. The index values must match the prefixes used in the <code>secureTag</
 code> XPath query.</p></td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3><p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>recipientKeyAlias</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyCiphe
 rAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the asymmetric key. The available choices are:</p><ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyOrTrustStoreParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyPassword</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.2 / 2.11:</strong> The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>digestAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>XMLCipher.SHA1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The digest algorithm to use with the RSA OAEP algorithm. The available choices are:</p><ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mgfAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>EncryptionConstants.MGF1_SHA1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The MGF Algorithm to use with the RSA OAEP algori
 thm. The available choices are:</p><ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">addKeyValueForEncryptedKey</td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14.1 </strong>Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.</td></tr></tbody></table></div><h4 id="BookDataFormatAppendix-KeyCipherAlgorithm">Key Cipher Algorithm</h4><p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unless it has been explicitly configured as the key cipher algorithm.</p><h3 id="BookDat
 aFormatAppendix-Marshal.2">Marshal</h3><p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Unmarshal.2">Unmarshal</h3><p>In order to decrypt the payload, the <code>unmarshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Examples">Examples</h3><p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p><h4 id="BookDataFormatAppendix-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-XMLSecurityDataFormat">XMLSecurity Data Format</h2><p>The XMLSecurity Data Format facilitates encryption and decryption of XML payloads at the Document, Element, and Element Content levels (including simultaneous multi-node encryption/decryption using XPath). To sign messages using the XML Signature specification, please see the Camel XML Security <a shape="rect" href="xml-security-component.html">component</a>.</p><p>The encryption capability is based on formats supported using the Apache XML Security (Santuario) project. Symmetric encryption/decryption is currently supported using Triple-DES and AES (128, 192, and 256) encryption formats. Additional formats can be easily added later as needed. This capability allows Camel users to encrypt/decrypt payloads while being dispatched or received along a route.</p><p><strong>Available as of Camel 2.9</strong><br clear="none"
 > The XMLSecurity Data Format supports asymmetric key encryption. In this encryption model a symmetric key is generated and used to perform XML content encryption or decryption. This "content encryption key" is then itself encrypted using an asymmetric encryption algorithm that leverages the recipient's public key as the "key encryption key". Use of an asymmetric key encryption algorithm ensures that only the holder of the recipient's private key can access the generated symmetric encryption key. Thus, only the private key holder can decode the message. The XMLSecurity Data Format handles all of the logic required to encrypt and decrypt the message content and encryption key(s) using asymmetric key encryption.</p><p>The XMLSecurity Data Format also has improved support for namespaces when processing the XPath queries that select content for encryption. A namespace definition mapping can be included as part of the data format configuration. This enables true namespace matching, even 
 if the prefix values in the XPath query and the target xml document are not equivalent strings.</p><h3 id="BookDataFormatAppendix-BasicOptions">Basic Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTag</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is encrypted/decrypted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>secureTagContents</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan
 ="1" rowspan="1" class="confluenceTd"><p>A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element</p><ul><li><code>false</code> = Element Level</li><li><code>true</code> = Element Content Level</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>passPhrase</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be provided. If no passPhrase is specified, a default passPhrase is used. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using <code>TRIPLEDES</code> the passPhase can be a <code>"Only another 24 Byte key"</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>xmlCipherAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><co
 de>TRIPLEDES</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the XML message content. The available choices are:</p><ul><li><code>XMLCipher.TRIPLEDES</code></li><li><code>XMLCipher.AES_128</code></li><li><code>XMLCipher.AES_128_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_192</code></li><li><code>XMLCipher.AES_192_GCM</code> <strong>Camel 2.12</strong></li><li><code>XMLCipher.AES_256</code></li><li><code>XMLCipher.AES_256_GCM</code> <strong>Camel 2.12</strong></li><li>XMLCipher.SEED_128 <strong>Camel 2.15</strong></li><li>XMLCipher.CAMELLIA_128, XMLCipher.CAMELLIA_192, XMLCipher.CAMELLIA_256 <strong>Camel 2.15</strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>namespaces</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A map of namespace values index
 ed by prefix. The index values must match the prefixes used in the <code>secureTag</code> XPath query.</p></td></tr></tbody></table></div><h3 id="BookDataFormatAppendix-AsymmetricEncryptionOptions">Asymmetric Encryption Options</h3><p>These options can be applied in addition to relevant the Basic options to use asymmetric key encryption.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>recipientKeyAlias</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.
 </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyCipherAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> <code>XMLCipher.RSA_OAEP</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cipher algorithm to be used for encryption/decryption of the asymmetric key. The available choices are:</p><ul><li><code>XMLCipher.RSA_v1dot5</code></li><li><code>XMLCipher.RSA_OAEP</code></li><li><code>XMLCipher.RSA_OAEP_11</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyOrTrustStoreParameters</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>keyPassword</code></
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.2 / 2.11:</strong> The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>digestAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>XMLCipher.SHA1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12</strong> The digest algorithm to use with the RSA OAEP algorithm. The available choices are:</p><ul><li><code>XMLCipher.SHA1</code></li><li><code>XMLCipher.SHA256</code></li><li><code>XMLCipher.SHA512</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mgfAlgorithm</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>EncryptionConstants.MGF1_SHA1</p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p><strong>Camel 2.12</strong> The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are:</p><ul><li><code>EncryptionConstants.MGF1_SHA1</code></li><li><code>EncryptionConstants.MGF1_SHA256</code></li><li><code>EncryptionConstants.MGF1_SHA512</code></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">addKeyValueForEncryptedKey</td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14.1 </strong>Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.</td></tr></tbody></table></div><h4 id="BookDataFormatAppendix-KeyCipherAlgorithm">Key Cipher Algorithm</h4><p>As of Camel 2.12.0, the default Key Cipher Algorithm is now XMLCipher.RSA_OAEP instead of XMLCipher.RSA_v1dot5. Usage of XMLCipher.RSA_v1dot5 is discouraged due to various attacks. Requests that use RSA v1.5 as the key cipher algorithm will be rejected unle
 ss it has been explicitly configured as the key cipher algorithm.</p><h3 id="BookDataFormatAppendix-Marshal.2">Marshal</h3><p>In order to encrypt the payload, the <code>marshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Unmarshal.2">Unmarshal</h3><p>In order to decrypt the payload, the <code>unmarshal</code> processor needs to be applied on the route followed by the <strong><code>secureXML()</code></strong> tag.</p><h3 id="BookDataFormatAppendix-Examples">Examples</h3><p>Given below are several examples of how marshalling could be performed at the Document, Element, and Content levels.</p><h4 id="BookDataFormatAppendix-FullPayloadencryption/decryption">Full Payload encryption/decryption</h4><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">from("direct:start")
     .marshal().secureXML()
     .unmarshal().secureXML()
@@ -1695,8 +1695,8 @@ context.addRoutes(new RouteBuilder() {
             &lt;/unmarshal&gt;
             ...
 </pre>
-</div></div><h3 id="BookDataFormatAppendix-Dependencies.9">Dependencies</h3><p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p>
-The GZip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. It uses the same deflate algorithm that is used in <a shape="rect" href="zip-dataformat.html">Zip DataFormat</a>, although some additional headers are provided. This format is produced by popular <code>gzip</code>/<code>gunzip</code> tool. Messages marshalled using GZip compression can be unmarshalled using GZip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads or when you read messages previously comressed using <code>gzip</code> tool.
+</div></div><h3 id="BookDataFormatAppendix-Dependencies.9">Dependencies</h3><p>This data format is provided within the <strong>camel-xmlsecurity</strong> component.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include">The GZip <a shape="rect" href="data-format.html">Data Format</a> is a message compression and de-compression format. It uses the same deflate algorithm that is used in <a shape="rect" href="zip-dataformat.html">Zip DataFormat</a>, although some additional headers are provided. This format is produced by popular <code>gzip</code>/<code>gunzip</code> tool. Messages marshalled using GZip compression can be unmarshalled using GZip decompression just prior to being consumed at the endpoint. The compression capability is quite useful when you deal with large XML and Text based payloads or when you read messages previously comressed using <code>gzip</code> tool.
 
 <h3 id="BookDataFormatAppendix-Options.3">Options</h3>
 
@@ -1722,8 +1722,8 @@ from("activemq:queue:MY_QUEUE").unmarsha
 
 <h3 id="BookDataFormatAppendix-Dependencies.10">Dependencies</h3>
 
-<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p>
-<h2 id="BookDataFormatAppendix-Castor">Castor</h2>
+<p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-Castor">Castor</h2>
 <p><strong>Available as of Camel 2.1</strong></p>
 
 <p>Castor is a <a shape="rect" href="data-format.html">Data Format</a> which uses the <a shape="rect" class="external-link" href="http://www.castor.org/" rel="nofollow">Castor XML library</a> to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p>
@@ -1849,8 +1849,8 @@ castor.getUnmarshaller();
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h1 id="BookDataFormatAppendix-Protobuf-ProtocolBuffers">Protobuf - Protocol Buffers</h1>
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h1 id="BookDataFormatAppendix-Protobuf-ProtocolBuffers">Protobuf - Protocol Buffers</h1>
 
 <p>"Protocol Buffers - Google's data interchange format"</p>
 
@@ -1970,8 +1970,8 @@ message AddressBook {
   &lt;version&gt;2.2.0&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>
-<h2 id="BookDataFormatAppendix-SOAPDataFormat">SOAP DataFormat</h2>
+</div></div></div>
+<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookDataFormatAppendix-SOAPDataFormat">SOAP DataFormat</h2>
 <p><strong>Available as of Camel 2.3</strong></p>
 
 <p>SOAP is a <a shape="rect" href="data-format.html">Data Format</a> which uses JAXB2 and JAX-WS annotations to marshal and unmarshal SOAP payloads. It provides the basic features of Apache CXF without need for the CXF Stack.</p>
@@ -2165,8 +2165,8 @@ from("jms://queue:customerServiceQueue")
   &lt;version&gt;2.3.0&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div>

[... 29 lines stripped ...]