Page 1 of 1
					
				XSLT 2.0 transformations in Switch
				Posted: Thu Jan 24, 2013 10:30 am
				by ppmg
				Hi,
	
	Currently the XSLT transform element in Switch only supports XSLT 1.0 conversions. 
	
	We really need to be able to run 2.0 transformations via Switch. We tried differtent external XSLT parsers but they don't seem to work.
	
	Does anyone have a solution for this?
	
	Kind regards,
	
	Leon Dona
			 
			
					
				XSLT 2.0 transformations in Switch
				Posted: Thu Jan 24, 2013 12:39 pm
				by tz8
				Hi Leon,
	
	we solved this by creating an external Ruby script (or PHP or whatever you would like to use for it) and call this with a script calling that as an external process. Be sure to make the script take an input file (job.getName()) and an output file (s.createPathWithName) so that you can send the output file onwards in Switch.
	
	Cheers,
	
	Thorsten
			 
			
					
				XSLT 2.0 transformations in Switch
				Posted: Thu Jan 24, 2013 3:01 pm
				by freddyp
				Support for XSLT2.0 is an existing feature request, but can you please describe what you are trying to achieve that requires the use of XSLT2.0? I will add your comments to the feature request to give it some more "meat".
	
	Freddy
			 
			
					
				XSLT 2.0 transformations in Switch
				Posted: Thu Jan 24, 2013 4:01 pm
				by ppmg
				Thanks tz8, i'll look into that.
	
	Freddyp: we have to run an existing complicated XSLT 2.0 script, so there's no possible escape to 1.0...
	
	Leon
			 
			
					
				XSLT 2.0 transformations in Switch
				Posted: Fri May 17, 2013 10:57 pm
				by pcobee
				This is fairly easy to set up using Saxon9...
	
	1) download Saxon at "SaxonHE9-5-0-1N-setup.exe" at
	
	Saxon 9.5
	
	    and install.
	
	2) Open SwitchScripter and create a new script with the folowing properties:
	
	    Tag: propTransformCommand
	    Name: Transform Command
	    Tooltip:  Indicate the Saxon "Transform" command line executable.
	    Inline editor:  Single-line text
	    Editor 1:   Choose file
	
	    Tag: propXslTransform
	    Name: XSLT Document
	    Tooltip: Choose the XSL transform file
	    Inline editor:  None
	    Editor 1:   Choose file
	
	    Copy/paste this code...
	
	
	Function jobArrived(s, job)
		
		On Error Resume Next
	
		xsltTransformCommandPath = s.getPropertyValue("propTransformCommand")
		xsltDocumentPath = s.getPropertyValue("propXslTransform")
		tempOutputFilename = job.createPathWithName(job.getName())
	
		transformCommand = """" & xsltTransformCommandPath & """ -s:""" & job.getPath() & """ -xsl:""" & _
										xsltDocumentPath & """ -o:""" & tempOutputFilename & """ -ext:on"
	
		job.log 1,transformCommand
	
		set objShell = CreateObject("wscript.shell")  
		if err.number = 0 then                   
			objShell.Run transformCommand, 1, TRUE
			if err.number = 0 then
				job.sendToSingle(tempOutputFilename)
			else
				job.fail "Error running transform [ & err.description & ]"
			end if
			set objShell = nothing
		else
			job.fail "Error trying to create WScript Object [ & err.description & ]"
		end if
	
	 End Function
	
	
	3) Configure the Script object by indicating the location of the "Tansform.exe" file in the Saxon installation folder as well as the XSL file.