2009-04-09 7 views
1

Contexte:contre un schéma validation qui vit à l'intérieur d'un plugin

J'ai un petit problème avec Eclipse. Je travaille sur un plugin workbench qui a des classes qui valident les données XML entrantes par rapport à un schéma. Le schéma réside dans le projet plugin dans un dossier "./schemas".

Questions:

  1. Quand je lance l'application, comment puis-je lire le schéma sans utiliser un chemin hardcoded?
  2. Lorsque l'application est déployée, le schéma doit être hébergé dans un plugin .jar. Est-ce que la solution de (1) sera différente dans ce cas?

Répondre

1

Vous pouvez utiliser la classe FileLocator de org.eclipse.core.runtime pour obtenir une URL vers une ressource de votre bundle.

Par exemple, quelque chose comme

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

Vous pouvez obtenir votre objet Bundle de la BundleContext passé dans votre Activator (si vous en avez un). Ou vous pouvez utiliser Platform.getBundle.

Vous ne devez pas supposer que l'URL est un fichier sur le disque, exactement dans le cas où le plugin est un pot. Vous pouvez utiliser URL.openStream pour obtenir le contenu, ou FileLocator.toFileURL() pour obtenir un fichier sur le disque.

+0

Merci beaucoup Andrew. Votre suggestion était sur place! – Daniel