Hi Tom,
I think this may be more of an EMF question regarding how to work with
ResourceSets you may want to try to post there for a more complete response.
One issue you will face will be to properly register packages with your
resource set.
Something like:
Map packageRegistry = resourceSet.getPackageRegistry();
packageRegistry.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
You will also probably need to register extensions:
Map extensionFactoryMap =
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
extensionFactoryMap.put(UMLResource.FILE_EXTENION,
UMLResource.Factory.INSTANCE);
The UML project also makes uses of pathmaps so you will need something like:
URIConverter.URI_MAP.put(URI.create(UMLResource.LIBRARIES_PATHMP),
umlResourcePluginURI.appendSegment("libraries").appendSegment(""));
I would recommend downloading the UML2 examples and plugins and see how it
makes use of extensions.
There is also some example code here (scroll toward the bottom):
http://www.eclipse.org/modeling/mdt/uml2/docs/guides/UML2_2.0_Migration_Guide/guide.html
The EMF newsgroup also has many Q/A regarding ResourceSets.
Cheers,
- James.
"Tom" <tom@xxxxxxxxxxxx> wrote in message
news:h3no08$7pr$1@xxxxxxxxxxxxxxxxxxxx
Hi,
I'm new the subject of parsing an XMI file with the eclipse libraries.
I've read the "EMF Framework Programmer's Guide" and "Getting Started with
UML2" in the UML2 wiki. I also googled a lot, but I could not find the
right information on how my problem is solved or even an indication if it
can be solved.
I have a XMI file that has nothing to do with EMF/Ecore. The file contains
a metamodel, unlike most guides (which seem only to work with concrete
datamodels in their xmi files). This metamodel can for instance be a class
diagram exported from IBM's Rational Rose or Visual Paradigm. I want to
write an application that reads the classifiers and their associations
from this XMI file. I believe it has to be possible to transform the
metamodel to some Ecore object-set that can be browsed in Java. Am I
correct?
If so, how should I configure a ResourceSet to load the XMI file in this
way? I tried using the UMLPackage.eINSTANCE in my code but with no succes,
because I don't seem to understand the core concepts of ResourceSets and
how I might configure them to load any XMI file. There seem to be an
overwhelming amount of settings for Resouces that are to my knowledge not
covered in some tutorial.
Ideas? Sample source code would be highly appreciated :-)
Regards,
Tom