data type
Library: Markup utilities (OMMARKUPUTILITIES)
Import : ommarkuputilities.xmd |
An instance of the markup-buffer
data type can be used for storing and reproducing a markup
stream. Apart from the data type itself, the markup utilities library also provides:
markup sink
or a markup source
from an instance of the markup-buffer
type,
string
to markup-buffer
,
=
and !=
between two markup-buffer
instances,
and
markup-buffer
.
You can use the markup sink
to write a markup stream into the buffer. To obtain the sink, cast
the buffer to a markup sink
or prefix it by using output as
. To reproduce the previously written
markup stream, cast it to a markup source
or simply start reading the contents of the buffer using the
do markup-parse
action.
This example program parses an XML document in the file inclusion.xml
and buffers the parsed
markup stream. Then it parses another SGML document container.sgml
, replacing every occurrence of
element reference
within it by the buffered inclusion.xml
document. After this
preprocessing step, the transformed SGML document can be subjected to final processing.
import "ommarkuputilities.xmd" unprefixed global markup-buffer replacement define markup source function replace-references as using group "replace references" do sgml-parse document scan file "container.sgml" output "%c" done process using output as replacement do xml-parse scan file "inclusion.xml" output #content done using group "process transformed document" do markup-parse replace-references output "%c%n" done group "replace references" element "reference" output replacement suppress element #implied signal throw #markup-start #current-markup-event output "%c" signal throw #markup-end #current-markup-event group "process transformed document" element #implied output "<%q>%c</%q>"