Hi You are under the mercy of XPath and what XPathExpression can do. As it returns a NodeList which has Node elements, you may be able to go from Node -> Document (or whatever the parent type is), and then grab any namespaces. You would then need to use the DOM API from the JDK for that.
And do this before you do the <convertBodyTo type="String"/> On Mon, Nov 5, 2012 at 9:44 PM, Henrique Viecili <[email protected]> wrote: > Is there a way to tell the splitter-xpath to copy all parent namespaces to > the splitted element? > > This is what I am trying to do: > > I am trying to split an XML message with XPath, this message has a schema > defining an element containing a sequence of xsi:anySimpleType. Creating > such message gives me something like: > > <alpha:root xmlns:alpha="http://test.com/Alpha" xmlns:beta=" > http://test.com/Beta"> > <alpha:collection> > <alpha:item xsi:type="beta:BetaItem" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > <beta:name>Foo</beta:name> > </alpha:item> > <alpha:item xsi:type="beta:BetaItem" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > <beta:name>Bar</beta:name> > </alpha:item> > </alpha:collection> > </alpha:root> > > > my camel route is: > > <camelContext xmlns:alpha="http://test.com/Alpha" xmlns:beta=" > http://test.com/Beta" > > <route> > <from uri="..."/> > <split> > <xpath>//alpha:item</xpath> > <convertBodyTo type="java.lang.String"/> > <to uri="log:output-missing-beta-namespace"/> > </split> > </route> > </camelContext> > > > feeding this route with the previous XML gives me 2 pieces of invalid XML > messages without the 'beta' namespace defined in the root element: > > <alpha:item xmlns:alpha="http://test.com/Alpha" xsi:type="beta:BetaItem" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <beta:name>Foo</beta:name> > </alpha:item> > > So, Is there a way to tell the splitter-xpath to copy the 'beta' namespace > from 'root' declaration into the splitted 'alpha:item' element? > > > Thanks > *Henrique Viecili* -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: [email protected] Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen
