Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Passing XML as input parameter to XSLT Transformer

Passing XML as input parameter to XSLT Transformer

2007-05-21       - By Gaurav Suri
Reply:     1     2  


Hi,

I am trying to pass XML as an input parameter the JAVA trannsformer but am
getting the following error :

Exception stack is:
1. Invalid conversion from 'org.apache.xerces.dom.DeferredElementImpl' to
'node-
set'. (java.lang.RuntimeException)
 com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary:-1
(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/RuntimeException.html)


Root Exception stack trace:
java.lang.RuntimeException: Invalid conversion from
'org.apache.xerces.dom.DeferredElementImpl' to 'node-set'.
       at
com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.runTimeE
rror(Unknown Source)
       at
com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.runTimeE
rror(Unknown Source)


Input XML :

<?xml version="1.0" encoding="UTF-8"?>
<order>
 <clientId>CLT001</clientId>
 <orderId>ORD001</orderId>
 <bill>12.5</bill>
 <deliveryDate>2006-01-11</deliveryDate>
 <location>001</location>
 </order>


Input Parameter to the stylesheet (also an XML) :

<?xml version="1.0" encoding="UTF-8"?>
<locations>
<location>
         <name>001</name>
         <value>Bangalore</value>
       </location>
<location>
         <name>002</name>
         <value>Dellhi</value>
       </location>
 </locations>


Stylesheet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?altova_samplexml C:\Documents and Settings\gaurav_suri\Desktop\Input.xml?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"
standalone="yes"/>
       <xsl:template match="*">
               <client>
                       <xsl:value-of select="clientId"/>
               </client>
               <ordernumber>
                       <xsl:value-of select="orderId"/>
               </ordernumber>
               <deliverydate>
                       <xsl:value-of select="deliveryDate"/>
               </deliverydate>
               <bill>
                       <xsl:value-of select="bill"/>
               </bill>
               <area>
                       <xsl:value-of
select="$ORM/locations/location[name=001]/value"/>
               </area>
       </xsl:template>
</xsl:stylesheet>


Code Snippet :

Source sourceDoc = getXmlSource(src);
           if (sourceDoc == null) return null;

           ResultHolder holder = getResultHolder(returnClass);
           if (holder == null) holder = getResultHolder(src.getClass());

           DefaultErrorListener errorListener = new
DefaultErrorListener(this);
           Transformer transformer = null;
           Object result;
           try
           {
               transformer = (Transformer)transformerPool.borrowObject();

               transformer.setErrorListener(errorListener);
               transformer.setOutputProperty(OutputKeys.ENCODING,
encoding);
               
               //set transformation parameters
               if (transformParameters != null){
                  for(Entry<String,Object> parameter :
transformParameters.entrySet()){
                    transformer.setParameter(parameter.getKey(),
evaluateTransformParameter(parameter.getKey(),parameter.getValue()));
                  }
               }
               
               transformer.transform(sourceDoc, holder.getResult());
               result = holder.getResultObject();

//where evaluateTransformParameter method returns a document built as
follows :


DocumentBuilderFactory documentbuilderfactory =
DocumentBuilderFactory.newInstance();
InputSource inputsource = new InputSource(new StringReader(s));
org.w3c.dom.Document document =
documentbuilderfactory.newDocumentBuilder().parse(inputsource);      
return document;

//s being the input XML parameter as string.


Any pointers for correction..

Regards
Gaurav
--
View this message in context: http://www.nabble.com/Passing-XML-as-input
-parameter-to-XSLT-Transformer-tf3788406.html#a10713473
Sent from the Xalan - J - Users mailing list archive at Nabble.com.