XML::DB::Database::Exist - XML:DB driver for the eXist database |
XML::DB::Database::Exist - XML:DB driver for the eXist database
use XML::DB::Database::Exist;
This is the eXist XML-RPC driver. It is intended to be used through the XML:DB API, so that it is never called directly from user code. It implements the internal API defined in XML::DB::Database
The methods required to implement the Database interface are documented in Database.pm; only methods unique to eXist, and not required by the XML:DB API are documented here.
Graham Seaman CPAN ID: AUTHOR graham@opencollector.org http://opencollector.org/modules
Copyright (c) 2002 Graham Seaman. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
perl(1).
Usage : $driver = new XML::DB::Database('eXist');
Purpose : Constructor
Argument : URL for XML-RPC service
Returns : Exist driver, an extension of XML::DB::Database
Comments : Normally only called indirectly, via the DatabaseManager
Usage : $driver->setURI
Purpose : sets the URI
Argument : URI to use
Returns : 1
Comments : This should probably be done in the constructor but is separate till DatabaseManager is properly sorted out.
The following methods are not used directly by this XML:DB implementation. Some are called indirectly by the interface methods, others implement features specific to eXist.
Usage : $doc = getExistDocument($name, $encoding, $prettyPrint, $xsl )
Purpose : retrieve document by name. XML content is indented if prettyPrint is set to >=0. Use supplied encoding for output. This method is provided to retrieve a document with encodings other than UTF-8. Since the data is handled as binary data, character encodings are preserved. byte-array values are automatically BASE64-encoded by the XMLRPC library.
Arguments :
<Returns> : xml string
I<Throws> : Exception
Usage : if (hasDocument($name)){....
Purpose : Does a document called $name exist in the repository?
Argument : $name - string identifying document
Returns : True/false
Throws : Exception
Usage : $docList = getDocumentListing($collection)
Purpose : get a list of all documents contained in the repository, or in the collection if $collection is defined
Argument : $collection - collection to list (may be undef)
Returns : Lists of documents as a struct consisting of: array of all document names in collection; array of all subcolection names; name of collection.
Throws : Exception
Comment : Actual behaviour doesnt match spec (above) - returns simple arrayref (maybe containing a flattened version of above structure?).
Usage : $xml = retrieve($doc, $id, $prettyPrint, $encoding)
Purpose : retrieve a single node from a document.
Arguments :
Returns : Base-64 encoded xml
Throws : Exception
Usage : $reference = executeQuery($xpath)
Purpose : Execute XPath query and return a reference to the result set.
Argument : $xpath - the query
Returns : The returned reference may be used later to get a summary of results or retrieve the actual hits.
Throws : Exception
Usage : if (parse($xml, $docName, $overwrite)){...
Purpose : parse an XML document and store it into the database.
Arguments :
Returns : 1 on success
Throws : Exception
Usage : if (remove($docName)){ ...
Purpose : remove a document from the repository.
Argument : $docName - document to remove
Returns : 1 on success
Throws : Exception
Usage : $struct = querySummary($xpath)
Purpose : execute XPath query and return a summary of hits per document and hits per doctype.
Argument : $xpath - query string
Returns : This method returns a struct consisting of $queryTime -int; $hits - int; $documents - array of array: Object[][3]; doctypes - array of array: Object[][2], where documents and doctypes represent tables where each row describes one document or doctype for which hits were found. Each document entry has the following structure: docId (int), docName (string), hits (int). The doctype entry has this structure: doctypeName (string), hits (int)
Throws : Exception
Usage : $hitcount = getHits($resultId)
Purpose : Get the number of hits in the result set identified by it\'s result-set-id.
Argument : $resultId
Returns : Number of hits
Throws : Exception
Usage : $xml = existQuery($xpath, $howmany, $start, $encoding, $prettyPrint)
Purpose : execute XPath query and return $howmany nodes from the result set, starting at position $start.
Arguments :
Returns : string of nodes selected
Throws : Exception
Usage : $desc = getCollectionDesc($collection)
Purpose : describe a collection
Argument : $collection - name of collection
Returns : This method will return a hashref with the following fields: documents - array of all document names contained in this collection; collections - an array containing the names of all subcollections in this collection; name - the collections name
Throws : Exception
XML::DB::Database::Exist - XML:DB driver for the eXist database |