Provided by: libxml-libxml-lazybuilder-perl_0.03-1_all bug

NAME

       XML::LibXML::LazyBuilder - easy and lazy way to create XML document for XML::LibXML

SYNOPSIS

         use XML::LibXML::LazyBuilder;

         {
             package XML::LibXML::LazyBuilder;
             $d = DOM (E A => {at1 => "val1", at2 => "val2"},
                       ((E B => {}, ((E "C"),
                                     (E D => {}, "Content of D"))),
                        (E E => {}, ((E F => {}, "Content of F"),
                                     (E "G")))));
         }

DESCRIPTION

       You can describe XML documents like simple function call instead of using createElement,
       appendChild, etc...

   FUNCTIONS
       E
               E "tagname", \%attr, @children

           Creats CODEREF that generates "XML::LibXML::Element" which tag name is given by first
           argument.  Rest arguments are list of text content or child element created by "E" (so
           you can nest "E").

           Since the output of this function is CODEREF, the creation of actual
           "XML::LibXML::Element" object will be delayed until "DOM" function is called.

       DOM
               DOM \&docroot, $var, $enc

           Generates "XML::LibXML::Document" object actually.  First argument is a CODEREF
           created by "E" function.  $var is version number of XML docuemnt, "1.0" by default.
           $enc is encoding, "utf-8" by default.

   EXPORT
       None by default.

       :all
           Exports "E" and "DOM".

   EXAMPLES
       I recommend to use "package" statement in a small scope so that you can use short function
       name and avoid to pollute global name space.

         my $d;
         {
             package XML::LibXML::LazyBuilder;
             $d = DOM (E A => {at1 => "val1", at2 => "val2"},
                       ((E B => {}, ((E "C"),
                                     (E D => {}, "Content of D"))),
                        (E E => {}, ((E F => {}, "Content of F"),
                                     (E "G")))));
         }

       Then, "$d->toString" will generate XML like this:

         <?xml version="1.0" encoding="utf-8"?>
         <A at1="val1" at2="val2"><B><C/><D>Content of D</D></B><E><F>Content of F</F><G/></E></A>

SEE ALSO

       XML::LibXML

AUTHOR

       Toru Hisai, <toru@torus.jp>

COPYRIGHT AND LICENSE

       Copyright (C) 2008 by Toru Hisai

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of
       Perl 5 you may have available.