![]() |
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||
|
|
||||||
| Related Topics | Other Library Functions | |||||
| data type |
markup-buffer |
|
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
= and != between two markup-buffer instances.
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>"
|
Related Topics |
Other Library Functions
|
Copyright © Stilo International plc, 1988-2010.