Supprimer le "namespace" se trouvant sur les classes générées par JAXB
Bonjour, voici mon code:
xsdFile:
Code:
1 2 3 4 5 6 7 8
| <complexType name="Player">
<sequence>
<element name="Login" type="string"></element>
<element name="Passwd" type="string"></element>
</sequence>
</complexType>
<element name="Player" type="tns:Player"></element> |
Build.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <exec executable="${javahome}/bin/xjc" >
<arg value="-extension" />
<arg value="-b" />
<arg value="binding.xml" />
<arg value="-d" />
<arg value="${sources}" />
<arg value="-p" />
<arg value="metier" />
<arg value="Player.xsd" />
</exec>
</target> |
binding.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11
| <jxb:bindings
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc" elementFormDefault="qualified" attributeFormDefault="unqualified"
version="2.1">
<jxb:globalBindings>
<xjc:simple />
<xjc:serializable/>
</jxb:globalBindings>
</jxb:bindings> |
Et finalement:
Code:
1 2
| JAXBContext context = JAXBContext.newInstance(Player.class,ObjectFactory.class);
Unmarshaller decodeur = context.createUnmarshaller(); |
J'ai ajouté "xjc:simple" pour avoir @XMLRootElement, Mais une exception est levée:
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.example.org/Player")
Cela est du au XmlRootElement généré: @XmlRootElement(name = "Player", namespace = "http://www.example.org/Player")
Si je supprime le namespace, cela fonctionne parfaitement.
Comment puis-je avoir un XmlRootElement sans ce "namespace" ?
Merci :)