2009-04-09 8 views
1

背景:プラグイン内に存在するスキーマを検証する

Eclipseには小さな問題があります。私はスキーマに対して入ってくるXMLデータを検証するいくつかのクラスを持つワークベンチ・プラグインに取り組んでいます。スキーマはプラグインプロジェクト内の "./schemas"フォルダ内にあります。

質問:私は、アプリケーションを実行すると

  1. 、どのように私はハードコードされたパスを使用せずにスキーマを読み込むことができますか?
  2. アプリケーションがデプロイされると、スキーマはプラグイン.jar内に存在する必要があります。この場合、(1)の解決策は何か違うでしょうか?

答えて

1

org.eclipse.core.runtimeのFileLocatorクラスを使用して、バンドル内のリソースへのURLを取得できます。 (持っていれば)

はたとえば、あなたがBundleContextからあなたのバンドルオブジェクトを取得することができます

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

のようなものは、あなたのアクティベーターに渡されます。または、Platform.getBundleを使用することもできます。

プラグインがjarの場合とまったく同じため、urlがディスク上のファイルであると仮定しないでください。 URL.openStreamを使用してコンテンツを取得するか、FileLocator.toFileURL()を使用してディスク上のファイルを取得できます。

+0

ありがとうございました。あなたの提案は注目されました! – Daniel

関連する問題