I have to read an XMI file (version 1.1) exported by Rational Rose.
I've tried this code but it doesn't work as expected.
public class MyReader {
public static final String extPkg = "ru.novosoft.uml.impl.UMLUMLPackageImpl";
public static void main(String[] args) {
try {
MDFOutermostPackage extent = (MDFOutermostPackage)Class.forName(extPkg).newInstance();
XMIReader xmiReader = (XMIReader)extent.getXMIReader("1.1");
MyReadingModelSample cls = new MyReadingModelSample();
InputStream io = cls.getClass().getResourceAsStream("test_14.xml");
xmiReader.read(extent, io);
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
System.out.println("All is O.K.");
}
}
Running the sample the following exception is thrown
java.lang.AbstractMethodError: ru/novosoft/mdf/impl/MDFListImpl.size
at java.util.ArrayList.<init>(ArrayList.java:125)
at ru.novosoft.mdf.impl.MDFBaseObjectImpl.bagdiff(MDFBaseObjectImpl.java:222)
at ru.novosoft.uml.impl.model_management.UMLPackageImpl.refSetValue(UMLPackageImpl.java:354)
at ru.novosoft.mdf.impl.xmi.XMICompositionState.namespaceSetting(XMICompositionState.java:132)
at ru.novosoft.mdf.impl.xmi.XMICompositionState.endElement(XMICompositionState.java:108)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.endElement(XMI11ReaderSAX2.java:384)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1489)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:309)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:247)
at samples.MyReadingModelSample.main(MyReadingModelSample.java:33)
Can you help me? I wonder where the problem is.
Thanks
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have to read an XMI file (version 1.1) exported by Rational Rose.
I've tried this code but it doesn't work as expected.
public class MyReader {
public static final String extPkg = "ru.novosoft.uml.impl.UMLUMLPackageImpl";
public static void main(String[] args) {
try {
MDFOutermostPackage extent = (MDFOutermostPackage)Class.forName(extPkg).newInstance();
XMIReader xmiReader = (XMIReader)extent.getXMIReader("1.1");
MyReadingModelSample cls = new MyReadingModelSample();
InputStream io = cls.getClass().getResourceAsStream("test_14.xml");
xmiReader.read(extent, io);
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
System.out.println("All is O.K.");
}
}
Running the sample the following exception is thrown
java.lang.AbstractMethodError: ru/novosoft/mdf/impl/MDFListImpl.size
at java.util.ArrayList.<init>(ArrayList.java:125)
at ru.novosoft.mdf.impl.MDFBaseObjectImpl.bagdiff(MDFBaseObjectImpl.java:222)
at ru.novosoft.uml.impl.model_management.UMLPackageImpl.refSetValue(UMLPackageImpl.java:354)
at ru.novosoft.mdf.impl.xmi.XMICompositionState.namespaceSetting(XMICompositionState.java:132)
at ru.novosoft.mdf.impl.xmi.XMICompositionState.endElement(XMICompositionState.java:108)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.endElement(XMI11ReaderSAX2.java:384)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1489)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:309)
at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:247)
at samples.MyReadingModelSample.main(MyReadingModelSample.java:33)
Can you help me? I wonder where the problem is.
Thanks