The string data type is used to represent a string of characters.
You can declare a variable of type string:
local string titleThe default value for an uninitialized string shelf item is an empty string (that is, a string zero characters long). You can assign a value to a string in several ways:
define string source function weekday value integer day as do select day case 1 output "Sunday" case 2 output "Monday" case 3 output "Tuesday" case 4 output "Wednesday" case 5 output "Thursday" case 6 output "Friday" case 7 output "Saturday" done process local string today set today to weekday 1 output today || "%n"
You can define a function of type string and pass a string argument to a function:
define string function greet value string recipient as return "Hello " || recipient || "!" process output greet "Mars" || "%n"
The value of a string can be output, scanned, or used as the input to the markup parser. For instance,
The string data type replaces one of the functions of the stream data type. (Streams will continue to operate as strings when used as such, but this usage is deprecated.) However, string and stream are distinct types. A string and a stream can be used interchangeably in contexts in which they return the same type of value (a string), such as when they are output or passed to a value argument of a function, but you cannot perform stream-specific operation on a string:
will compile correctly, but will lead to a run-time error because a string variable cannot be used with the name of operation.
The type stream has several roles in OmniMark, including the role of acting as a string variable. The role of string variable is now provided by the string type and the use of stream for this purpose is deprecated.
The type stream remains an important part of OmniMark and is still used for all cases where you need to attach a stream to a destination in order to stream data to that destination:
process local stream out-file open out-file as file "out.txt" using output as out-file submit file #args
The use of stream in the following contexts is deprecated in favor of string:
Function arguments of type value stream:
define function foo value stream my-stream
is deprecated in favor of value string:
define function foo value string my-string
The use of stream as a return type for a function:
is deprecated in favor of string:
The syntax remainder stream:
define function foo (remainder stream s, ...)
is deprecated in favor of remainder string:
define function foo (remainder string s, ...)