call resolver with file: prefix (as directed by csalter) and strip the prefix on return
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
index c978800..e50f758 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
@@ -176,7 +176,19 @@
 		}
 
 		public String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks) {
-			return URIResolverPlugin.createResolver().resolve(FILE_PREFIX + baseReference, null, uri);
+			boolean usePrefix = baseReference != null && baseReference.startsWith(FILE_PREFIX);
+			String reference = null;
+			if (usePrefix) {
+				reference = baseReference;
+			}
+			else {
+				reference = FILE_PREFIX + baseReference;
+			}
+			String result = URIResolverPlugin.createResolver().resolve(baseReference, null, uri);
+			if (!usePrefix && result.startsWith(FILE_PREFIX) && result.length() > FILE_PREFIX.length()) {
+				result = result.substring(FILE_PREFIX.length());
+			}
+			return result;
 		}
 
 		public IProject getProject() {