import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.URIResolver;

import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

class Resolver implements URIResolver {
    public static final void main(String[] args) throws Exception {
        System.out.println("Via Templates");
        TransformerFactory tf = TransformerFactory.newInstance();
        tf.setURIResolver(new Resolver());
        Templates temp = tf.newTemplates(new StreamSource(args[0]));
        Transformer t = temp.newTransformer();
        t.transform(new StreamSource(args[1]), new StreamResult(System.out));

        System.out.println("\n\nVia Transformer");
        t = tf.newTransformer(new StreamSource(args[0]));
        t.transform(new StreamSource(args[1]), new StreamResult(System.out));
    }

    public Source resolve(String base, String href) {
        System.out.println("Calling resolve for base == \""
                               + base + "\" and href == \""
                               + href);
        return null;
    }
}
