package camelinaction;
import org.apache.camel.Body;
import org.apache.camel.language.Bean;
import org.apache.camel.language.NamespacePrefix;
import org.apache.camel.language.XPath;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
/**
* Order service using XML namespace in the XPath expression
*/
public class XmlOrderNamespaceService {
public Document handleIncomingOrder(@Body Document xml,
@XPath(value = "/c:order/@customerId",
namespaces = @NamespacePrefix(
prefix = "c",
uri = "http://camelinaction.com/order")) int customerId,
@Bean(ref = "guid", method = "generate") int orderId) {
Attr attr = xml.createAttribute("orderId");
attr.setValue("" + orderId);
Node node = xml.getElementsByTagName("order").item(0);
node.getAttributes().setNamedItem(attr);
return xml;
}
}