Search in sources :

Example 1 with XsltExecutable

use of net.sf.saxon.s9api.XsltExecutable in project sirix by sirixdb.

the class TestNodeWrapperS9ApiXSLT method saxonTransform.

/**
 * Transform source document with the given stylesheet.
 *
 * @param xml
 *          Source xml file.
 * @param stylesheet
 *          Stylesheet to transform sourc xml file.
 * @throws SaxonApiException
 *           Exception from Saxon in case anything goes wrong.
 */
@Ignore("Not a test, utility method only")
public void saxonTransform(final File xml, final File stylesheet) throws SaxonApiException {
    final Processor proc = new Processor(false);
    final XsltCompiler comp = proc.newXsltCompiler();
    final XsltExecutable exp = comp.compile(new StreamSource(stylesheet));
    final XdmNode source = proc.newDocumentBuilder().build(new StreamSource(xml));
    final Serializer out = new Serializer();
    out.setOutputProperty(Serializer.Property.METHOD, "xml");
    out.setOutputProperty(Serializer.Property.INDENT, "yes");
    out.setOutputFile(new File(TestHelper.PATHS.PATH1.getFile(), "books1.html"));
    final XsltTransformer trans = exp.load();
    trans.setInitialContextNode(source);
    trans.setDestination(out);
    trans.transform();
}
Also used : Processor(net.sf.saxon.s9api.Processor) StreamSource(javax.xml.transform.stream.StreamSource) XsltTransformer(net.sf.saxon.s9api.XsltTransformer) XsltCompiler(net.sf.saxon.s9api.XsltCompiler) XdmNode(net.sf.saxon.s9api.XdmNode) File(java.io.File) XsltExecutable(net.sf.saxon.s9api.XsltExecutable) Serializer(net.sf.saxon.s9api.Serializer) Ignore(org.junit.Ignore)

Example 2 with XsltExecutable

use of net.sf.saxon.s9api.XsltExecutable in project sirix by sirixdb.

the class TestXSLTTransformation method testTransform.

@Test
public void testTransform() throws Exception {
    final Processor proc = new Processor(false);
    final XsltCompiler compiler = proc.newXsltCompiler();
    try {
        final XsltExecutable exec = compiler.compile(new StreamSource(new File(STYLESHEET)));
        final XsltTransformer transform = exec.load();
        transform.setSource(new StreamSource(new FileInputStream(INPUT)));
        final Serializer serializer = new Serializer();
        final OutputStream out = new ByteArrayOutputStream();
        serializer.setOutputStream(out);
        transform.setDestination(serializer);
        transform.transform();
        final StringBuilder expected = TestHelper.readFile(new File(EXPECTED), false);
        assertEquals("XML files match", expected.toString(), new StringBuilder("<root>").append(out.toString()).append("</root>").toString());
    } catch (final SaxonApiException e) {
        LOGWRAPPER.error(e);
    }
}
Also used : Processor(net.sf.saxon.s9api.Processor) StreamSource(javax.xml.transform.stream.StreamSource) OutputStream(java.io.OutputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) XsltTransformer(net.sf.saxon.s9api.XsltTransformer) XsltCompiler(net.sf.saxon.s9api.XsltCompiler) ByteArrayOutputStream(java.io.ByteArrayOutputStream) File(java.io.File) SaxonApiException(net.sf.saxon.s9api.SaxonApiException) FileInputStream(java.io.FileInputStream) XsltExecutable(net.sf.saxon.s9api.XsltExecutable) Serializer(net.sf.saxon.s9api.Serializer) Test(org.junit.Test)

Example 3 with XsltExecutable

use of net.sf.saxon.s9api.XsltExecutable in project sirix by sirixdb.

the class XSLTEvaluator method call.

@Override
public OutputStream call() {
    final Processor proc = new Processor(false);
    final XsltCompiler comp = proc.newXsltCompiler();
    XsltExecutable exp;
    XdmNode source;
    try {
        final Configuration config = proc.getUnderlyingConfiguration();
        final NodeInfo doc = new DocumentWrapper(mSession, config);
        exp = comp.compile(new StreamSource(mStylesheet));
        source = proc.newDocumentBuilder().build(doc);
        if (mSerializer == null) {
            final Serializer out = new Serializer();
            out.setOutputProperty(Serializer.Property.METHOD, "xml");
            out.setOutputProperty(Serializer.Property.INDENT, "yes");
            out.setOutputStream(mOut);
            mSerializer = out;
        } else {
            mSerializer.setOutputStream(mOut);
        }
        final XsltTransformer trans = exp.load();
        trans.setInitialContextNode(source);
        trans.setDestination(mSerializer);
        trans.transform();
    } catch (final SaxonApiException e) {
        LOGGER.error("Saxon exception: " + e.getMessage(), e);
    } catch (final SirixException e) {
        LOGGER.error("TT exception: " + e.getMessage(), e);
    }
    return mOut;
}
Also used : DocumentWrapper(org.sirix.saxon.wrapper.DocumentWrapper) Processor(net.sf.saxon.s9api.Processor) Configuration(net.sf.saxon.Configuration) NodeInfo(net.sf.saxon.om.NodeInfo) StreamSource(javax.xml.transform.stream.StreamSource) XsltTransformer(net.sf.saxon.s9api.XsltTransformer) SirixException(org.sirix.exception.SirixException) XsltCompiler(net.sf.saxon.s9api.XsltCompiler) XdmNode(net.sf.saxon.s9api.XdmNode) SaxonApiException(net.sf.saxon.s9api.SaxonApiException) XsltExecutable(net.sf.saxon.s9api.XsltExecutable) Serializer(net.sf.saxon.s9api.Serializer)

Example 4 with XsltExecutable

use of net.sf.saxon.s9api.XsltExecutable in project sirix by sirixdb.

the class XMLReduce method reduce.

@Override
public void reduce(final DateWritable paramKey, final Iterable<Text> paramValue, final Context paramContext) throws IOException, InterruptedException {
    final StringBuilder builder = new StringBuilder("<root>");
    for (final Text event : paramValue) {
        System.out.println(event.toString());
        builder.append(event.toString());
    }
    builder.append("</root>");
    // System.out.println(builder.toString());
    final Processor proc = new Processor(false);
    final XsltCompiler compiler = proc.newXsltCompiler();
    try {
        final XsltExecutable exec = compiler.compile(new StreamSource(new File(STYLESHEET)));
        final XsltTransformer transform = exec.load();
        transform.setSource(new StreamSource(new StringReader(builder.toString())));
        final ByteArrayOutputStream out = new ByteArrayOutputStream();
        final Serializer serializer = new Serializer();
        serializer.setOutputStream(out);
        transform.setDestination(serializer);
        transform.transform();
        final String value = out.toString();
        // System.out.println(value);
        paramContext.write(null, new Text(value));
    } catch (final SaxonApiException e) {
        LOGWRAPPER.error(e);
    }
}
Also used : Processor(net.sf.saxon.s9api.Processor) StreamSource(javax.xml.transform.stream.StreamSource) Text(org.apache.hadoop.io.Text) XsltCompiler(net.sf.saxon.s9api.XsltCompiler) ByteArrayOutputStream(java.io.ByteArrayOutputStream) SaxonApiException(net.sf.saxon.s9api.SaxonApiException) XsltExecutable(net.sf.saxon.s9api.XsltExecutable) XsltTransformer(net.sf.saxon.s9api.XsltTransformer) StringReader(java.io.StringReader) File(java.io.File) Serializer(net.sf.saxon.s9api.Serializer)

Aggregations

StreamSource (javax.xml.transform.stream.StreamSource)4 Processor (net.sf.saxon.s9api.Processor)4 Serializer (net.sf.saxon.s9api.Serializer)4 XsltCompiler (net.sf.saxon.s9api.XsltCompiler)4 XsltExecutable (net.sf.saxon.s9api.XsltExecutable)4 XsltTransformer (net.sf.saxon.s9api.XsltTransformer)4 File (java.io.File)3 SaxonApiException (net.sf.saxon.s9api.SaxonApiException)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 XdmNode (net.sf.saxon.s9api.XdmNode)2 FileInputStream (java.io.FileInputStream)1 OutputStream (java.io.OutputStream)1 StringReader (java.io.StringReader)1 Configuration (net.sf.saxon.Configuration)1 NodeInfo (net.sf.saxon.om.NodeInfo)1 Text (org.apache.hadoop.io.Text)1 Ignore (org.junit.Ignore)1 Test (org.junit.Test)1 SirixException (org.sirix.exception.SirixException)1 DocumentWrapper (org.sirix.saxon.wrapper.DocumentWrapper)1