Hi Kevin, thanks for the prompt reply. I have found an alternative solution to my problem. Namely:
<xsl:template name="notused"> <xsl:apply-templates select="//[EMAIL PROTECTED]'coveringletter']"/> <xsl:apply-templates select="//[EMAIL PROTECTED]'statement']"/> </xsl:template> The XML trees being matched by these statements is massive and full of all sorts not just text. I wanted to find a way of having these xsl elements in the stylesheet but to avoid them having an affect on the output! The above solution seems to work a lot better than the xsl:comment approach. Thanks again, Chris Kevin Cormier-2 wrote: > > Hi Chris, > > In your message, you said "Now I realise that it might seem like a strange > thing to do, but I really need to be able to place xsl elements inside an > xsl:comment." I'm not quite sure what you mean by that. You are allowed > to use xsl:apply-templates within a comment, but the invoked templates > must > produce text nodes only. It would be an error to use xsl:element inside a > comment, though Xalan would ignore it and just not output the element. > > See the XSLT 1.0 spec, section 7.4: "It is an error if instantiating the > content of xsl:comment creates nodes other than text nodes. An XSLT > processor may signal the error; if it does not signal the error, it must > recover by ignoring the offending nodes together with their content." > (http://www.w3.org/TR/xslt#section-Creating-Comments) > > In any case, there should not be a NullPointerException. Please open a > bug > on JIRA, and try again to whittle down the stylesheet to a small example > that you can share with us. I created a small stylesheet using the > snippet > you gave, but I didn't see any NPE with it. > > > Kevin Cormier > Software Developer, XSLT Development > E-mail: [EMAIL PROTECTED] > > > > > cbowditch > <[EMAIL PROTECTED] > otmail.com> To > xalan-j-users@xml.apache.org > 01/08/2007 10:17 cc > AM > Subject > NullPointerException > > > > > > > > > > > > Hi, > > I have a xsl:xstylesheet that crashes in both 2.6.0 and 2.7.0 with a NPE. > Heres the stack trace: > > javax.xml.transform.TransformerException: java.lang.NullPointerException > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2341) > at > org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 > ) > at > org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. > java:247) > at > org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemFor > Each.java:420) > at > org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:259) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java > :338) > at > org.apache.xalan.templates.ElemElement.execute(ElemElement.java:287) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 > ) > at > org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. > java:247) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:140) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:161) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.transformer.TransformerImpl.transformToString(Transf > ormerImpl.java:2019) > at > org.apache.xalan.templates.ElemComment.execute(ElemComment.java:85) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran > sformerImpl.java:2202) > at > org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme > rImpl.java:1276) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:673) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:1192) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:1170) > at org.apache.xalan.xslt.Process.main(Process.java:987) > Caused by: java.lang.NullPointerException > at > org.apache.xml.serializer.SerializerBase.getPrefix(SerializerBase.jav > a:841) > at > org.apache.xalan.templates.ElemAttribute.resolvePrefix(ElemAttribute. > java:130) > at > org.apache.xalan.templates.ElemElement.execute(ElemElement.java:240) > at > org.apache.xalan.templates.ElemAttribute.execute(ElemAttribute.java:1 > 07) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > ... 60 more > --------- > java.lang.NullPointerException > at > org.apache.xml.serializer.SerializerBase.getPrefix(SerializerBase.jav > a:841) > at > org.apache.xalan.templates.ElemAttribute.resolvePrefix(ElemAttribute. > java:130) > at > org.apache.xalan.templates.ElemElement.execute(ElemElement.java:240) > at > org.apache.xalan.templates.ElemAttribute.execute(ElemAttribute.java:1 > 07) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 > ) > at > org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. > java:247) > at > org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemFor > Each.java:420) > at > org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:259) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java > :338) > at > org.apache.xalan.templates.ElemElement.execute(ElemElement.java:287) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 > ) > at > org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. > java:247) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:140) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:161) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( > ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla > tes.java:177) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.transformer.TransformerImpl.transformToString(Transf > ormerImpl.java:2019) > at > org.apache.xalan.templates.ElemComment.execute(ElemComment.java:85) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul > t.java:682) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr > ansformerImpl.java:2336) > at > org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran > sformerImpl.java:2202) > at > org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme > rImpl.java:1276) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:673) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:1192) > at > org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp > l.java:1170) > at org.apache.xalan.xslt.Process.main(Process.java:987) > > I did a search in JIRA but couldn't see anything similar. It appears to be > related to the following in my stylesheet: > > <xsl:comment> > <xsl:apply-templates select="//[EMAIL PROTECTED]'coveringletter']"/> > <xsl:apply-templates select="//[EMAIL PROTECTED]'statement']"/> > </xsl:comment> > > If I comment this out then the transform doesn't throw a NPE. My XML and > stylesheet are quite big and also confidential so I can't post it here. I > did try creating a cut down version but the NPE didnt occur. Now I realise > that it might seem like a strange thing to do, but I really need to be > able > to place xsl elements inside an xsl:comment. Can anyone offer any further > insight? > > Thanks, > > Chris > -- > View this message in context: > http://www.nabble.com/NullPointerException-tf2939928.html#a8219739 > Sent from the Xalan - J - Users mailing list archive at Nabble.com. > > > > > -- View this message in context: http://www.nabble.com/NullPointerException-tf2939928.html#a8221633 Sent from the Xalan - J - Users mailing list archive at Nabble.com.