I've been working with Apache FOP for converting XML (held on a BaseX instance) to PDF.  Currently this involves saving nodes from the BaseX database to pass into a local FopFactory - not ideal.  Have tried to pull one of the documents out and get a 500 error, then tried referencing direct files - which also errors:

import module namespace fop = 'org.basex.modules.fop.FOP';
let $xml := db:open('billing_run_435')/CommercialDocument[@id="203545"] - if returned does show xml
let $xsl := xslt:transform('/home/chris/Downloads/xml/billing_invoice_241040.xml', '/etc/xmlmapper/pdf_invoice.fo') - hard coded for debugging
return $xml

>From the log:

Version: BaseX 8.3.1
Java: Oracle Corporation, 1.7.0_25
OS: Linux, amd64
Stack Trace:
java.lang.NullPointerException
        at org.basex.query.func.xslt.XsltTransform.transform(XsltTransform.java:110)
        at org.basex.query.func.xslt.XsltTransform.transform(XsltTransform.java:59)
        at org.basex.query.func.xslt.XsltTransform.item(XsltTransform.java:37)
        at org.basex.query.expr.ParseExpr.value(ParseExpr.java:64)
        at org.basex.query.QueryContext.value(QueryContext.java:423)
        at org.basex.query.expr.gflwor.Let$LetEval.next(Let.java:187)
        at org.basex.query.expr.gflwor.GFLWOR$1.next(GFLWOR.java:95)
        at org.basex.query.MainModule$1.next(MainModule.java:114)
        at org.basex.query.func.StandardFunc.cache(StandardFunc.java:404)
        at org.basex.query.func.xquery.XQueryEval.eval(XQueryEval.java:129)
        at org.basex.query.func.xquery.XQueryEval.eval(XQueryEval.java:59)
        at org.basex.query.func.xquery.XQueryEval.iter(XQueryEval.java:44)
        at org.basex.query.func.fn.FnSerialize.item(FnSerialize.java:22)
        at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:43)
        at org.basex.query.QueryContext.iter(QueryContext.java:412)
        at org.basex.query.expr.IterMap$1.next(IterMap.java:42)
        at org.basex.query.MainModule$1.next(MainModule.java:114)
        at org.basex.query.func.StandardFunc.cache(StandardFunc.java:404)
        at org.basex.query.func.xquery.XQueryEval.eval(XQueryEval.java:129)
        at org.basex.query.func.xquery.XQueryEval.eval(XQueryEval.java:59)
        at org.basex.query.func.xquery.XQueryEval.iter(XQueryEval.java:44)
        at org.basex.query.expr.TypeCheck.iter(TypeCheck.java:87)
        at org.basex.query.QueryContext.iter(QueryContext.java:412)
        at org.basex.query.expr.If.iter(If.java:128)
        at org.basex.query.MainModule.iter(MainModule.java:110)
        at org.basex.query.QueryContext.iter(QueryContext.java:351)
        at org.basex.http.restxq.RestXqResponse.create(RestXqResponse.java:55)
        at org.basex.http.restxq.RestXqModule.process(RestXqModule.java:101)
        at org.basex.http.restxq.RestXqFunction.process(RestXqFunction.java:109)
        at org.basex.http.restxq.RestXqServlet.run(RestXqServlet.java:44)
        at org.basex.http.BaseXServlet.service(BaseXServlet.java:64)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

Both '/home/chris/Downloads/xml/billing_invoice_241040.xml' and '/etc/xmlmapper/pdf_invoice.fo' exist as I use them in a local java fopfactory which processes them fine.

 

The information contained in the email and any files transmitted with it is confidential and intended for the addressee only. If you have received this email in error please accept our apologies and notify the originator. Any disclosure, copying, distribution or any other use of this communication is strictly prohibited and may be unlawful. We reserve the right to monitor and intercept communications for lawful business purposes.

 

Wireless Innovation Ltd , Unit D2, Churcham Business Park, Churcham, Gloucestershire, GL2 8AX, Great Britain.

Company Registration Number 5240202, Place of Registration Companies House Cardiff.