Interfaces exported to XMI

Is there a known problem exporting a model with Interfaces to XMI 1.2?

I just tried it and all my interfaces became regular classes. I want to use v1.2 to integrate with another tool that exports PHP code. I haven’t tried the other two XMI versions.

I’m attaching a test project and the exported XMI for you to look at.

Sorry to ask so many questions, VP-UML seems like it could be a really really amazing program, so I’m trying it out as best I can.

Many thanks,
Scott
xmiTest.xmi
xmiTest.vpp

Hi Scott,

Don’t say so. We are happy to see your post with suggestions and problem report.

I just tried your XMI by reversing it back into VP-UML, the IThing interface can be reversed without problem. I also tried exporting XMI from your .vpp file, and importing it back. The result is fine as well. May I know why you said that the interfaces became regular classes? My judgment is based on the existence of <> stereotype. How about you?

Best regards,
Jick

I’m glad you find these helpful.

I’m under the impression that the UML:Interface tag should be used for Interfaces rather than the UML:Class tag. I don’t think other programs use the stereotype tag to determine whether an element is an interface or class - I think they use the UML:Interface tag. So, where VP-UML can import the XMI file and understand it, my other programs think the interface is a regular class.

Thanks.

I see…Let me talk to our developers and come back to you. :slight_smile:

Best regards,
Jick

Hi Scott,

This problem is fixed. I just sent you an email with the instruction of downloading the patch that contain the fix. Please check your inbox.

Best regards,
Jick

That seems to work really well. Thanks a lot!

– Actually, looking a little more, there is still a big problem.

The interface is recognized as an interface, however the class that implements the interface is not marked as implementing the interface.

I don’t know exactly what the XMI should look like, because I don’t really know XMI, I just try to use it. So I have attached a simple XMI file made with ArgoUML that works with my other program. VP-UML seems to import this file fine. Maybe it will help you?
argoTest.xmi

Hi Scott,

This is how we handle a realization relationship:



<UML:Interface isAbstract="false" isActive="false" isLeaf="false" isRoot="false" name="I" visibility="public" xmi.id="7IV9PoiGAqAKZwNm">
	<XMI.extension xmi.extender="Visual Paradigm for UML">
		<businessModel xmi.value="false"/>
		<modelType xmi.value="Class"/>
	</XMI.extension>
	<UML:ModelElement.stereotype>
		<UML:Stereotype xmi.idref="roV9PoiGAqAKZwOu"/>
	</UML:ModelElement.stereotype>
</UML:Interface>
<UML:Stereotype name="Interface" xmi.id="roV9PoiGAqAKZwOu"/>
<UML:Class isAbstract="false" isActive="false" isLeaf="false" isRoot="false" name="A" visibility="public" xmi.id="k7V9PoiGAqAKZwS1">
	<XMI.extension xmi.extender="Visual Paradigm for UML">
		<businessModel xmi.value="false"/>
		<modelType xmi.value="Class"/>
	</XMI.extension>
</UML:Class>
<UML:Abstraction client="k7V9PoiGAqAKZwS1" supplier="7IV9PoiGAqAKZwNm" xmi.id="l7V9PoiGAqAKZwTb"/>


We also use UML:Abstract to represent the Realization, but the supplier/client are different. We exported as @supplier, but your XMI was exported with node UML:Dependency.supplier. May be both are correct. But we found that most of the tools handle this as @supplier, so we adopted this approach.

Best regards,
Jick

Hello Scott,

This is a note to inform you that a newer release is out. Since you were asked by me to use a patch, I would suggest you run the product updater to advance to the latest release. Feel free to let me know if there are any questions.

Best regards,
Jick Yeung