Hello Experts,
While using the resolver, I came across this following observation which
I wanted to clarify with you.
For the following Catalog file (*/public_cat.xml/*)
/*
*/
resolver resolves uri/
*"http://www.example.relative.com/existing/namespace"*/ to /*"/xsdcollection/existingxsd.xsd"
*/which is as expected. So, the result on Unix is
/"*file:/home/gb133050/temp/xsdcollection/existingxsd.xsd*//"/ where/*
public_cat.xml*/ exists @ /*"file:/home/gb133050/temp/public_cat.xml"*/.
Note the hierarchical path to "existingxsd.xsd" in the result.
Issue arises when I run the same thing on Windows platform. The result
on windows is /*"file:D:/workdloads/xsdcollection/existingxsd.xsd"*/
where /*public_cat.xml*/ exists @
/*"file:D:/workdloads/public_cat.xml"*/. Note the missing /*"/"*/ @ the
starting of the result string /*"file:*///*D:/work..."*/. Though for
human eyes this is very much valid, JAVA treats this path as relative
path (an opaque URI). So, if I construct a new File object (/*File
newFile = new File(new URI(result));*/) I will get the following exception:
/Exception in thread "main" java.lang.IllegalArgumentException: URI is
not hierarchical
at java.io.File.(File.java:335)
at javaapplication1.Main.main(Main.java:37)/
This exception occurs because of the missing /*"/"*/ @ the front.
So, I observe a difference in behavior between Windows and Unix. Is this
observation intended behavior or is it a bug?
Any light on this would be really helpful.
Please reply to me directly.
Thanks much,
-Girish