1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.xml;
17
18 import java.net.URL;
19
20 import javax.xml.transform.Source;
21 import javax.xml.transform.TransformerException;
22 import javax.xml.transform.URIResolver;
23 import javax.xml.transform.sax.SAXSource;
24
25 import org.xml.sax.InputSource;
26
27
28
29
30
31
32
33
34
35 class ClasspathUriResolver implements URIResolver {
36
37 private final URIResolver standardResolver;
38
39 public ClasspathUriResolver(URIResolver resolver) {
40 super();
41 standardResolver = resolver;
42 }
43
44
45
46
47
48
49 @Override
50 public Source resolve(String href, String base) throws TransformerException {
51 ClassLoader cl = getClass().getClassLoader();
52 URL url = cl.getResource(href);
53 if (url != null) {
54 SAXSource saxSource = new SAXSource();
55 saxSource.setInputSource(new InputSource(url.toString()));
56 saxSource.setSystemId(url.toString());
57 return saxSource;
58 } else {
59 return standardResolver.resolve(href, base);
60 }
61 }
62
63 }