public static void main(String[] args) {
        final Cv cvUtilisateur = objectFactory.createCv();
        final IdentiteType identiteTypeUtilisateur = objectFactory.createIdentiteType();
        final AdresseType adresseTypeUtilisateur = objectFactory.createAdresseType();
        final FonctionType fonctionTypeUtilisateur = objectFactory.createFonctionType();
        final CompetenceType competenceTypeTechniqueUtilisateur = objectFactory.createCompetenceType();
        final CompetenceDetailType competenceDetailTypeTechniqueDeveloppementUtilisateur = objectFactory.createCompetenceDetailType();
        final CompetenceDetailType competenceDetailTypeTechniqueServeurAppliUtilisateur = objectFactory.createCompetenceDetailType();
        final CompetenceType competenceTypeFonctionnelleUtilisateur = objectFactory.createCompetenceType();
        final CompetenceDetailType competenceDetailTypeFonctionnelleUtilisateur = objectFactory.createCompetenceDetailType();
        final ExperienceType experienceTypeUtilisateurASP = objectFactory.createExperienceType();
        final ExperienceType experienceTypeUtilisateurCarsat = objectFactory.createExperienceType();

        initAdresseUtilisateur(adresseTypeUtilisateur);

        initIdentiteUtilisateur(identiteTypeUtilisateur, adresseTypeUtilisateur);

        initFonctionUtilisateur(fonctionTypeUtilisateur);

        initCompetenceDetailTechniqueDeveloppementUtilisateur(competenceDetailTypeTechniqueDeveloppementUtilisateur);
        initCompetenceDetailTechniqueServeurAppliUtilisateur(competenceDetailTypeTechniqueServeurAppliUtilisateur);

        initCompetenceDetailFonctionnelleUtilisateur(competenceDetailTypeFonctionnelleUtilisateur);

        competenceTypeTechniqueUtilisateur.getCompetence().add(competenceDetailTypeTechniqueDeveloppementUtilisateur);
        competenceTypeTechniqueUtilisateur.getCompetence().add(competenceDetailTypeTechniqueServeurAppliUtilisateur);

        competenceTypeFonctionnelleUtilisateur.getCompetence().add(competenceDetailTypeFonctionnelleUtilisateur);

        initPremiererExperienceCV(experienceTypeUtilisateurASP);
        initDeuxiemeExperienceCV(experienceTypeUtilisateurCarsat);

        cvUtilisateur.setIdentite(identiteTypeUtilisateur);
        cvUtilisateur.setFonction(fonctionTypeUtilisateur);
        cvUtilisateur.setCompetenceTechnique(competenceTypeTechniqueUtilisateur);
        cvUtilisateur.setCompetenceFonctionnelle(competenceTypeFonctionnelleUtilisateur);
        cvUtilisateur.getExperience().add(experienceTypeUtilisateurCarsat);
        cvUtilisateur.getExperience().add(experienceTypeUtilisateurASP);

        final JAXBContext jaxbContext;
        try {
            jaxbContext = JAXBContext.newInstance(Cv.class);
            final Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

            final FileWriter writer = new FileWriter(CHEMIN_FICHIER_GENERE);
            writer.write("<?xml-stylesheet type=\"text/xsl\" href=\"xsl\\CV.xsl\">");
            writer.write("\n");
            
            final File fileSchema = new File(CHEMIN_SCHEMA);
            final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            final Schema schema = schemaFactory.newSchema(fileSchema); 
            
            jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            jaxbMarshaller.setSchema(schema);
            jaxbMarshaller.marshal(cvUtilisateur, writer);
        } catch (JAXBException e) {
            System.out.println("erreur lors de la génération du fichier XML.");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("erreur sur ke flux de fichier.");
            e.printStackTrace();
        } catch (SAXException e) {
            System.out.println("erreur sur le schema.");
            e.printStackTrace();
        }
    }