private void doZap(Source source, Result result, Object... params) { if (params.length == 0) { throw new IllegalArgumentException("Expected XSL location in first parameter"); } try { Templates template = resource(params); Transformer transformer = template.newTransformer(); transformer.setURIResolver(resolver); setXsltParameters(transformer, staticParams); setXsltParameters(transformer, resourceParameters(params)); transformer.transform(source, result); } catch (Exception e) { throw new RuntimeException("XSLT processing failed", e); } }