MDR usage
Hi,
I started using MDR jar file which i downloaded from netbeans website . My objective is to parse the xmi file which contains UML . But when i try parsing the 01-12-02_Diff.xml , i am getting parsing error something like this...
/*********************************************************/
org.netbeans.lib.jmi.util.DebugException: Cannot create URL: 01-12-02.xml
........
[org.netbeans.lib.jmi.Logger] XMI parsing error at line: 242: Cannot create URL:
01-12-02.xml
Fatal error reading XMI.javax.jmi.xmi.MalformedXMIException: org.netbeans.lib.jmi.util.DebugException: Cannot create URL: 01-12-02.xml
at org.netbeans.lib.jmi.xmi.SAXReader.read(SAXReader.java:62)
at test.XMITest.main(XMITest.java:40)
/*******************************************************/
//the code i am trying to execute .
import java.io.File;
import java.io.FileInputStream;
import java.util.Collection
;
import java.util.Iterator;
import javax.jmi.model.ModelPackage;
import javax.jmi.model.MofPackage;
import javax.jmi.reflect.RefPackage;
import org.netbeans.api.mdr.MDRManager;
import org.netbeans.api.mdr.MDRepository
;
import org.netbeans.api.xmi.XMIReader;
import org.netbeans.api.xmi.XMIReaderFactory;
public class XMITest {
public static void main(String[] args) {
MDRepository repository = MDRManager.getDefault
()
.getDefaultRepository();
boolean fail = true;
repository.beginTrans(true);
try {
MofPackage umlPackage = null;
XMIReader reader = XMIReaderFactory.getDefault
().createXMIReader();
RefPackage mof = repository.createExtent("UML");
FileInputStream stream = new FileInputStream(
"/home/ajay/models/uml1.3-metamodel/01-12-02_Diff.xml");
reader.read(stream, null, mof);
for (Iterator it = ((ModelPackage) mof).getMofPackage()
.refAllOfClass().iterator(); it.hasNext();) {
MofPackage temp = (MofPackage)
it.next();
System.out.println(temp.getName());
if ("UML".equals(temp.getName())) {
umlPackage = temp;
break;
}
}
RefPackage umlInstance = repository.createExtent("UML-MetaModel",
umlPackage);
reader.read(new File("/home/ajay/test.xmi").toURL().toString(),
umlInstance);
fail = false;
} catch (Exception e) {
System.out.println("Fatal error reading XMI.");
e.printStackTrace();
} finally {
repository.endTrans(fail);
}
}
public static void print(String s) {
System.out.println(s);
}
public static void print(Collection c) {
Iterator itr =
c.iterator();
while (itr.hasNext())
System.out.println(itr.next());
}
}
/********************************************************************/
If the above approach is wrong ..... please tell me where i am going wrong . A small working code would really help me a lot.
--
with regards
Nadathur Srinivasan Ajay Kumar