JAXB: javax.xml.bind.UnmarshalException: unexpected element

JAXB: [javax.xml.bind.UnmarshalException: unexpected element (uri:"http://mynamespace/", local:"entity"). Expected elements are ({}entity)]

The following exception broadly means that an element encountered during unmarshallization isn’t found in the JAXB Context.
The details, however point us elsewhere – the element IS in the context, but it exists there without a namespace.
The first thing to do is check whether our @XmlType / @XmlRootElement define a namespace. And they do.
Finally, there is @XmlSchema annotation that defines an attribute called elementFormDefault. In order to put the elements together with their namespaces, this atribute must be set to javax.xml.bind.annotation.XmlNsForm.QUALIFIED. This annotation should be defined in package-info.java

2 thoughts on “JAXB: javax.xml.bind.UnmarshalException: unexpected element”

  1. For me the @XmlRootElement was missing and that caused this very same error.
    Didn’t have to do the package-info.java file

Leave a Reply

Your email address will not be published. Required fields are marked *