using output as

control structure

Syntax
using output as destination modifiers? (& destination modifiers?)*
   local-scope

      

Argument definitions

destination
An output destination
modifiers
Modifiers that affect how data is written to the destination


Purpose

You can use using output as as a prefix to change the current output scope for the duration of a line or a block of code:

  process
     using output as file "out.txt"
        submit file "in.txt"

You can direct output to a file, as above, or to a stream, a referent, a string sink, or a markup sink as in the next examples:

  process
     local stream foo
  
     open foo as buffer
     using output as foo
        submit file "in.txt"
  
  process
     using output as referent "foo"
        submit file "in.txt"
  
  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"
  
  define markup sink function
     filter (value markup sink s)
  as
     using output as s
     do markup-parse #current-input
        output "%c"
     done

If you use using output as to output directly to a stream, that stream must be open:

  process
     local stream out-file
  
     open out-file as file "out.txt"
     using output as out-file
        submit file "in.txt"

If you use using output as with a stream or a string sink, you can apply the following modifiers: