XML serializer (OMXMLWRITE)

The OMXMLWRITE library can be used to convert a markup event stream to a well-formed XML instance. The library exports two functions, xml.writer and xml.written. Each function performs the same task through a different interface; which one is better to use depends on the context.

The following example program parses well-formed XML input and uses the OMXMLWRITE library to write it out as XML again.

  import "omxmlwrite.xmd" prefixed by xml.
     do xml-parse scan #main-input
        output xml.written from #content

This program can be used to normalize well-formed XML instances. All XML produced by the OMXMLWRITE library has the following properties:

  • it uses ASCII encoding only,
  • all elements with empty content are represented with an empty tag,
  • attributes are quoted using double quotes,
  • special characters < and & are represented using the built-in entities &lt; and &amp; whereas
  • all other non-ASCII characters are represented as character entities with hexadecimal notation (&#10; for example).