Bonjour,

Je dois créé un .jar qui lit un fichier XML pour en créer dynamiquement une(des) (sous)classe(s) Java, plus ou moins automatiquement. Par exemple, le XML suivant :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Metadatas xmlns="urn:metadata.01.00">
    <Metadata>
        <DateDepot>2019-07-23</DateDepot>
        <Motif>Mon motif</Motif>
        <SousMotif>Courrier</SousMotif>
        <Rattachement>
            <Caisse>666</Caisse>
            <Regime>66</Regime>
        </Rattachement>
        <PieceJointe>
            <NomFichier>PieceJointe.pdf</NomFichier>
            <TypeFichier>application/pdf</TypeFichier>
            <TypePiece>Piece jointe</TypePiece>
            <Empreinte FonctionDeHachage="SHA-256">ys7ht8vtTXWtWSC8nD+e7NOFpe/cZVYln9r1vDu+Pz4=</Empreinte>
        </PieceJointe>
    </Metadata>
</ns2:Metadatas>
Devrait donner une classe semblable à celle-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Metadata {
    public Date dateDepot;
    public String motif;
    public String sousMotif;
    public Rattachement rattachement;
    public List<PieceJointe> pieceJointe;
}
public class Rattachement {
    public String caisse;
    public String regime;
}
public class PieceJointe {
    public NomFichier nomFichier;
    public String typeFichier;
    public String typePiece;
    public Empreinte empreinte;
}
public class Empreinte {
    protected byte[] value;
    protected String fonctionDeHachage;
}
Cette classe Metadata étendra une super-classe et sera utilisée ensuite avec une autre application.

J'ai vu que xjc (JAXB) permet de créer des .java mais je ne vois pas comment intégrer ça dans mon .jar.

Les XML seront d'une quinzaine de formats. Une solution que j'ai envisagée est de créer des bibliothèques correspondant à chaque XML mais je ne sais pas comment choisir dynamiquement la bibliothèque.