title: Split messages and route them in camel
body: <p>I have a large XML message read from queue, I need to split it in chunks and convert it into objects and then route them to various destinations based on the object. </p>
  
  <p>So I have configured the routeBuilder to </p>
  
  <pre><code>ChoiceDefinition choice = from(routeConfig.getFromEndpoint())
                  .split().method(xmlSplitter, "splitMessage").streaming().process(xmlProcessor).choice();
  for (RouteConfig filter : filters) {
      choice = choice.when(header(REPORT_TYPE_HEADER_NAME).contains(filter.getReportTypeHeaderFilter()))
                      .to(filter.getToEndpoint());
  }
  choice.otherwise().to(routeConfig.getErrorEndpoint());
  </code></pre>
  
  <p>But the routing is not happening at all, All messages are sent to the errorEndpoint. 
  I found the reason to be the splitter deleting the header, as its ahead of the routing. </p>
  
  <p>It seems I cannot use splitting after routing.</p>
  
  <p>What is the solution to solve this problem?</p>