JAXB génère des méthodes d'usine qui créent une JAXBElement d'une instance d'objet que si votre XSD contient à la fois une définition complexType et une définition de l'élément distinct à l'aide que complexType AVEC LE MÊME NOM, par exemple:
<complexType name="my-type">
...
</complexType>
<element name="my-type" type="tns:my-type"/>
Dans ce Dans le cas contraire, JAXB n'annoncera pas la classe générée avec une annotation @XmlRootElement, mais fournira les méthodes d'usine dont vous avez besoin pour créer un JAXBElement à partir de l'instance d'objet. De cette façon, vous pouvez sérialiser facilement les instances de types d'éléments non-root en tant qu'éléments racine. Par conséquent, vous devez simplement ajouter une déclaration "element" avec le même nom en plus de toute définition complexType que vous souhaitez utiliser en tant qu'élément de niveau supérieur, et ObjectFactory génèrera les méthodes usine attendues.