EMF 中的 NS URI 是什么?

发布于 2024-09-30 01:09:44 字数 579 浏览 10 评论 0原文

我使用 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 为空。我的 NS URI 是“http://www.sg/model”(该 URL 不存在)。

I generated some classes using EMF and now I want to instantiate them. I've created the xmi files associated with the model and metamodel. Now I want to load the model as an instance in my program, but it keeps throwing a NullPointerException.

My code is:

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();

It throws an at wfFactory because wfPackage is null. My NS URI is "http://www.sg/model" (this URL does not exist).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心在旅行 2024-10-07 01:09:44

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

NS URI means namespace URI. That is the xml equivalent of packages in java. Apparently EMF runtime is unable to load the package associated with the URI you have specified. Check if URI you are specifying is correct.

望喜 2024-10-07 01:09:44

它在 wfFactory 处抛出一个异常,因为 wfPackage 为 null。

如果 NPE 确实在您指示的行处抛出,则它不可能发生,因为 wfPackagenull。事实上,它必须表明 registrynull

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

那应该没关系。 NS URI 只是一个“唯一名称”,表示模型的 XML 命名空间。它不一定是可以解决的。

It throws an at wfFactory because wfPackage is null.

If the NPE is really thrown at the line you indicate, it cannot be happening because wfPackage is null. In fact, it must indicate that registry is null.

My NS URI is "http://www.sg/model" (this URL does not exist).

That shouldn't matter. The NS URI is just a "unique name" that denotes the XML Namespace for your model. It doesn't have to be resolvable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文