Bonjour, voici mon code:
xsdFile:
Build.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
binding.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Et finalement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
J'ai ajouté "xjc:simple" pour avoir @XMLRootElement, Mais une exception est levée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JAXBContext context = JAXBContext.newInstance(Player.class,ObjectFactory.class); Unmarshaller decodeur = context.createUnmarshaller();
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![]()
Partager