
=head1 NAME

Sleepycat::DbXml - A Perl interface to the Sleepycat DbXml library

=head1 SYNOPSIS

    use Sleepycat::DbXml;

    eval {
        my $v = new XmlValue();

        my $c = new XmlContainer();
    };
    if (my $e = catch XmlException)
    {
    }

=head1 DESCRIPTION

This module provides a Perl interface to the Sleepycat library, DbXml. The
majority of the DbXml C++ interface is available via this Perl module
and in general the Perl interface closely mirrors the underlying C++
API. Wherever the Perl interface differs from the C++ interface, it will
be clearly noted in the documentation. Notable exceptions are:

=over 5

=item 1.

The following parts of the Sleepycat DbXml API are not supported by
this module:

    XmlDocument::getDOM
    XmlValue::asNodeList

=item 2.

Use of Dbt objects is optional. Anywhere in the C++ API where a Dbt
object is required, the Perl user can either use a Dbt object or a
plain-vanilla Perl scalar. 

=item 3.

Whenever the C++ API uses a std::string, the Perl interface uses a scalar.

=item 4.

A number of the DbXml methods take a DbTxn pointer as their first
parameter. To make life easier for users who aren't using transactions,
this first parameter can be made optional. This is done

    use Sleepycat::DbXml 'simple';
    
Note that this doesn't outlaw the use of the DbTxn parameters, it just
makes their use optional. 


=item 5.

The C++ interface makes heavy use of exceptions to report errors back
to the user code. This module uses the Perl equivalent.

That means that a typical

    eval
    {
        
    };
    if (my $e = catch XmlException)
    {
    }

=back

The documentation for each of the individual classes in DbXml are each
stored in individual files.

=over 5

=item XmlValue

=item XmlContainer

=back

=head1 NOTES



=head1 EXAMPLES

The example below ...

=head1 SEE ALSO

The Sleepycat site, http://www.sleepycat.com


=head1 AUTHOR

Paul Marquess
