【问题标题】:Validating against a schema that lives inside a plugin针对插件内部的模式进行验证
【发布时间】:2010-10-18 11:16:47
【问题描述】:

背景:

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

问题:

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

【问题讨论】:

    标签: eclipse validation plugins schema


    【解决方案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() 获取磁盘上的文件。

    【讨论】:

    • 非常感谢安德鲁。你的建议是正确的!
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2023-03-08
    • 2021-06-02
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多