The USCSXSL internal RDMI component is an XSLT 1.0 processor written in .NET/C#. This XSLT processor has been extended with a library of extension functions. This added library sets USCSXSL apart from the USXSL internal component.
As an internal RDMI component, USCSXSL may be called by executing an INVOKE or SELECT statement from a USoft SQL context. For full details of this technique, see the RDMI section in the USoft Definer Help. Alternatively, you can call USCSXSL from the command line.
One typical use of USCSXSL is for it to be passed a valid USoft Blend script and to apply, to that input XML, the standard Batch.1.0.xsl transformation found in the \xsl\Util subfolder of your USoft installation directory. In this use case, USCSXSL applies an identity transformation to the Blend script.
In its role of an extended XSLT processor, USCSXSL allows you during the transformation to:
•Access XSLT 2.0-like functions such as dynamic XPath expressions, string manipulators, regular expression engines, and Math functions.
•Add convenience functions not found in XSLT 1.0, such as diffs on node sets, file IO functions (path, directory, file, copy, move, zip), date formatting functions, device info functions, Text2XML converters, registry manipulation functions, or a stopwatch.
•Store string values and XML fragments in variables, and then retrieve these values at a later point for use by a different part of the XSLT transformation. Variables can be queued, stacked, listed, and contained in dictionaries.
•Add interactive behaviour to your XSLT transformation (dialogs, console).
When used to apply the Batch.1.0.xsl transformation, USCSXSL allows you to process directives defined for the "Processing.Command" namespace. These directives take the form of instructions (elements) in the XSL stylesheet that translate, via a set of predefined XSL templates, into the execution of extension functions. You can use this technique to perform standard USoft tool routines programmatically and in the context of a command script that is an ordered sequence of directives. Standard USoft tool routines include:
•Dropping and re-creating a repository.
•Running Create-Tables for an application.
•Importing or exporting application data.
•Generating flat files.
•Synchronising consumed modules.
•Publishing a server as in USoft Service Definer.
•Publishing a web application as in USoft Web Designer.
USCSXSL allows you to blend-and-mix USoft routines with more generic routines such as moving and dropping files and folder on the file system, executing OS commands from the command line, or calling the USoft Rules Service in scope and tell it to perform a query or data manipulation.
When you use USCSXSL to process a Blend script, you call the Batch.1.0.xsl stylesheet (or possibly a variant of it). This stylesheet performs an identity transformation: it traverses all the nodes of the input XML and outputs each encountered node to the result tree. In the process, for each node processed, function calls encountered in the stylesheet are executed. A function may perform any kind of operation on the computer, including data manipulation in a USoft application or directly in the RDBMS; file system operations; and the execution of OS commands. The primary purpose is not to obtain the result tree, but rather to obtain that functions are applied to specified XML nodes.
The point of using USCSXSL to execute a Blend script is not to obtain result XML but to call extension functions