=encoding utf8

=head1 NAME

 XML::eXistDB - handle the eXist pure XML database

=head1 INHERITANCE

 XML::eXistDB is extended by
   XML::eXistDB::RPC

=head1 SYNOPSIS

 # You want to talk to eXist via a protocol. Read that manpage
 use XML::eXistDB::RPC;
 my $db = XML::eXistDB::RPC->new(...);

=head1 DESCRIPTION

There are many database which support XML and Xquery. Quite a number of
them translate XML into tables and Xquery into SQL statements. The eXist
database however, is a pure XML/Xquery database.
Website: F<http://exist-db.org>

The C<XML::eXistDB> distribution contains the following modules:

=over 4

=item . C<XML::eXistDB> focuses on processing eXist (configuration) files

=item . C<XML::eXistDB::Util> contains convenience functions and constants

=item . C<XML::eXistDB::RPC> implements the large XML-RPC API to speak to an eXist daemon

=back

The "REST" API for eXist is very different from the XML-RPC API, so there
is no chance on a common base-class. The XML-RPC API is probably quite close
to the XML:DB standard, but for the moment, no attempts are made to unify
the implementation to facilitate different XML databases back-ends.

=head1 METHODS

=head2 Constructors

=over 4

=item XML::eXistDB-E<gt>B<new>(%options)

 -Option        --Default
  schemas         <created internally>
  server_version  $ENV{XML_SERVER_VERSION} || '3.0'

=over 2

=item schemas => L<XML::Compile::Cache|XML::Compile::Cache> object

Overrule the location to load the schemas.

=item server_version => STRING

=back

=back

=head2 Attributes

=over 4

=item $obj-E<gt>B<schemas>()

=item $obj-E<gt>B<serverVersion>()

=back

=head2 Collection configuration (.xconf)

=over 4

=item $obj-E<gt>B<createCollectionConfig>($data, %options)

The $data structure should provide the needs for an collection configuration
file, in the shape C<XML::Compile> expects based on the schema. See the
C<template/collection.xconf>, which is part of the distribution.

 -Option  --Default
  beautify  <true>

=over 2

=item beautify => BOOLEAN

=back

=item $obj-E<gt>B<decodeXML>(STRING)

Received is a STRING produced by the server. Decode it, into the most
useful Perl data structure.

=back

=head1 SEE ALSO

This module is part of XML-eXistDB distribution version 0.99_1,
built on February 25, 2021. Website: F<http://perl.overmeer.net/CPAN/>

=head1 LICENSE

Copyrights 2010-2021 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://dev.perl.org/licenses/>

