When trying to migrate from XmlBeans 3.1.0 to 5.0.3 the following issue caused some unit tests to fail:
The XML data contains elements of type base64binary which have line breaks.
Validation via XmlObject.validate() now returns an error:
"error: base64Binary: Invalid value: not encoded properly".
The error originates from the class org.apache.xmlbeans.impl.values.JavaBase64Holder:
The decode call fails with an IllegalArgumentException "Illegal base64 character 20".
(It's character 20 because XmlBeans converts the line break to a space in XmlWhitespace.collapse().)
The definition of the base64binary type allows for the presence of whitespace
Therefore I'd suggest to change the Base64 call as follows: