"This may be kind of a backwards way to do it, like there should be a
real way to solve the problem, but what about using the file at the url
instead of in the file tree. Ie the schemas stuff is always going to
be public, and instead of calling getDataDir you can call
Requests.getBaseUrl() (would probably have to change the method
signature of validateSLD to use the servlet request instead of the
context), and then add on schemas/sld. I think you'll have to change
the xerces validation method - to get it to recognize the 'remote'
file, instead of one on the path. Looking at the code it actually
looks like the xerces stuff uses a Url anyways to set the schema
location, and digging into it, it looks like we go from Url -> String,
and tack that on, which is probably why it fails. So the http://
location that results from Requests.getBaseUrl() should likely do a lot
better. The other option would be to fix up the proper escaping when
we go File -> String."