使用 org.eclipse.xsd 和 Maven2 分析 XML 模式
我正在尝试将示例代码实现为 这篇文章来自 2002 年(我知道..),但无法加载架构。
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.xsd.util.XSDResourceImpl;
ResourceSet resourceSet = new ResourceSetImpl();
// I replaced the deprecated createDeviceURI with createURI as recommended in JavaDoc
XSDResourceImpl xsdSchemaResource =
(XSDResourceImpl)resourceSet.getResource(URI.createURI("my.xsd"), true);
我正在使用以下 Maven2 依赖项:
<dependency>
<groupId>org.eclipse.xsd</groupId>
<artifactId>xsd</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>ecore</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>common</artifactId>
<version>2.1.0</version>
</dependency>
代码编译得很好,但在执行时产生 RuntimeException:
java.lang.RuntimeException:
Cannot create a resource for 'my.xsd'; a registered resource factory is needed
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:346)
我在 org.eclipse.emf.ecore.xmi 中找到了一些资源工厂实现,但据我所知,只有一个 xmi 快照 在公共 Maven 存储库中,它依赖于 org.eclipse.core.runtime.. 这不是我想要的。
有人可以帮忙吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试在创建 ResourceSetImpl 之前添加此代码:
这应该创建完成您想要做的事情所需的注册表和工厂。
Try adding this code before creating your ResourceSetImpl:
That should create the registry and factory that you need to accomplish what you are trying to do.