2009-03-22 16 views

Antwort

8

Das ist, was für mich gearbeitet:

  • Neu -> Projekt ...
  • Eclipse Modeling Framework -> EMF-Projekt
  • Modell Importeure:XML Schema
  • Modell URIs: [Wählen Sie xsd-Datei]

Um die .ecore-Datei erneut validieren, wenn xsd geändert hat:

  • Rechtsklick auf .genmodel -File
  • Reload ...
+4

In Galileo müssen Sie die Funktion "XSD Ecore Converter" installieren. Dies stellt den Modellimporteur für XML-Schema bereit. – ftl

+0

In keiner Version von Eclipse ist diese Funktion in der Funktion "XSD - XML ​​Schema Definition SDK" enthalten. –

+0

In den neueren Versionen (neon 3 in meinem Fall), musste ich [XML Schema Definition] installieren (http://www.eclipse.org/modeling/mdt/downloads/?project=xsd). So kann ich den XML-Schema-Importer sehen. – ClickBright

2

Ein Beispiel Klasse . Ich habe die Importe nicht aufgeräumt.



import org.eclipse.emf.common.util.URI; 

import java.io.IOException; 
import java.util.Collection; 
import java.util.Iterator; 

import org.eclipse.emf.ecore.*; 
import org.eclipse.xsd.*; 
import org.eclipse.xsd.ecore.XSDEcoreBuilder; 
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.*; 
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 
import org.eclipse.emf.edit.ui.*; 


public class Xsd2Ecore { 

    public static void main(String[] args) { 
     Xsd2Ecore x2e = new Xsd2Ecore(); 
     x2e.go("UMLVersions/V1.0.0/UML2XMI.xsd", "UMLVersions/V1.0.0/UML2100.xmi"); 
    } 


    public void go(String sourcename, String targetname) { 

     System.out.println("Starting"); 

     XSDEcoreBuilder xsdEcoreBuilder = new XSDEcoreBuilder(); 
     ResourceSet resourceSet = new ResourceSetImpl(); 
     Collection eCorePackages = xsdEcoreBuilder.generate(URI.createFileURI(sourcename)); 

     resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl()); 
     Resource resource = resourceSet.createResource(URI.createFileURI(targetname)); 

     for (Iterator iter = eCorePackages.iterator(); iter.hasNext();) { 
      EPackage element = (EPackage) iter.next(); 
      resource.getContents().add(element); 
     } 

     try { 
      resource.save(null); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     System.out.println("Finished"); 

    } 

} 

6

Wenn Sie nicht wollen, ein neues MDT Projekt jedes Mal, wenn Sie ein Schema als Ecore Modell erstellen möchten importieren, dann gibt es auch eine andere Möglichkeit, dies zu tun:

  • Neu ->EMF Generator-Modell (in "Eclipse Modeling Framework")
  • Press Weiter
  • Ordner auswählen und angeben Dateinamen (
  • Press Weiter
  • Select "XML Schema" als Modell Importeur
  • Press Weiter
  • Select URI zu Ihrem XSD
  • haben muss die Erweiterung "genmodel") (Aktivieren Sie optional das Kontrollkästchen "XML-Schema in Ecore-Map erstellen", wenn Sie eine .xsd2ecore-Kartendatei generieren möchten.
  • Drücken Sie auf Weiter
  • Wählen Sie alle gewünschten Wurzel Pakete
  • Press Fertig
+0

Danke, hat alles für diese :) gesucht. – studgeek

0

Haben Sie versucht,

eclipse –console –noExit –noSplash -data C:\temp\emf-ws 
    -application org.eclipse.xsd.ecore.importer.XSD2GenModel 

Es erzeugt .ecore und .genmodel für Ihren Satz XSDs.

Verwandte Themen