package se.unlogic.standardutils.xml; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.URIResolver; import javax.xml.transform.stream.StreamSource; public class ClassPathURIResolver implements URIResolver { private static final ClassPathURIResolver CLASS_PATH_URI_RESOLVER = new ClassPathURIResolver(); public static ClassPathURIResolver getInstance(){ return CLASS_PATH_URI_RESOLVER; } private static final String PREFIX = "classpath://"; public Source resolve(String href, String base) throws TransformerException { if(href.startsWith(PREFIX) && href.length() > PREFIX.length()){ String classPath = "/" + href.substring(PREFIX.length()); return new StreamSource(this.getClass().getResource(classPath).toString()); }else{ return null; } } }