A markup source produces a markup stream; that is, a stream of data content that includes markup
events. markup source is a supertype of string source, so a string source
may be used anywhere a markup source is expected.
The following actions and operators can be used with markup source.
do markup-parse accepts markup source as its argument.
using input as accepts markup source as its argument.
put action accepts a markup source as its right-hand argument only if the
destination (its left-hand argument) is a markup sink.
output action accepts a markup source. As a result,
#current-output is a markup sink.
markup source expressions may be joined using the || operator. The result
will be a markup source expression.
drop, matches, and take operators accept a markup
source on their left-hand side. The result of take is always a string
source and the result of drop is the same type as its first argument.
markup source cast operator that tries to invoke an appropriate
user-defined conversion-function. OmniMark will automatically convert from a string
source to a markup source, but to convert from markup source to
string source, string, integer, or any other data type, the user must
define a conversion function.
The following actions and operators work only on string source values.
submit, do scan and repeat scan, will only
accept a string source argument; they will not accept a markup source.
do sgml-parse and do xml-parse, will only accept a
string source argument; they will not accept a markup source.
||* and repeated operators cannot be used with a markup source
expression on their left hand side, though a user may define the markup source overloading of
||* if required.
markup source.