The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    XML::Declare - Create XML documents with declaration style

SYNOPSIS
        my $doc = doc {
            element feed => sub {
                attr xmlns => 'http://www.w3.org/2005/Atom';
                comment "generated using XML::Declare v$XML::Declare::VERSION";
                for (1..3) {
                    element entry => sub {
                        element title     => 'Title', type => 'text';
                        element content   => sub {
                            attr type => 'text';
                            cdata 'Desc';
                        };
                        element published => '123123-1231-123-123';
                        element author => sub {
                            element name => 'Mons';
                        }
                    };
                }
            };
        } '1.0','utf-8';

        print $doc;

        doc { DEFINITIONS } < args to XML::LibXML::Document->new >

        Where DEFINITIONS are

        element name => sub { DEFINITIONS }
        or
        element
            name => 'TextContent',
            attr => value,
            attr1 => [qw(more values)];

        attr name => values;

        text $content;

        cdata $content;

        comment $content;

EXPORT
  doc BLOCK [ $version, $charset ];
    Create XML::LibXML::Document;

  element $name, sub { ... };
    Create XML::LibXML::Element with name $name; everything, called within
    "sub { ... }" will be appended as children to this element

  element $name, ATTRS
    Create XML::LibXML::Element with name $name and set it's attributes.
    "ATTRS" is a pairs of "key =" "value">

  attr $name, $value
    Create XML::LibXML::Attribute with name $name and value $value

  text $content
    Create XML::LibXML::Text node with content $content

  cdata $content
    Create XML::LibXML::CDATASection node with content $content

  comment $content
    Create XML::LibXML::Comment node with content $content

AUTHOR
    Mons Anderson <mons@cpan.org>

LICENSE AND COPYRIGHT
    Copyright 2009-2010 Mons Anderson.

    This program is free software; you can redistribute it and/or modify it
    under the terms of either: the GNU General Public License as published
    by the Free Software Foundation; or the Artistic License.