验证插件内部的架构

时间:2009-04-09 02:37:40

标签: eclipse validation plugins schema

背景:

Eclipse有一个小问题。我正在开发一个工作台插件,它有一些类可以根据模式验证传入的XML数据。该架构位于插件项目内的“./schemas”文件夹中。

问题:

  1. 当我运行应用程序时,如何在不使用硬编码路径的情况下读取架构?
  2. 部署应用程序时,架构需要存在于插件.jar中。在这种情况下,(1)的解决方案是否会有所不同?

1 个答案:

答案 0 :(得分:1)

您可以使用org.eclipse.core.runtime中的FileLocator类来获取捆绑包中资源的URL。

例如,像

URL schema = FileLocator.find(myBundle, new Path("/schemas/data.xsd"), null);

您可以将BundleContext中的Bundle对象传递给您的Activator(如果有的话)。或者您可以使用Platform.getBundle。

你不应该假设url是磁盘上的文件,就像插件是jar一样。您可以使用URL.openStream来获取内容,或使用FileLocator.toFileURL()来获取磁盘上的文件。