2009-04-09 3 views
1

배경 :플러그인 내부에있는 스키마에 대해 유효성 검사

Eclipse에 약간의 문제가 있습니다. 스키마에 대해 들어오는 XML 데이터의 유효성을 검사하는 일부 클래스가있는 Workbench Plugin에서 작업하고 있습니다. 스키마는 플러그인 프로젝트 내부의 "./schemas"폴더에 있습니다.

질문 : 나는 응용 프로그램을 실행할 때

  1. , 어떻게 하드 코드 된 경로를 사용하지 않고 스키마를 읽을 수 있습니까?
  2. 응용 프로그램을 배포 할 때 스키마는 플러그인 .jar 내에 있어야합니다. 이 경우 (1)의 해법이 달라질 수 있습니까?

답변

1

org.eclipse.core.runtime의 FileLocator 클래스를 사용하여 번들의 리소스에 대한 URL을 가져올 수 있습니다. 예를 들어

,

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

같은 BundleContext에 당신 활성제에 전달에서 당신은 당신의 번들 객체를 얻을 수 있습니다 (있는 경우). 또는 Platform.getBundle을 사용할 수도 있습니다.

플러그인이 항아리 인 경우 정확하게 URL을 디스크에있는 파일이라고 가정하지 마십시오. URL.openStream을 사용하여 내용을 가져 오거나 FileLocator.toFileURL()을 사용하여 디스크에 파일을 가져올 수 있습니다.

+0

대단히 감사합니다. Andrew. 귀하의 제안이 자리를 잡았습니다! – Daniel

관련 문제