Your XML does not match your XML Schema. If you populate your object model and then marshal it you will see what the XML is supposed to look like.
Marshal Example
MarshalDemo
package ActionMathML;
import javax.xml.bind.*;
public class MarshalDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance("ActionMathML");
ObjectFactory objectFactory = new ObjectFactory();
Utilisateur utilisateur = objectFactory.createUtilisateur();
utilisateur.setCodeTraitement(0);
utilisateur.setNomUtilisateur("nomok");
utilisateur.setPassUtilisateur("passok");
JAXBElement<TraitementDTO> jaxbElement = objectFactory.createCreate(utilisateur);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(jaxbElement, System.out);
}
}
Output
Below is what the XML should look like based on your XML schema.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Create xmlns="http://www.example.org/XsdMath2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Utilisateur">
<CodeTraitement>0</CodeTraitement>
<nomUtilisateur>nomok</nomUtilisateur>
<passUtilisateur>passok</passUtilisateur>
</Create>
Unmarshal Example
input.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Create xmlns="http://www.example.org/XsdMath2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Utilisateur">
<CodeTraitement>0</CodeTraitement>
<nomUtilisateur>nomok</nomUtilisateur>
<passUtilisateur>passok</passUtilisateur>
</Create>
UnmarshalDemo
package ActionMathML;
import java.io.File;
import javax.xml.bind.*;
public class UnmarshalDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance("ActionMathML");
Unmarshaller unmarshaller = context.createUnmarshaller();
File xml = new File("src/ActionMathML/input.xml");
JAXBElement<TraitementDTO> jaxbElement = (JAXBElement<TraitementDTO>) unmarshaller.unmarshal(xml);
TraitementDTO traitementDTO = jaxbElement.getValue();
System.out.println(traitementDTO.getCodeTraitement());
if(traitementDTO instanceof Utilisateur) {
Utilisateur utilisateur = (Utilisateur) traitementDTO;
System.out.println(utilisateur.getNomUtilisateur());
System.out.println(utilisateur.getPassUtilisateur());
}
}
}
Output
0
nomok
passok
For More Information
I have written more about JAXB and inheritance on my blog: