XML::Generator::DOM - XML::Generator subclass for producing DOM trees instead of strings.
Contents
Constructor
These configuration options are accepted but have no effect on the semantics of the returned object:
escape, pretty, conformance and empty.
Description
XML::Generator::DOM subclasses XML::Generator in order to produce DOM trees instead of strings (see
XML::Generator and XML::DOM). This module is still experimental and its semantics might change.
Essentially, tag methods return XML::DOM::DocumentFragment objects, constructed either from a DOM
document passed into the constructor or a default document that XML::Generator::DOM will automatically
construct.
Calling the xml() method will return this automatically constructed document and cause a fresh one to be
constructed for future tag method calls. If you passed in your own document, you may not call the xml()
method.
Below, we just note the remaining differences in semantics between XML::Generator methods and
XML::Generator::DOM methods.
License
This library is free software, you can redistribute it and/or modify it under the same terms as Perl
itself.
Name
XML::Generator::DOM - XML::Generator subclass for producing DOM trees instead of strings.
Synopsis
use XML::Generator::DOM;
my $dg = XML::Generator::DOM->new();
my $doc = $dg->xml($dg->xmlcmnt("Test document."),
$dg->foo({'baz' => 'bam'}, 42));
print $doc->toString;
yields:
<?xml version="1.0" standalone="yes"?>
<!--Test document-->
<foo baz="bam">42</foo>
Tag Methods
Subsequently, tag method semantics are somewhat different for this module compared to XML::Generator.
The primary difference is that tag method return XML::DOM::DocumentFragment objects. Namespace and
attribute processing remains the same, but remaining arguments to tag methods must either be text or
other XML::DOM::DocumentFragment objects. No escape processing, syntax checking, or output control is
done; this is all left up to XML::DOM.
