xml - SAS proc XSL error -


i have xml file transform using populated xsl sheet. sas has proc xsl should able perfrom task, instead following error

error: javax.xml.transform.transformerconfigurationexception: failed compile stylesheet. 6 errors detected. error: java.io.ioexception: pipe closed

has else encountered error this? java error related sas or problem xsl file (see full file below).``

<?xml version="1.0"?>  -<xsl:stylesheet xmlns:d7p1="http://www.w3.org/2001/xmlschema" xmlns:d5p1="http://www.itron.com/ami/2008/10/events" xmlns:d3p1="http://www.itron.com/ami/2008/10/common" xmlns:d2p1="http://www.itron.com/ami/2008/10/data" xmlns:i="http://www.w3.org/2001/xmlschema-instance" xmlns:itron="http://schemas.datacontract.org/2004/07/itron.ami.amiservicetest.hosting" xmlns="http://www.w3.org/tr/rec-html40" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:local="#local-functions" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0">   -<xsl:template match="/">  <div>ami data</div>   -<xsl:for-each select="xmlroot/itron:datasubscriberitem">   -<div>  <xsl:variable select="itron:dataarrivedinput/d2p1:readdatacollection/d2p1:readdata/d2p1:loadprofilechannels/d2p1:loadprofilechannel/d2p1:timedataend" name="endtime"/> time data end:  <xsl:value-of select="$endtime"/>  </div>   -<div>  <xsl:variable select="itron:dataarrivedinput/d2p1:readdatacollection/d2p1:readdata/d2p1:loadprofilechannels/d2p1:loadprofilechannel/d2p1:pulsemultiplier" name="pulsmult"/> pulse multiplier:  <xsl:value-of select="$pulsmult"/>  </div>   -<div> meter id:  <xsl:value-of select="itron:dataarrivedinput/d2p1:readdatacollection/d2p1:readdata/d2p1:identifier"/>  </div>   -<table cellspacing="0" cellpadding="0" border="1">   -<tr style="background-color:#c0c0c0; font-weight:bold">  <td>num</td>  <td>vh(a)</td>  <td>max v(a)</td>  <td>min v(a)</td>  <td>vh(c)</td>  <td>max v(c)</td>  <td>min v(c)</td>  <td>timestamp</td>  </tr>  <xsl:variable select="count(itron:dataarrivedinput/d2p1:readdatacollection/d2p1:readdata/d2p1:loadprofilechannels/d2p1:loadprofilechannel[1]/d2p1:intervalvalues/d2p1:intervalvalue)" name="numpnts"/>   -<div> number of points:  <xsl:value-of select="$numpnts"/>  </div>   -<xsl:for-each select="itron:dataarrivedinput/d2p1:readdatacollection/d2p1:readdata/d2p1:loadprofilechannels/d2p1:loadprofilechannel[1]/d2p1:intervalvalues/d2p1:intervalvalue">  <xsl:variable select="position()" name="inum"/>  <xsl:variable select="../../d2p1:timedataend" name="endtime2"/>   -<tr>   -<td>  <xsl:value-of select="$inum"/>  </td>  <xsl:variable select="d2p1:channelvalue" name="vha"/>   -<td>  <!--<xsl:value-of select="$vha*$pulsmult"/>-->   <xsl:value-of select="format-number($vha*$pulsmult,"0.###")"/>  </td>  <xsl:variable select="../../../d2p1:loadprofilechannel[2]/d2p1:intervalvalues/d2p1:intervalvalue[$inum]/d2p1:channelvalue" name="vmaxa"/>   -<td>  <xsl:value-of select="format-number($vmaxa*$pulsmult,"0.###")"/>  </td>  <xsl:variable select="../../../d2p1:loadprofilechannel[3]/d2p1:intervalvalues/d2p1:intervalvalue[$inum]/d2p1:channelvalue" name="vmina"/>   -<td>  <xsl:value-of select="format-number($vmina*$pulsmult,"0.###")"/>  </td>  <xsl:variable select="../../../d2p1:loadprofilechannel[4]/d2p1:intervalvalues/d2p1:intervalvalue[$inum]/d2p1:channelvalue" name="vhc"/>   -<td>  <xsl:value-of select="format-number($vhc*$pulsmult,"0.###")"/>  </td>  <xsl:variable select="../../../d2p1:loadprofilechannel[5]/d2p1:intervalvalues/d2p1:intervalvalue[$inum]/d2p1:channelvalue" name="vmaxc"/>   -<td>  <xsl:value-of select="format-number($vmaxc*$pulsmult,"0.###")"/>  </td>  <xsl:variable select="../../../d2p1:loadprofilechannel[6]/d2p1:intervalvalues/d2p1:intervalvalue[$inum]/d2p1:channelvalue" name="vminc"/>   -<td>  <xsl:value-of select="format-number($vminc*$pulsmult,"0.###")"/>  </td>   -<td>  <xsl:variable select="concat(substring($endtime2, 1,10), ' ', substring($endtime2, 12,5))" name="sdts"/>  <xsl:value-of select="local:timecalc($sdts, $inum, $numpnts)"/>  </td>  </tr>  </xsl:for-each>  </table>  <hr/>  </xsl:for-each>  </xsl:template>   -<msxsl:script language="vbscript" implements-prefix="local">  <![cdata[ function timecalc(et, pt, tp) sdt1 = cdate(et) sdt = dateadd("n", -(tp-pt)*5, sdt1) ttr = padout(month(sdt)) & "/" & padout(day(sdt)) & "/" & year(sdt)& " " & padout(hour(sdt)-4) & ":" & padout(minute(sdt)) timecalc = ttr end function function padout(n) if n < 10 padout = "0" & n else padout = n end if end function ]]>  </msxsl:script>  </xsl:stylesheet> 

here sas code

proc xsl in='c:\sas files\input.xml'     out='c:\sas files\output.xml'     xsl='c:\sas files\stylesheet.xsl';     run; 

use different quotes within expression.

use

select="format-number($vha*$pulsmult,'0.###')" 

instead of

select="format-number($vha*$pulsmult,"0.###")" 

Comments