You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2002/10/03 11:11:07 UTC
DO NOT REPLY [Bug 13237] New: -
setParameter() does not work when using transformation chaining
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13237>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13237
setParameter() does not work when using transformation chaining
Summary: setParameter() does not work when using transformation
chaining
Product: XalanJ2
Version: 2.4Dx
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Normal
Priority: Other
Component: org.apache.xalan.transformer
AssignedTo: xalan-dev@xml.apache.org
ReportedBy: robbie.ceulemans@kbc.be
When using transformation chaining, the setParameter()-method does not work.
The parameter is not passed to the stylesheet. When just using a normal
transformation (not chaining) it works fine. The difference is that for
chaining, the TransformerIdentityImpl is used instead of the TransformerImpl.
In the TransformerIdentityImpl, the parameter is just put in a Hashtable and
nothing is done with it afterwards.
example:
SAXTransformerFactory stf = (SAXTransformerFactory)
TransformerFactory.newInstance();
XMLFilter filter = stf.newXMLFilter(new StreamSource("test.xslt"));
StreamResult sr = new StreamResult(System.out);
Transformer transformer = stf.newTransformer();
SAXSource transformSource = new SAXSource(filter, new InputSource
("test.xml"));
transformer.setParameter("testParam", "value");
transformer.transform(transformSource, sr);
I made it work by hacking into Xalan:
- add a getter method in the TrAXFilter class for the m_transformer field.
- after creating an XMLFilter from the SAXTransformerFactory, do the
following:
Transformer transformer = ((TrAXFilter)filter).getTransformer();
transformer.setParameter("testParam", "value");