=head1 NAME

XmlDocument - A Perl interface to the DbXml XmlDocument Class

=head1 SYNOPSIS

    use Sleepycat::DbXml;

    my $doc = new XmlDocument()

    my $xmlvalue = new XmlValue(...);
    $doc->getMetaData($uri, $name, $value);
    my $dbt = new Dbt;
    $doc->getMetaData($uri, $name, $dbt);
    $doc->getMetaData($uri, $name, $string);

    my $dbt = $doc->getContent;
    my $string = $doc->getContentAsString;

    my $int = $doc->getID;
    my $results = $doc->queryWithXPath($xpath [, $context])
    my $results = $doc->queryWithXPath($XmlQueryExpression)

    $doc->modifyDocument(xmlModify)

    my $string = $doc->getName;

    $doc->setMetaData($uri, $prefix, $name, $xmlvalue);
    $doc->setMetaData($uri, $prefix, $name, $dbt);
    $doc->setMetaData($uri, $prefix, $name, $scalar);

    $doc->setContent($string);
    $doc->setContent($dbt);

    $doc->setname($string);



=head1 DESCRIPTION



=head1 CONFORMANCE to C++ API

The Perl interface to XMlValue is identical to the C++ API, apart from
the following

=over 5

=item 1.

getDOM is not supported.

=back


=head1 Constructor

The constructor for XmlDocument can takes the following form:

    my $doc = new XmlDocument() ;


=head1 Methods

=head2 $doc->getMetaData($uri, $name, $value);

The getMetaData method can take three forms. The first two parameters,
$uri and $name, are identical for all three variants. Where they differ
is in the final parameter, $value.

If the $value parameter is an XmlValue object the meta data will be
written to the XmlValue object.

If the $value parameter is an Dbt object the meta data will be
written to the Dbt object.

Otherwise the metadata will be written as a perl string into the
$value parameter.

=item my $dbt = $doc->getContent;

Returns the content of the document as a Dbt object.

=item my $string = $doc->getContentAsString;

Returns the content of the document as a Perl string.

=item my $int = $doc->getID;


=item my $results = $doc->queryWithXPath($xpath [, $context])

=item my $results = $doc->queryWithXPath($XmlQueryExpression)

=item $doc->modifyDocument(xmlModify)

=item my $string = $doc->getName;


=item $doc->setMetaData($uri, $prefix, $name, $value);


The setMetaData method can take three forms. The first three parameters,
$uri, $prefix and $name, are identical for all three variants. Where
they differ is in the final parameter, $value.

The fourth parameter, $value, can be an XmlValue object, a Dbt object
or a simple Perl string.


=item $doc->setContent($string);

=item $doc->setContent($dbt);


=item $doc->setname($string);

=head1 NOTES



=head1 EXAMPLES

=head1 SEE ALSO


=head1 AUTHOR

Paul Marquess
