The short answer is to use XmlOptions to configure the prefixes used in your XmlBeans output. Something like the following will cause it to use xxx for yyy:aaa:bbb:ccc. XmlBeans output is NOT tied to the prefixes you declare in your schema.
HashMap ns = new HashMap(); ns.put("yyy:aaa:bbb:ccc", "xxx"); // ns.put("http://ccc.bbb.aaa", "orig"); // ns.put("urn:some.other.namespace", "pfxUwnt"); xmlOptions.setSaveSuggestedPrefixes(ns); A longer answer is provided here http://codebrane.com/blog/2005/12/12/xmlbeans-and-namespaces/ From: Michael Bishop [mailto:bisho...@gmail.com] Sent: Monday, July 28, 2014 2:28 PM To: email@example.com Subject: Wrong namespace prefix in generated documents? Hello all. I've recently changed the namespace of my schema. Now I'm getting the wrong prefix name and I'm not sure why. Old namespace was: xmlns:xxx="http://ccc.bbb.aaa" New namespace is: xmlns:xxx="yyy:aaa:bbb:ccc" With the old namespace, the prefix for elements was xxx. Now with the new namespace, the prefix fpr elements is yyy. It seems switching from URL form to URI form has caused the processor to start using the first part of the URI as the prefix? This happens when I call the static Factory.newInstance() on generated classes. Older documents with the correct prefix still parse properly. It's not a big deal since the namespace is intact and things work as they should, but I can't figure out why this is happening. I don't declare xmlns:yyy anywhere in the schema or xsdconfig files. Michael Bishop