Hello,
I have a strange problem... I have a XML and a XSL. Sometimes it works,
sometime not....
I'm working with xalan 2.3.4
here is my XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:variable name="uDocuments"
select="//object[object_name='uDocuments']" />
<root>
<UploadRootfolder name="{$uDocuments/object_name}"
id="{$uDocuments/@ID}" isUploadFolder="true">
<xsl:call-template name="createTreeLevel">
<xsl:with-param name="level" select="0" />
<xsl:with-param name="node"
select="//object[i_folder_id=$uDocuments/@ID]" />
</xsl:call-template>
</UploadRootfolder>
<xsl:call-template name="createTreeLevel">
<xsl:with-param name="level" select="0" />
<xsl:with-param name="node"
select="//object[i_folder_id=$uDocuments/i_folder_id and object_name !=
'uDocuments']" />
</xsl:call-template>
</root>
</xsl:template>
<xsl:template name="createTreeLevel">
<xsl:param name="level" />
<xsl:param name="node" />
<xsl:for-each select="$node">
<xsl:sort select="object_name" order="ascending"/>
<xsl:variable name="LevelId" select="@ID" />
<xsl:choose>
<xsl:when test="r_object_type = 'wcm_folder'">
<xsl:choose>
<xsl:when test="a_is_upload_doc_folder = 1">
<Uploadfolder name="{object_name}" id="[EMAIL PROTECTED]"
isUploadFolder="true">
<xsl:call-template name="createTreeLevel">
<xsl:with-param name="level" select="$level" />
<xsl:with-param name="node"
select="//object[i_folder_id=$LevelId]" />
</xsl:call-template>
</Uploadfolder>
</xsl:when>
<xsl:otherwise>
<folder name="{object_name}" id="[EMAIL PROTECTED]">
<xsl:call-template name="createTreeLevel">
<xsl:with-param name="level" select="$level" />
<xsl:with-param name="node"
select="//object[i_folder_id=$LevelId]" />
</xsl:call-template>
</folder>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="wcm_object_type = 'uploaded'">
<Uploaddocument name="{object_name}" id="[EMAIL PROTECTED]"
currentstate="{r_current_state}" language="{wcm_language}">
<xsl:attribute name="isUploaded">
<xsl:choose>
<xsl:when test="wcm_object_type = 'uploaded'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="checkedoutstatus">
<xsl:choose>
<xsl:when test="r_lock_owner != ''">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</Uploaddocument>
</xsl:when>
<xsl:otherwise>
<document name="{object_name}" id="[EMAIL PROTECTED]"
currentstate="{r_current_state}" r_lock_owner="{r_lock_owner}"
language="{wcm_language}">
<xsl:attribute name="checkedoutstatus">
<xsl:choose>
<xsl:when test="r_lock_owner != ''">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="isWorkflowEnabled">
<xsl:choose>
<xsl:when test="isworkflowenabled = 1">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="isUploaded">
<xsl:choose>
<xsl:when test="wcm_object_type = 'uploaded'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</document>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
with that XML it works
<root>
<object ID="0900348b8003df71">
<object_name>LogoCountry_fr_FR.gif</object_name>
<r_object_type>wcm_copy_document</r_object_type>
<r_object_id>0900348b8003df71</r_object_id>
<i_folder_id>0b00348b8003df5f</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>uploaded</wcm_object_type>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df72">
<object_name>LogoCountry_nl_NL.gif</object_name>
<r_object_type>wcm_copy_document</r_object_type>
<r_object_id>0900348b8003df72</r_object_id>
<i_folder_id>0b00348b8003df5f</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>uploaded</wcm_object_type>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0b00348b8003e247">
<object_name>Parfait</object_name>
<r_object_type>wcm_folder</r_object_type>
<r_object_id>0b00348b8003e247</r_object_id>
<i_folder_id>0b00348b8003df60</i_folder_id>
<r_current_state>0</r_current_state>
<a_is_upload_doc_folder>1</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df76">
<object_name>constantlib.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df76</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df70">
<object_name>site_const.asp</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df70</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df6e">
<object_name>siteinfo.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df6e</r_object_id>
<i_folder_id>0b00348b8003df64</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df6f">
<object_name>sitevisual.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df6f</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0b00348b8003df60">
<object_name>uDocuments</object_name>
<r_object_type>wcm_folder</r_object_type>
<r_object_id>0b00348b8003df60</r_object_id>
<i_folder_id>0c00348b8003df5e</i_folder_id>
<r_current_state>0</r_current_state>
<a_is_upload_doc_folder>1</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003e211">
<object_name>yo_fr_FR.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003e211</r_object_id>
<i_folder_id>0c00348b8003df5e</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>page</wcm_object_type>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language>fr_FR</wcm_language>
</object>
<object ID="0900348b8003df74">
<object_name>z_20060321a.css</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df74</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
</root>
Result
<root>
<UploadRootfolder isUploadFolder="true" id="0b00348b8003df60"
name="uDocuments">
<Uploadfolder isUploadFolder="true" id="0b00348b8003e247"
name="Parfait"/>
</UploadRootfolder>
<document language="fr_FR" r_lock_owner="" currentstate="3"
id="0900348b8003e211" name="yo_fr_FR.xml" checkedoutstatus="false"
isWorkflowEnabled="false" isUploaded="false"/>
</root>[/code]
[b]with that one it does not[/b][code]<root>
<object ID="0b00348b8003e248">
<object_name>FolderVide</object_name>
<r_object_type>wcm_folder</r_object_type>
<r_object_id>0b00348b8003e248</r_object_id>
<i_folder_id>0b00348b8003df60</i_folder_id>
<r_current_state>0</r_current_state>
<a_is_upload_doc_folder>1</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df71">
<object_name>LogoCountry_fr_FR.gif</object_name>
<r_object_type>wcm_copy_document</r_object_type>
<r_object_id>0900348b8003df71</r_object_id>
<i_folder_id>0b00348b8003df5f</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>uploaded</wcm_object_type>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df72">
<object_name>LogoCountry_nl_NL.gif</object_name>
<r_object_type>wcm_copy_document</r_object_type>
<r_object_id>0900348b8003df72</r_object_id>
<i_folder_id>0b00348b8003df5f</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>uploaded</wcm_object_type>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df76">
<object_name>constantlib.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df76</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df70">
<object_name>site_const.asp</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df70</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df6e">
<object_name>siteinfo.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df6e</r_object_id>
<i_folder_id>0b00348b8003df64</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003df6f">
<object_name>sitevisual.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df6f</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0b00348b8003df60">
<object_name>uDocuments</object_name>
<r_object_type>wcm_folder</r_object_type>
<r_object_id>0b00348b8003df60</r_object_id>
<i_folder_id>0c00348b8003df5e</i_folder_id>
<r_current_state>0</r_current_state>
<a_is_upload_doc_folder>1</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>1</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
<object ID="0900348b8003e211">
<object_name>yo_fr_FR.xml</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003e211</r_object_id>
<i_folder_id>0c00348b8003df5e</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type>page</wcm_object_type>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language>fr_FR</wcm_language>
</object>
<object ID="0900348b8003df74">
<object_name>z_20060321a.css</object_name>
<r_object_type>wcm_document</r_object_type>
<r_object_id>0900348b8003df74</r_object_id>
<i_folder_id>0b00348b8003df61</i_folder_id>
<r_current_state>3</r_current_state>
<a_is_upload_doc_folder>0</a_is_upload_doc_folder>
<wcm_object_type/>
<isworkflowenabled>0</isworkflowenabled>
<r_lock_owner/>
<wcm_language/>
</object>
</root>
Result:
0 [main] WARN com.documentum.fc.common.DfLogger - Failed to load
log4j.properties. Using default log4j configuration
Warning: popContextNodeList when stack is empty!
2812 [main] ERROR com.aventis.wcm.xmlhandler.Transformation -
javax.xml.transform.TransformerException: java.lang.NullPointerException
; Line#: 30; Column#: 34
javax.xml.transform.TransformerException: java.lang.NullPointerException
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2263)
at
org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
at
org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:273)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2081)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1137)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:600)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1054)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1032)
at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:599)
at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
at
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)
Caused by: java.lang.NullPointerException
at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:250)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at
org.apache.xpath.axes.FilterExprWalker.getNextNode(FilterExprWalker.java:235)
at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:400)
at
org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:165)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:538)
at org.apache.xpath.objects.XNodeSet.equals(XNodeSet.java:736)
at org.apache.xpath.operations.Equals.operate(Equals.java:84)
at org.apache.xpath.operations.Operation.execute(Operation.java:150)
at
org.apache.xpath.axes.PredicatedNodeTest.executePredicates(PredicatedNodeTest.java:326)
at
org.apache.xpath.axes.PredicatedNodeTest.acceptNode(PredicatedNodeTest.java:458)
at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:264)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:474)
at
org.apache.xalan.templates.ElemForEach.sortNodes(ElemForEach.java:340)
at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:383)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
... 16 more
---------
java.lang.NullPointerException
at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:250)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at
org.apache.xpath.axes.FilterExprWalker.getNextNode(FilterExprWalker.java:235)
at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:400)
at
org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:165)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:538)
at org.apache.xpath.objects.XNodeSet.equals(XNodeSet.java:736)
at org.apache.xpath.operations.Equals.operate(Equals.java:84)
at org.apache.xpath.operations.Operation.execute(Operation.java:150)
at
org.apache.xpath.axes.PredicatedNodeTest.executePredicates(PredicatedNodeTest.java:326)
at
org.apache.xpath.axes.PredicatedNodeTest.acceptNode(PredicatedNodeTest.java:458)
at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:264)
at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:474)
at
org.apache.xalan.templates.ElemForEach.sortNodes(ElemForEach.java:340)
at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:383)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
at
org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:273)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2081)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1137)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:600)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1054)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1032)
at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:599)
at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
at
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)
com.aventis.wcm.exception.WcmSystemException: error while applying
stylesheet
at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:605)
at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
at
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)
Thanks for your help
Patrick
--
View this message in context:
http://www.nabble.com/-xalan-Transform-Error-t1323380.html#a3530719
Sent from the Xalan - J - Users forum at Nabble.com.