Bonjour,

Je commence à travailler sur un projet où je dois utiliser Castor.
Pour l'instant, j'ai généré mes POJO à partir du XSD.
J'ai réussi la sérialisation et désérialisation XML.
Maintenant je dois sérialiser vers la base de données.
je voudrais utiliser le DDLGenerator (voir http://www.castor.org/ddlgen.html) pour générer le code SQL de création de la base de données.

Ce que j'ai fait: j'ai généré un fichier de mapping.xml à partir de mes POJO.
Ensuite j'utilise le ddlgenerator pour générer le code SQL.
Mon problème est que le fichier SQL généré est vide!

Voici la liste d'arguments que je passe au DDLGenerator:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
-m mapping/gen_mapping.xml -e Oracle_9 -o sql/gen_mapping.sql

Mes questions:

1) comment utiliser le DDLGenerator pour que le fichier sql généré ne soit pas vide?
2) une fois le SQL généré, dois générer un code particulier pour y accéder? Ou bien les POJO générés par Castor via le XSD contiennent-ils déjà le code nécessaire (par exemple avec le marshaller adapté à l'insertion vers SGBD) ?


Merci pour votre aide!


Remarque finale:
Sinon pour générer le mapping à partir de mes objets java, j'ai écrit (copié!) le code suivant (mais je pense que cela reste anecdotique pour mon problème):

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package mapping;
 
import network.Road;
import network.Road_segment;
import network.types.Road_type;
 
import org.exolab.castor.mapping.MappingException;
import org.exolab.castor.tools.MappingTool;
import org.exolab.castor.xml.XMLContext;
 
import java.io.*;
 
/** * generate a Castor mapping file ready for editing */
public class CastorMapper {
	/** * generate a Castor mapping file ready for editing */
	public CastorMapper() { 
		try { 
			XMLContext context = new XMLContext();
			MappingTool tool = context.createMappingTool(); 
			addClass(tool);
			OutputStream file = new FileOutputStream("mapping/gen_mapping.xml" ); 
			Writer writer = new OutputStreamWriter(file); 
			tool.write(writer); 
		} catch (Exception ex) { 
			ex.printStackTrace(); 
		} 
	}
 
	private void addClass(MappingTool tool) throws MappingException {
		tool.addClass(Road.class);
		tool.addClass(Road_segment.class);
		tool.addClass(Road_type.class);
	}
 
	public static void main(String[] args) {
		new CastorMapper();
	}
}