X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxml%2FClasspathUriResolver.java;h=6ee7389e4014256d03c67acaa1a7d260e4971f7a;hb=df850821cf26ca07ef2474d4d2cabb61e9104291;hp=5fe5afb1e9a0c452c04f66b3b91d334de829d945;hpb=ddd261f331280640c5b53c7128230b629ebcd268;p=utils diff --git a/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java b/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java index 5fe5afb1..6ee7389e 100644 --- a/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java +++ b/support/general/src/main/java/org/wamblee/xml/ClasspathUriResolver.java @@ -1,12 +1,12 @@ /* - * 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. @@ -15,24 +15,27 @@ */ 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; import javax.xml.transform.URIResolver; import javax.xml.transform.stream.StreamSource; - /** * URI resolver that resolves stylesheets through the classpath. */ -public class ClasspathUriResolver implements URIResolver { -/** +public class ClasspathUriResolver implements URIResolver, LSResourceResolver { + /** * Constructs the resolver. - * + * */ public ClasspathUriResolver() { // Empty. @@ -40,19 +43,9 @@ public class ClasspathUriResolver implements URIResolver { /* * (non-Javadoc) - * + * * @see javax.xml.transform.URIResolver#resolve(java.lang.String, - * java.lang.String) - */ - /** - * DOCUMENT ME! - * - * @param aHref DOCUMENT ME! - * @param aBase DOCUMENT ME! - * - * @return DOCUMENT ME! - * - * @throws TransformerException DOCUMENT ME! + * java.lang.String) */ public Source resolve(String aHref, String aBase) throws TransformerException { @@ -62,7 +55,28 @@ public class ClasspathUriResolver implements URIResolver { return new StreamSource(xslt.getInputStream()); } catch (IOException e) { throw new TransformerException( - "Could not get XSLT style sheet in classpath '" + aHref + "'", e); + "Could not get XSLT style sheet in classpath '" + aHref + "'", + 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; + } + + + } + }