gpt4 book ai didi

java - 使用 EMF 加载 XML 文件时 "Package with uri ' null ' not found"

转载 作者:行者123 更新时间:2023-11-30 06:19:59 28 4
gpt4 key购买 nike

我正在尝试使用 EMF 加载 XML 文件,并且我在 XMLArtefactAdapter.java 中使用以下代码来执行此操作:

构造函数():

ResourceSet set = new ResourceSetImpl();
//registering factory
set.getResourceFactoryRegistry()
.getExtensionToFactoryMap()
.put
(Resource.Factory.Registry.DEFAULT_EXTENSION,new XMLResourceFactoryImpl());

parse()方法:

//parsing XML
try {
String absolutePath = file.getAbsolutePath();
URI uri = URI.createFileURI(absolutePath);
Resource resource = resourceSet.createResource(uri);
resource.load(Collections.EMPTY_MAP);

System.out.println("LOADED");

} catch (IOException e) {
System.out.println(e.toString());
}

我正在从我的主类执行此代码片段:

Path path = Paths.get("C:\\Users\\Srijani\\Desktop\\book.xml");
XMLArtefactAdapter xmlAdapter = new XMLArtefactAdapter(path);
xmlAdapter.parse();

但是,我在运行此代码时遇到错误。

org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'null' not found. (file:/C:/Users/Srijani/Desktop/plugin.xml, 3, 9)

请注意以下事项:我的Plugin.xml

<plugin>

<extension point="org.eclipse.emf.ecore.generated_package">
<!-- @generated simpletree -->
<package
uri="platform:/plugin/com.kaleidoscope.core.aux.simpletree/model/SimpleTree.ecore"
class="SimpleTree.SimpletreePackage"
genModel="model/simpletree.genmodel"/>
</extension>

</plugin>

知道为什么会发生这种情况吗?提前致谢!

最佳答案

EPackage uri 是 EPackage 的一种公共(public)标识符。它不应该是 eclipse uri。

通常,命名空间 URI 是一个 http url,提供有关 EPackage 提供程序、ePackage 名称和版本的一些基本信息。例如:

  <extension point="org.eclipse.emf.ecore.generated_package">
<package
uri="http://www.eclipse.org/emf/2002/Ecore"
class="org.eclipse.emf.ecore.EcorePackage"
genModel="model/Ecore.genmodel"/>
</extension>

你应该:

  1. 使用 EPackage 的标识符更改您的 EPackage nsUri,
  2. 重新生成 EMF 代码,
  3. 并合并您的plugin.xml 和plugin.xml_gen 文件以同步您的nsURI 值。

关于java - 使用 EMF 加载 XML 文件时 "Package with uri ' null ' not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364213/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com