XML::Writer is a helper module for Perl programs that write an XML document.
The module handles all escaping for attribute values and character data and
constructs different types of markup, such as tags, comments, and processing
instructions.

By default, the module performs several well-formedness checks to catch
errors during output.
This behaviour can be extremely useful during development and debugging,
but it can be turned off for production-grade code.

The module can operate either in regular mode in or Namespace processing mode.
In Namespace mode, the module will generate Namespace Declarations itself,
and will perform additional checks on the output.

Additional support is available for a simplified data mode with no mixed
content: newlines are automatically inserted around elements and elements
can optionally be indented based as their nesting level.