EMF中的NS URI是什么?

时间:2010-11-01 00:58:28

标签: java eclipse-emf

我使用EMF生成了一些类,现在我想实例化它们。我创建了与模型和元模型相关联的xmi文件。现在我想在我的程序中加载模型作为实例,但它不断抛出NullPointerException。

我的代码是:

Map<String,Object> registry = EPackage.Registry.INSTANCE;
String workflowURI = ExcelEditorPackage.eNS_URI;
System.out.println(workflowURI);
ExcelEditorPackage wfPackage = (ExcelEditorPackage) registry.get(workflowURI); //throw NPE here
ExcelEditorFactory wfFactory = wfPackage.getExcelEditorFactory();
Page workflow = wfFactory.createPage();

它会抛出一个wfFactory,因为wfPackage为null。我的NS URI是“http://www.sg/model”(此URL不存在)。

2 个答案:

答案 0 :(得分:0)

NS URI表示名称空间URI。这是java中xml相当于的包。显然,EMF运行时无法加载与您指定的URI关联的包。检查您指定的URI是否正确。

答案 1 :(得分:0)

  

它会抛出一个wfFactory,因为wfPackage为null。

如果NPE确实在您指定的行处抛出,则无法发生,因为wfPackagenull。实际上,它必须表明registrynull

  

我的NS URI是“http://www.sg/model”(此URL不存在)。

那应该不重要。 NS URI只是一个“唯一名称”,表示模型的XML命名空间。它不必是可解析的。