Camel supports a pluggable data format allowing you to marshall and unmarshall the messages.
For instance, if you receive an XML message from an endpoint, you can:
Unmarshalling allows you to use a data format to convert from a raw format (XML in the previous example) into a Java object. On the other hand, when you send an exchange to an endpoint, you can marshall the transported object into another format. You specify where you want to unmarshall or marshall and the data format to use.
For instance, you can consume an XML message from a JMS queue, unmarshall using JAXB, and send the resulting object ...