Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » M2T (model-to-text transformation) » [Acceleo3] How to process XML models?(Imported the XSD metamodel... now what?)
[Acceleo3] How to process XML models? [message #668100] Tue, 03 May 2011 17:53 Go to next message
Ed Staub is currently offline Ed StaubFriend
Messages: 16
Registered: April 2011
Junior Member
I'm a newbie to EMF in general... the answer to this may be obvious or not specific to Acceleo per se.

I need to use an XML file as a model. I've imported the XSD, and have successfully (i.e., the editor context-sensitive help is correct) used it as a metamodel in my .mtl file (in the module statement).

What I can't figure out is how to use the .xml file as input. I thought that there would be tooling that would take an XSD-based metamodel and a schema-compliant XML file, and create an xmi file. I can't find any. What should I be doing?
Re: [Acceleo3] How to process XML models? [message #668126 is a reply to message #668100] Tue, 03 May 2011 21:01 Go to previous messageGo to next message
Ed Staub is currently offline Ed StaubFriend
Messages: 16
Registered: April 2011
Junior Member
I'd delete this if I could - made no sense - please ignore.
Re: [Acceleo3] How to process XML models? [message #668189 is a reply to message #668126] Wed, 04 May 2011 12:29 Go to previous messageGo to next message
radwane  is currently offline radwane Friend
Messages: 27
Registered: April 2011
Junior Member
it's the some problem with me but i receved a message in french i hope it can help u.


''Bonjour,

Tu essais de générer du code avec un métamodèle dit dynamique (c'est à dire un métamodèle qui n'est pas déployé dans un plugin Eclipse mais qui est dans le workspace dans un projet à côté du générateur), Ce système comporte maheureusement des bugs que nous sommes en train de régler pour Acceleo 3.1.0 qui sortira le mois prochain. Le correctif sera disponible dans la prochaine version béta d'Acceleo 3.1 M7 qui sortira mardi ou mercredi la semaine prochaine. La béta sera disponible par l'update site des nightly build Acceleo : http://download.eclipse.org/modeling/m2t/acceleo/updates/nig htly/3.1

Le mieux pour travailler dans ce genre de système est de déployer le métamodèle (le fichier ecore) dans un Eclipse. Le plus simple dans le cadre d'un projet est de lancer une nouvelle instance d'Eclipse après avoir déployé le métamodèle.

1- crée un projet de plugin
2- colle ton .ecore dedans
3- crée un EMF generator model pour le fichier ecore
4- ouvre le genmodel, clic sur la racine de ton ecore dans le genmodel et fait generate model puis generate editor et generate edit (tu peux customiser où ce code sera généré dans les properties du genmodel pour celà ouvre la vue Properties)
5- clic droit sur ton projet de plugin -> run as Eclipse Application

un nouvel eclipse est lancé, ton métamodel est déployé dans ce nouvel eclipse.

Dans le nouvel Eclipse tu crées un projet Acceleo. Lors du choix du métamodel à utiliser, tu ne choisis pas Ecore (http://www.eclipse.org/2002/Ecore) mais bien l'uri de ton métamodèle (uri que tu as renseigné dans le package racine de ton ecore)
Pour créer ton modèle, tu n'as pas besoin de faire une dynamique instance mais tu fais New -> Other -> Example EMF Model Creation Wizards -> le nom de ton métamodèle.

Ton métamodèle est disponible dans le wizard de création de nouveau fichier car tu as demandé la génération de edit et editor. Tu peux tout customiser (nom des menus etc) grâce au genmodel (comme l'extension de tes modèles... xmi étant vraiment pour les instances dynamiques).

À partir de là, tu as ton générateur, ton modèle, tu peux donc générer ton code. Bien évidemment, lancer un nouvel eclipse est un peu génant, il est donc préférable d'installer son métamodèle dans un Eclipse. Pour celà après l'étape 4, tu crées un projet de feature pour lequel tu sélectionnes tes projets de plugin contenant le code de ton métamodèle (model/edit/editor). Puis tu fais export as executable plugin and feature. Dans un nouvel Eclipse tu installes alors ta feature. Tu n'auras plus qu'à travailler dans ce nouvel Eclipse.

Dans tous les cas, tout ce que j'ai expliqué ici rapidement est expliqué plus en détail dans ce tutoriel sur EMF : http://www.vogella.de/articles/EclipseEMF/article.html
Si tu suis ce tutoriel, après l'étape 5.4 edit your model, tu peux créer ton générateur Acceleo dans le nouvel eclipse.

Si tu désires installer ton générateur Acceleo plus tard dans un nouveau projet, tu peux suivre les instructions situes ici : http://stephanebegaudeau.tumblr.com/post/4044822578/from-an- acceleo-code-generator-to-an-eclipse-plugin
''
Re: [Acceleo3] How to process XML models? [message #668233 is a reply to message #668189] Wed, 04 May 2011 15:34 Go to previous messageGo to next message
Ed Staub is currently offline Ed StaubFriend
Messages: 16
Registered: April 2011
Junior Member
Many thanks - saved me a lot of hair-pulling. I had just gotten to the point where I was running into the problems Stephane describes.
Re: [Acceleo3] How to process XML models? [message #668800 is a reply to message #668100] Sat, 07 May 2011 14:37 Go to previous message
radwane  is currently offline radwane Friend
Messages: 27
Registered: April 2011
Junior Member
hi
this is my file generator.mtl

[comment encoding = UTF-8 /]
[module generate('http://www.eclipse.org/uml2/3.0.0/UML')/]
[template public generate(aClass : Class)]
[file (aClass.name.concat('.java'), false)]
public class [aClass.name.toUpperFirst()/] {
[for (p: Property | aClass.attribute) separator('\n')]
private [p.type.name/] [p.name/];
[/for]

[for (p: Property | aClass.attribute) separator('\n')]
public [p.type.name/] get[p.name.toUpperFirst()/]() {
return this.[p.name/];
}
[/for]

[for (o: Operation | aClass.ownedOperation) separator('\n')]
public [o.type.name/] [o.name/]() {
// TODO should be implemented
}
[/for]
}
[/file]
[/template]


its ok if i choise input file .uml
but if i want to use my model .xmi i must change this ligne
[module generate('http://www.eclipse.org/uml2/3.0.0/UML')/]
but i dont know what i must write ?
Previous Topic:[ACCELEO] imput model type????
Next Topic:[ACCELEO]last version
Goto Forum:
  


Current Time: Sun Dec 08 03:22:20 GMT 2024

Powered by FUDForum. Page generated in 0.04470 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top