« Return to Thread: MDR usage

MDR usage

by Ajay Kumar-2 :: Rate this Message:

Reply to Author | View in Thread

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

 « Return to Thread: MDR usage

LightInTheBox - Buy quality products at wholesale price