While fixing the identification of service xml I found that the code completion is broken in service.xml
It looks like the code is searching for code completions manually and assumes way too much about what the searchengine can/should find.
e.g. PackageTypeSearcher.getPackage() assumes only one packagefragment per name will be found, but that is not the case if you have multiple projects with the same jar or simply uses the same package name in diffeerent projects.
One way to solve it is to use the built in codecompetlion in JDT - an example of that is to be found in CompletionHelper.java in the hibernate plugins.