Quelle est la meilleure façon de convertir des fichiers .xsd en fichiers .ecore? Y a-t-il un plugin eclipse pour ça?Comment convertir xsd en ecore (EMF)
7
A
Répondre
8
C'est ce qui a fonctionné pour moi:
- Nouveau -> Projet ...
- Eclipse Modeling Framework -> EMF projet
- Importateurs Modèle:XML Schema
- Modèle URI: [Select xsd-File]
Pour revalider le .ecore-fichier lorsque xsd a changé:
- Clic droit sur .genmodel -File
- Recharger ...
2
Un exemple de classe . Je n'ai pas nettoyé les importations.
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
Si vous ne voulez pas créer un nouveau projet MDT chaque fois que vous souhaitez importer un schéma comme modèle Ecore puis il y a aussi une autre façon de le faire:
- Nouveau ->EMF générateur modèle (dans "Eclipse Modeling Framework")
- Appuyez sur Suivant
- Sélectionner un dossier et spécifier le nom de fichier (doit avoir l'extension "genmodel")
- Appuyez sur Suivant
- Sélectionnez "XML Schema" comme importateur de modèle
- Appuyez sur Suivant
- Sélectionnez URI à votre XSD
- (En option, cochez la case "Créer un schéma XML pour Ecore Map" si vous voulez générer un fichier de carte .xsd2ecore)
- Appuyez sur Suivant
- Sélectionner les packages souhaités racine
- Appuyez sur Terminer
+0
Merci, cherchait partout pour cela :). – studgeek
0
Avez-vous essayé
eclipse –console –noExit –noSplash -data C:\temp\emf-ws
-application org.eclipse.xsd.ecore.importer.XSD2GenModel
Il génère .ecore et .genmodel pour votre ensemble de XSDs.
Questions connexes
- 1. EMF ecore et xsd désynchronisé, comment résoudre?
- 2. convertir xsd en WSDL?
- 3. Convertir xml en xsd en utilisant java
- 4. Outil gratuit pour convertir XSD en HTML
- 5. Comment lire EMF - Métafichiers améliorés?
- 6. EMF (Eclipse Modeling Framework) en C#
- 7. Convertir des fichiers XSD en C# Serializable Class
- 8. EMF avec anticrénelage
- 9. Utilisation de JET avec EMF
- 10. Comment convertir en datetime
- 11. Y at-il un outil qui peut convertir les formats d'image courants (.bmp, jpg, ..) en fichiers .emf?
- 12. Conversion d'un fichier WSDL en fichier XSD en Java
- 13. Comment transformer XML d'un XSD à un autre XSD?
- 14. comment utiliser le service Web à l'aide de classes EMF?
- 15. Comment lire un xsd: dateTime avec msxml?
- 16. Un XSD pour décrire des XSD
- 17. Comment convertir NSDecimalNumber en NSInteger?
- 18. Comment convertir int [] en byte []
- 19. Comment convertir cstring en NSString?
- 20. Comment convertir Scope_Identity() en int?
- 21. Comment convertir NSString en char?
- 22. Comment convertir longtemps en LPCWSTR?
- 23. Comment convertir char * en PRUnichar *
- 24. Comment convertir DateTime en Date
- 25. Comment convertir Varchar en Datetime?
- 26. Comment créer Genmodel et le code de modèle d'ecore par programmation en utilisant l'API EMF?
- 27. Milieu entre XSD all et séquence XSD
- 28. xsd wellformedness
- 29. Restrictions XSD
- 30. débutant en utilisant validate xml xsd
Dans Galileo, vous devez installer la fonction "XSD Ecore Converter". Cela fournit l'importateur de modèle pour XML Schema. – ftl
Dans toutes les versions d'Eclipse, cette fonctionnalité est incluse dans la fonction "XSD - XML Schema Definition SDK". –
Dans les versions les plus récentes (néon 3 dans mon cas), j'avais besoin d'installer [XML schema definition] (http://www.eclipse.org/modeling/mdt/downloads/?project=xsd). Je peux donc voir l'importateur de schéma XML. – ClickBright