/*
- * Copyright 2005 the original author or authors.
- *
+ * Copyright 2005-2010 the original author or authors.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*/
package org.wamblee.xml;
+import org.w3c.dom.ls.DOMImplementationLS;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSResourceResolver;
import org.wamblee.io.ClassPathResource;
import org.wamblee.io.InputResource;
import java.io.IOException;
+import java.io.InputStream;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
/**
* URI resolver that resolves stylesheets through the classpath.
*/
-public class ClasspathUriResolver implements URIResolver {
+public class ClasspathUriResolver implements URIResolver, LSResourceResolver {
/**
* Constructs the resolver.
*
e);
}
}
+
+ @Override
+ public LSInput resolveResource(String aType, String aNamespaceURI,
+ String aPublicId, String aSystemId, String aBaseURI) {
+ try {
+ InputStream xslt = new ClassPathResource(aSystemId)
+ .getInputStream();
+ DOMImplementationLS impl = DomUtils.getDomImplementationLS();
+ LSInput input = impl.createLSInput();
+ input.setPublicId(aPublicId);
+ input.setSystemId(aSystemId);
+ input.setByteStream(xslt);
+ return input;
+ } catch (IOException e) {
+ return null;
+ }
+
+
+ }
+
}