[xsl] Saxon setParameter() of node-set problems

Subject: [xsl] Saxon setParameter() of node-set problems
From: "Shakeel Mahate" <shakeelmahate@xxxxxxxxxxx>
Date: Fri, 23 Mar 2001 10:50:18 -0500
I want to send a NodeSet to a Saxon transformer via the setParameter()
function.

I have a org.w3c.dom.Document object in memory which I need to send to the
transformer before calling transform.

So, here's the problem, I have not been able to figure out how to transform
org.jdom.Document into a node set as required by Saxon transformer.

I know how to output an org.w3c.dom.Document from a org.jdom.Document

For Xalan, I have tried the following:

XNodeSet nodeSet = new XNodeSet(dom);
transformer.setParameter("referenceXml", nodeSet);

but the xalan:evaluate or any XPath expr on the the parameter referenceXml
do not work.

I know the problem isnt with my XPath expressions because if I set the value
of the parameter, via
<xsl:parameter name="referenceXml">
  <xsl:value-of select="document('ref.xml')"/>
</xsl:parameter>
then all of my XPath expressions and xalan:evaluate(....) work correctly

But now when I send the parameter value as shown above, none of the XPath
expressions evaluate.

I want to give up on Xalan and try Saxon 6.2.2, but I dont know how to
convert the org.w3c.dom.Document into a node-set expression or DocumentInfo
as expected by
Saxon.

I have tried the following

Builder treeBuilder = new TreeBuilder();
DOMDriver driver = new DOMDriver();
driver.setContentHandler(treeBuilder); // This line does not compile, since
treeBuilder is not a ContentHandler and I have not been able to find an
appropriate ContentHandler

Next I tried the following
InputSource is = new InputSource("dummy");
DOMDriver driver = new DOMDriver();
driver.setStartNode(dom);
is.setSystemId("dummy");
driver.setSystemId("dummy");
SAXSource saxSource = new SAXSource(driver, is);
Builder treeBuilder = new TreeBuilder()
DocumentInfo rootNode = treeBuilder.build(saxSource);
.... code deleted...
transformer.setParameter("referenceXML", rootNode);
......
transformer.transform(streamSource, streamResult);

I get a NullPointerException
at com.icl.saxon.ContentEmitter.getNameCode(ContentEmitter.java:128)
at com.icl.saxon.ContentEmitter.startElement(ContentEmitter.java:118)
at com.icl.saxon.DOMDriver.walkNode(DOMDriver.java:275)
at com.icl.saxon.DOMDriver.parse(DOMDriver.java:191)
at com.icl.saxon.DOMDriver.parse(DOMDriver.java:162)
at com.icl.saxon.Builder.build(Builder.java:263)
at test.TestXPath.main(TestXPath.java:103)

Mike, please help me.

-Shakeel

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread