It would be nice if FinalBuilder could support the MODE parameter when doing XSL transforms.
I do quite a lot of XSLT stuff and the MODE feature is extremely useful when you are using the same XSL transform to output different types of data. The start MODE (and optional namespace) is passed to MSXML before performing the actual transform. You can see an example snippet below of how I use the setStartMode parameter. (Note this is different to using the XSLT parameters, but is often used together).
While you are at it, the last supported version of MSXML is version 4, but version 6 is already out for more than a year. Could you add support for version 6 please? BTW, version 5 of MSXML was only made available in MS Office products and you could leave this out without any issues. MSXML5 only added support for digital signatures in XML files, but this was taken out in MSXML6.
Finally. Version 6 of MSXML has very much tighter security and you need to also add maybe another property page that allows setting of certain XML properties, ie.
validateOnParse := true;
resolveExternals := true;
preserveWhiteSpace := true;
setProperty('MaxXMLSize', 1024*1024);
setProperty('ProhibitDTD', False);
setProperty('SelectionLanguage', 'XPath');
setProperty('AllowXsltScript', False);
setProperty('AllowDocumentFunction', False);
If you need code examples or help, I would be more than happy to help out.
Best regards,
Francois
--- Snippet of much larger VBScript code that creates a help file ---
' Create a template based on the XSL transform file
set XSLTemplate = CreateObject("Msxml2.XSLTemplate.6.0")
XSLTemplate.stylesheet = XSLDoc
'--------------------------------------
'First, build the XML Table of Contents
set XMLTOC = CreateObject("Msxml2.DOMDocument.6.0")
set XSLProc = XSLTemplate.createProcessor() ' Create a XSL processor
XSLProc.input = LibDef
XSLProc.output = XMLTOC
XSLProc.setStartMode("toc")
XSLProc.transform
XMLTOC.save("StdLib/toc.xml")
'---------------------------------------
'Second, build the HHC Table of Contents
set XSLProc = XSLTemplate.createProcessor() ' Create a XSL processor
XSLProc.input = LibDef
XSLProc.setStartMode("hhc")
XSLProc.transform
set File = fso.CreateTextFile("StdLib/toc.hhc", true)
File.Write(XSLProc.output)
File.Close
'---------------------------------------
'Thirdly, build the HHK Index
set XSLProc = XSLTemplate.createProcessor() ' Create a XSL processor
XSLProc.input = LibDef
XSLProc.setStartMode("hhk")
XSLProc.transform
set File = fso.CreateTextFile("StdLib/index.hhk", true)
File.Write(XSLProc.output)
File.Close