Home             Free Software             Software Support             Training             Conferences                    

  Stonebroom.XSLTransform Technical Support

The product support pages contain information about the topics which arise most frequently. If you need more help or wish to report a problem with XSLTransform or any of our other products please mail us directly at support@stonebroom.com. You can also use the contact details on the home page to submit comments, suggestions, or technical queries.

Using XSLTransform under the .NET Framework.

The XSLTransform component is not specifically designed for use under the Microsoft .NET Framework. It is a standard COM DLL, and so will require you to run any managed code application or ASP.NET page that uses it in "compatibility" mode (i.e. include AspCompat="true" in the <%@Page ... %> directive). Alternatively you can use the .NET TLBIMP utility to create a managed code wrapper for the component. However, please note that we cannot provide support for issues that arise in conjunction with using the component within a .NET application.

Opening an XML document from a remote location.

If you have problems accessing documents (XML files or stylesheets) from a remote location that is specified with the http:// prefix, you can take advantage of the XMLHTTP object that is built into MSXML. Use it to fetch the document and expose it as a string that you then pass to the the XSLTransform component:

strURL = "http://www.your-url.com/path/filename.xml"
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", strURL, False
strResult = objHTTP.ResponseText
Set objTransform = Server.CreateObject("Stonebroom.XSLTransform")
Dim strStatus  'to hold the status message
strXMLFile = strResult         'the XML source file as a string
strXSLFile = "filename.xsl"    'the XSL style sheet file
blnWorked = objTransform.TransformXML(strXMLFile, strXSLFile, , strStatus)
Response.Write strStatus

Changes to the component in version 1.2x.

The XSLTransform component depends on the presence of a Microsoft-compatible XSL parser on the server. The ProgID string used by default to locate this component is "MSXML.DOMDocument". As new parsers have been released, the ability to select which one to use was added to the XSLTransform component in version 1.2x. This is done through an optional extra parameter for both the TransformXSL and TransformBatch methods named ParserClass. To use the updated XSLT-compliant version of the Microsoft parser, specify the value "MSXML2.DOMDocument" for this parameter.

Checking the component version number.

If you are having problems with XSLTransform, you should check the component version numbers and include these with your inquiry. The component file is stnxsltr.dll. It is installed by default in your Windows\System or Winnt\System32 folder.

To check the version number of the file stnxsltr.dll:

  • Open the Winnt\System32 folder and select the file stnxsltr.dll.
  • Right-click on it, select Properties, and open the Version page.
  • The version number is shown at the top of this page, in the format xx.xxxx

Obtaining the latest version of the components.

The XSLTransform DLL may be updated from time to time, either to fix minor errors, add functionality, or improve performance. You can download the latest version of the component from here and use it to update your installation:

If you have purchased XSLTransform, you should apply directly to us by email if you require the latest updated version of stnxsltr.dll (version 1.21). Include the name of the distributor and the invoice number and date, together with your own postal address and the email address of the account where the DLL should be sent to.

You should verify that the updated files are suitable for your own purposes by testing them on a non-production server first. See the previous topic for help on determining the version number of the components on your system. See the next topic for help on updating or replacing existing component files.

I can't replace or delete the XSLTransform DLL file.

Windows NT and the Web server cache the components they use in memory, and lock them so that they cannot be moved or deleted while in use. In some cases stopping and restarting the Web server may release the component. Otherwise restarting Windows or rebooting the server will do the trick.

If you are using Internet Information Server 4 or higher, you can create Virtual Applications and place all your ASP pages that use the component inside this folder to avoid this problem. It's then possible to unload a component from memory using the Properties dialog of the Virtual Application folder in Internet Service Manager.

The 'ERROR: Cannot replace existing file' and 'ERROR: Cannot open output file' messages.

XSLTransform requires appropriate disk access permissions to be able to create the output file. If you encounter the 'Cannot replace existing file' or 'Cannot open output file' message, you will need to edit the Permissions list in the Properties dialog for the directories you wish to use with XSLTransform. Give the account that will use the component Write or Full Control permission. If the component is being accessed anonymously, the account in use will be either IUSR_machinename or IWAM_machinename depending on whether you have installed the component as a Virtual Application in Internet Service Manager.

The 'ERROR: Invalid procedure call or argument' message.

When running on Windows 2000, you might see this message displayed when calling the XSLTransform component methods. Give the account that will use the component Write or Full Control permission (you can temporarily give the Everyone group Full Control while testing). If the component is being accessed anonymously, the account in use will be either IUSR_machinename or IWAM_machinename depending on whether you have installed the component as a Virtual Application in Internet Service Manager.

Runtime error 800a01ad 'ActiveX component can't create object'.

This general error message can be caused by many things. To cure it, try the following:

  • Make sure you are using Server.CreateObject() in your ASP pages.CreateObject() alone should only be used in Visual Basic.
  • If you are running the object in a separate process in IIS4, it may be that MTS has become confused and is holding an invalid object pointer. Try unloading the object using the Properties dialog of the virtual application directory. Otherwise reboot the server.
  • Alternatively, it might be that the DLL has been moved or deleted, or that for some reason the registered information is wrong. Re-register the DLL (in Windows\System or Winnt\System32) using the RegSvr32 utility:

    regsvr32 path_to_dll\stnxsltr.dll

Finally, if you've got any suggestions - or any comments on XSLTransform generally - we'd love to hear from you.

Home | Free utilities | Software support | Training | Conferences | Contact
  ©2013 Stonebroom Limited, England