generare la gui per l'editing di un xml da un xsd

46 views
Skip to first unread message

Davide

unread,
Sep 1, 2008, 9:04:52 AM9/1/08
to jugt...@googlegroups.com
Ciao,

conoscete qualche strumento che a partire da un file xsd genera una gui
per editare i file corrispondenti a questo schema? Tipo che mette un campo
per attributo, dei sottoblocchi per i sottoelementi, ecc ?

Vitor E. Silva Souza

unread,
Sep 1, 2008, 9:09:43 AM9/1/08
to jugt...@googlegroups.com

Si può fare con Eclipse Modeling Framework, però non a partire da un file XSD,
ma da un model Java (classes).

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html

Vítor

Andrea Zoleo

unread,
Sep 1, 2008, 9:31:02 AM9/1/08
to jugt...@googlegroups.com
A me sembra invece che un ecore model di emf di eclipse possa essere
tranquillamente generato anche da un file xsd
dal quale vengono generate le interfacce e le classi java sia per il
modello che per l'editor.

Saluti
Andrea

Il giorno 01/set/08, alle ore 15:09, Vitor E. Silva Souza ha scritto:

Davide

unread,
Sep 1, 2008, 2:39:25 PM9/1/08
to jugt...@googlegroups.com
Si ho ho capito. C'e' anche l'opzione xsd nel tutorial
ma nel mio eclipse 3.4 no :-(

Comunque ho una domanda provocatoria. Vedendo
il risultato di emf e il design editor xml di eclipse,
non c'e' molta differenza. Anche nel editor "design"
posso aggiungere un nodo attraverso il menu per
esempio ...


2008/9/1 Andrea Zoleo <andrea...@gmail.com>:

Vitor E. Silva Souza

unread,
Sep 2, 2008, 4:52:19 AM9/2/08
to jugt...@googlegroups.com
On Monday 01 September 2008 20:39:25 Davide wrote:
> Si ho ho capito. C'e' anche l'opzione xsd nel tutorial
> ma nel mio eclipse 3.4 no :-(

Forse ti manca qualche plugin? Non sono esperto... Dai, non sapevo neanche
della possibilità di usare XSD con EMF! :)


> Comunque ho una domanda provocatoria. Vedendo
> il risultato di emf e il design editor xml di eclipse,
> non c'e' molta differenza. Anche nel editor "design"
> posso aggiungere un nodo attraverso il menu per
> esempio ...

Penso che la grande diferenza sarebbe che l'editore fatto da EMF segue il
modello di classe. Non ho usato il design editor XML di Eclipse, ma presumo
che esso segua lo Schema XSD o DTD, quindi alla fine è la stessa cosa. Sono
d'accordo.

Vítor

Andrea Zoleo

unread,
Sep 2, 2008, 6:02:53 AM9/2/08
to jugt...@googlegroups.com
vorrei fare un po' di chiarezza, in quanto in questo periodo sto
sviluppando proprio un editor via diagrammi come plugin di eclipse.

Per sviluppare ti consiglio di scaricare la versione di eclipse
ganymede nel pacchetto modellazione che contiene già tutto quanto ti
serve, compresa la generazione di emf a partire da xsd se non sbaglio

Lo stack di tecnologie che puoi usare è il seguente:

EMF +
GEF +
GMF

che nello specifico fanno quanto segue:

EMF permette lo sviluppo di modelli logici di diagrammi di classe (un
sottoinsieme dei diagrammi di classe UML) che però danno un grande
valore aggiunto nell'implemetazione automatica del diagramma EMF che
viene fatto.
Il valore aggiunto è la gestione automatica dei riferimenti
bidirezionali e di contenimento con la notifica via eventi di tutti i
cambiamenti, una cosa che a implementare da soli è un bel pacco.

da EMF è possibile generare il codice del modello logico,
il codice che permette di manipolare il modello logico da una generica
gui eclipse (il cosiddetto componente edit)
il codice ce realizza una vero e prorpio editor del modello, tramite
un editor simile a quello dei file xml di cui parli (il cosiddetto
componente editor)

Se oltra a questo editor vuoi anche un editor grafico a blocchi drag
and drop come i modellatori UML per intenderci, allora devi utilizzare
il framework GMF, che tramite l'ausilio del GEF (graphics eclipse
framework) permette di aggiungere un altro paio di strati al sistema e
di definire come vuoi che vengano rappresentati graficamente i
componenti logici e di come devono essere manipolati nella palette di
comopnenti.

Il consiglio che ti posso dare e di partire a leggere la
documentazione di GMF e da quella spostarti quando necessario a quella
EMF o GEF

la parte centrale resta comunque EMF.

Saluti
Andrea




Il giorno 01/set/08, alle ore 20:39, Davide ha scritto:

Nicola Pedot

unread,
Sep 2, 2008, 8:36:08 AM9/2/08
to jugt...@googlegroups.com
On 9/2/08, Andrea Zoleo <andrea...@gmail.com> wrote:

vorrei fare un po' di chiarezza, in quanto in questo periodo sto
sviluppando proprio un editor via diagrammi come plugin di eclipse.
 
Ciao Andrea,
il progetto che stai sviluppando è opensource?
 
NiPe

 

Vitor E. Silva Souza

unread,
Sep 2, 2008, 8:48:33 AM9/2/08
to jugt...@googlegroups.com
Inoltre, EMF ti permette di leggere XML file creati col editor, transformando
tutto in un grafo di oggetti che implementono le interface del modello creato
prima. Nel proggetto che sto lavorando ho fatto cosi:

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;

// ...

/*
* The following implementation was adapted from code taken in 20/06/2008
* from: Eclipse Modeling Framework (EMF) and Java Emitter Template (JET) -
* Tutorial By Lars Vogel (webm...@vogella.de)
*
http://www.vogella.de/articles/EclipseEMF/article.html#model_code_usage_s1s2b
*/

// Initializes the EMF model.
GoalPackage.eINSTANCE.eClass();

// Registers the XMI resource factory for the .goal extension.
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
Map<String, Object> m = reg.getExtensionToFactoryMap();
m.put("goal", new XMIResourceFactoryImpl());

// Obtains a new resource set.
ResourceSet resSet = new ResourceSetImpl();

// Gets the resource.
Resource resource =
resSet.getResource(URI.createURI(goalModelFile.getAbsolutePath()), true);

// Gets the first model element and cast it to the right type.
AbstractRoot root = (AbstractRoot) resource.getContents().get(0);

// ...

Vítor

On Tuesday 02 September 2008 12:02:53 Andrea Zoleo wrote:
> vorrei fare un po' di chiarezza, in quanto in questo periodo sto
> sviluppando proprio un editor via diagrammi come plugin di eclipse.
>

> [...]

Andrea Zoleo

unread,
Sep 2, 2008, 10:11:56 AM9/2/08
to jugt...@googlegroups.com
no, magari.
E' per un cliente che vuole un'applicazione rcp per diagrammare gli schemi di progettazione dei prodotti che assembal in catena di montaggio.

Saluti
Andrea

Il giorno 02/set/08, alle ore 14:36, Nicola Pedot ha scritto:
Reply all
Reply to author
Forward
0 new messages