Description
There have been a number of messages asking for a better control of namespace declarations inserted by XmlBeans when saving documents, than offered by XmlOptions.setSaveSuggestedPrefixes().
One issue is the use of xsi:type: when XmlBeans needs to insert an xsi:type attribute it needs to pick a prefix for the value of xsi:type and at that point the setSaveSuggestedPrefixes() are not available. Once the prefix is part of the attribute value, it can no longer be changed (unless directly by user) so the prefix declaration will end up in the final document, which may be undesireable.
One other thing that was suggested was to pick the default prefix more intelligently, for example use the prefix used in the Schema to declare components in that namespace, but that's trickier to do (you can declare QNames without using prefixes) and also involves changes in the binary format.