xslt.writer

function

Library: XSLT support (OMXSLT)
Import : omxslt.xmd

Returns: A string sink connected to the XSLT processor.


Declaration
export external string sink function 
   writer       with value     stylesheet  stylesheet
          parameters read-only stream      parameters optional
                into value     string sink xml-output

      

Argument definitions

stylesheet
is the XSLT stylesheet that will be applied to the input data,
parameters
is a shelf of parameters required by the stylesheet, and
xml-output
is a destination to which the XSLT processor will write its data.


Purpose

Use writer to apply an XSLT stylesheet to a well-formed XML instance that is generated by the execution of your OmniMark program. The result of the transformation is written to xml-output, from where further processing can be performed.

Example

An XSLT stylesheet stored in a file stylesheet1.xsl can be applied to a well-formed XML instance stored in a file input1.xml using the following program. Before passing the data through the XSLT processor, the program uses pattern-matching to uppercase all element names in the input data. It is the output of the pattern matching engine is fed to the XSLT processor.

  import "omxslt.xmd" prefixed by xslt.
  
  process
     local xslt.stylesheet stylesheet initial { xslt.compile file "stylesheet1.xsl" }
  
     using output as xslt.writer with stylesheet into file "input1.out"
        submit file "input1.xml"
  
  
  find ("</" | "<")  => start-marker 
        letter+      => element-name
        ("/>" | ">") => end-marker
     output start-marker || "ug" % element-name || end-marker
            

If the stylesheet is being applied only once, there is no need to declare a shelf of type stylesheet. OmniMark can convert a string representation of the stylesheet into the appropriate format. The above example can then be modified to read

  process
     local xslt.stylesheet stylesheet initial { xslt.compile file "stylesheet1.xsl" }
  
     using output as xslt.writer with file "stylesheet1.xsl" into file "input1.out"
        submit file "input1.xml"
            

Other Library Functions