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:[email protected]]
Sent: Monday, July 28, 2014 2:28 PM
To: [email protected]
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