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
.