Bonjour à tous,

Je voudrais générer un fichier XML à partie d'une classe sur laquelle j'aurais mis des annotations.

Je bosse avec Java 8 et Maven 3. La génération peut se faire lors de la compil Maven.

Mon bean est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public class ChienService {
 
	public double add(String race, int age) {
		...
	}
 
	...
}
Et je voudrais que ça génère un fichier comme dans l'exemple suivant :
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
 
<documentation>
	<obj name="chien">
		<operations>
			<operation name="ajouter">
				<params>
					<param io="in" name="race" type="String" />
					<param io="in" name="age" type="int" />
					<param io="out" name="prix" type="double" />
				</params>
 
				...
			</operation>
		</operations>
	</obj>
</documentation>
Je me suis donc fait un jeu d'annotations :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public @interface ToXml {
	String name();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public @interface Operation {
	String name();
	String type();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public @interface OpeParam {
	String name();
	String type();
}
Et je l'utilise comme suit:

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
22
 
@ToXml(name="chien")
public class ChienService {
 
	@Operation(name="ajouter", type="num")
	public double add(
			@OpeParam(name="race", type="text") 
			String race, 
			@OpeParam(name="age", type="num") 
			int age) {
		...
	}
 
	@Operation(name="acheter", type="text")
	public String buy(
			@OpeParam(name="id", type="num") 
			String identifiant {
		...
	}
 
	...
}
Je pense que c'est largement suffisant.

Par contre, je ne sais pas comment générer le fichier XML et automatiser dans Maven à partir de tout ça... Quelqu'un pourrait m'aider ?

Merci d'avance,
Thierry