xsl-list
[Top] [All Lists]

RE: Microsoft's .Net XML 'System.Xml.Xsl.XslTransform' and Scripting

2003-01-14 13:25:24


As the error pointa out VBScript is not supported under .NET use "VB"
instead.

System.Xml.Xsl.XsltCompileException: file:///c:/Program Files/eXcelon
Corp/Stylus Studio/examples/dotnet.xsl(17,4) :
 ---> System.Xml.Xsl.XsltException: The scripting language 'vbscript' is
not supported.   
        at System.Xml.Xsl.ContainerAction.AddScript(Compiler compiler)

        at
System.Xml.Xsl.ContainerAction.CompileTopLevelElements(Compiler
compiler)    
        at System.Xml.Xsl.ContainerAction.CompileDocument(Compiler
compiler, Boolean inInclude)    
        at System.Xml.Xsl.RootActionDbg.Compile(Compiler compiler)    
        at System.Xml.Xsl.DbgCompiler.CreateRootAction()  

Ivan


-----Original Message-----
From: John Aschenbrenner [mailto:jaschenbrenner(_at_)ignitionmts(_dot_)com] 
Sent: Tuesday, January 14, 2003 1:21 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Microsoft's .Net XML 
'System.Xml.Xsl.XslTransform' and Scripting


Has anyone been able to get the above .Net assembly to work 
with XSL that contains script.  In the past I have been able 
to embed VB & Java Script in a CDATA section in the XSL file 
and have it work fine using MSXML.  Does anyone know if this 
still works and if so how?  I have not been able to get it to 
work with the following example.

<!-- Source file -->
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <row theDate="2003-01-14"/>
</root>

<!-- Transform file -->
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' 
xmlns:msxsl='urn:schemas-microsoft-com:xslt' 
xmlns:var='urn:var' 
xmlns:user='urn:user' 
exclude-result-prefixes='msxsl var user'
version='1.0'>
<xsl:output method="html" encoding="utf-8"/>
  <xsl:template match="root">
    <html>
      <head>
        <title></title>
      </head>
      <body>
        <xsl:variable name="myDate" select="row/@theDate"/>
        The date is 
        <xsl:value-of select="$myDate"/><br/>
        
        <xsl:variable name='var:addDate' 
select='user:mydateadd("d", "15", string($myDate))'/>
        Add 15 days to that date = 
        <xsl:value-of select="$var:addDate"/><br/>        
      </body>
    </html>
  </xsl:template>
  
  <!-- VB Script function to add to the date -->
  <msxsl:script language='VBScript' implements-prefix='user'>
      <![CDATA[
      Function MyDateAdd(Interval, Number, TheDate)
  
              Dim sumDate
              Dim myDate(2)
              
              sumDate = DateAdd(CStr(Interval), CDbl(Number),
CDate(TheDate))
              
              ' necessary to do some string manipulation 
because the DateAdd func returns wrong format
              myDate(0) = DatePart("yyyy", CDate(sumDate))
              myDate(1) = DatePart("m", CDate(sumDate))
              If Len(myDate(1)) = 1 Then myDate(1) = "0" & myDate(1)
              myDate(2) = DatePart("d", CDate(sumDate))
              If Len(myDate(2)) = 1 Then myDate(2) = "0" & myDate(2)
              MyDateAdd = Join(myDate, "-")
              
      End Function
      ]]>
  </msxsl:script>
      
</xsl:stylesheet>

As I said this works fine when using MSXML.  However when 
using 'System.Xml.Xsl.XslTransform' an exception is thrown 
when you load the transform document.  
Is this functionality no longer supported in the 
'System.Xml.Xsl.XslTransform' assembly?


Thank you,
John Aschenbrenner
Ignition Mortgage Technology Solutions, Inc. 
jaschenbrenner(_at_)ignitionmts(_dot_)com
Ph: (253)858-8955 x 239
http://www.ignitionmts.com




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>