Re: [mdr-users] UML2MOF throws ClassCastException

Martin Matula <[email protected]> Tue, 12 Jul 2005 12:37:06 +0200
Newsgroups gmane.comp.java.netbeans.modules.mdr.user
Message-ID <[email protected]>
Hi Falk,
the model you are referring to is not a valid UML model - Enterprise 
Architect has several UML XMI compliance issues - some of them were 
already discussed on this mailing list.
The particular issue that causes the ClassCastException is that 
Enterprise Architect puts a tag representing a reference under another 
tag representing a reference - this is illegal - only reference values 
should be under this tag. I would not be surprised if the XML you are 
trying to import does not even validate against the UML DTD.
                        <UML:Namespace.ownedElement>
                                <UML:Stereotype 
xmi.id="EAID_9E47C9AF_9FDE_42cb_B308_4686EAEE32B6" name="XSDschema" 
isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
                                        
<UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
                                </UML:Stereotype>
<!---------------------- The problem is the element below 
--------------------------------->
                                <UML:ModelElement.stereotype>
                                        <UML:Stereotype 
xmi.idref="EAID_9E47C9AF_9FDE_42cb_B308_4686EAEE32B6"/>
                                </UML:ModelElement.stereotype>

Elements under <UML:Namespace.ownedElement> are supposed to be the 
instances that are owned elements of a given element. However 
<UML:ModelElement.stereotype> does not represent an object (instance) - 
it represents a reference.
Regards,
Martin


Falk Hartmann wrote:

>Hi,
>
>when trying to convert an XMI 1.2 file produced by Enterprise Architect 5.0
>(available here as zip: http://www.lixlix.org/misc/XForms.zip) using
>UML2MOF, I permanently get the following error message:
>
>java.lang.ClassCastException: javax.jmi.model.Reference$Impl
>        at
>org.netbeans.lib.jmi.xmi.XmiContext.resolveInstanceOrReference(XmiContext.java:688)
>        at
>org.netbeans.lib.jmi.xmi.XmiElement$ObjectValues.startSubElement(XmiElement.java:1460)
>        at
>org.netbeans.lib.jmi.xmi.XmiSAXReader.startElement(XmiSAXReader.java:219)
>        at
>com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown
>Source)
>        at
>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown
>Source)
>        at
>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>Source)
>
>        at
>com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>Source)
>        at
>com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
>Source)
>        at
>com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
>Source)
>        at
>com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
>        at
>com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
>Source)
>        at javax.xml.parsers.SAXParser.parse(Unknown Source)
>        at org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:136)
>        at org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:107)
>        at
>org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:58)
>        at
>org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:51)
>        at org.netbeans.lib.jmi.uml2mof.Main.main(Main.java:56)
>*********** Exception occurred ************ at Thu Jul 07 13:23:20 CEST 2005
>javax.jmi.xmi.MalformedXMIException: java.lang.ClassCastException:
>javax.jmi.model.Reference$Impl
>        at
>org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:64)
>        at
>org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:51)
>        at org.netbeans.lib.jmi.uml2mof.Main.main(Main.java:56)
>
>Did anyone encounter a similar problem or has hints on how to resolve this
>problem?
>
>Thank you very much in advance,
>Falk Hartmann ([email protected])
>  
>