# XQilla Simple API Documentation

# URIResolver Class Reference

This is an abstract class used to resolve URIs in different ways. More...

`#include <URIResolver.hpp>`

Inheritance diagram for URIResolver:
[legend]

List of all members.

## Public Member Functions

virtual | ~URIResolver ()
| virtual destructor, does nothing
virtual bool | resolveDocument (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
| Resolve the given uri (and baseUri) to a Sequence (reference parameter).
virtual bool | resolveCollection (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
| Resolve the given uri (and baseUri) to a Sequence (reference parameter).
virtual bool | resolveDefaultCollection (Sequence &result, DynamicContext *context, const QueryPathNode *projection)=0
| Resolve the default collection.
virtual bool | putDocument (const Node::Ptr &document, const XMLCh *uri, DynamicContext *context)=0
| Called with any document that has been updated, to allow the user to save the document in any manner applicable.

## Detailed Description

This is an abstract class used to resolve URIs in different ways.

The user should derive a concrete class from URIResolver, and use the DynamicContext::registerURIResolver() method to add this resolver to the list used by XQilla.

## Constructor & Destructor Documentation

virtual URIResolver::~URIResolver | ( |  | ) | `[inline, virtual]`

virtual destructor, does nothing

## Member Function Documentation

virtual bool URIResolver::putDocument | ( | const Node::Ptr & | document,
|  | const XMLCh * | uri,
|  | DynamicContext * | context |
| ) |  |  | `[pure virtual]`

Called with any document that has been updated, to allow the user to save the document in any manner applicable.

The uri parameter will be the argument to the fn:put() function if that was called with the document - otherwise it will be the document URI of the document. If this URIResolver successfully handled the putDocument() request, the method should return true, otherwise it should return false and subsequent URIResolver objects will be called to handle the document.

virtual bool URIResolver::resolveCollection | ( | Sequence & | result,
|  | const XMLCh * | uri,
|  | DynamicContext * | context,
|  | const QueryPathNode * | projection |
| ) |  |  | `[pure virtual]`

Resolve the given uri (and baseUri) to a Sequence (reference parameter).

If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.

virtual bool URIResolver::resolveDefaultCollection | ( | Sequence & | result,
|  | DynamicContext * | context,
|  | const QueryPathNode * | projection |
| ) |  |  | `[pure virtual]`

Resolve the default collection.

If it is not defined, returns false, otherwise returns true.

virtual bool URIResolver::resolveDocument | ( | Sequence & | result,
|  | const XMLCh * | uri,
|  | DynamicContext * | context,
|  | const QueryPathNode * | projection |
| ) |  |  | `[pure virtual]`

Resolve the given uri (and baseUri) to a Sequence (reference parameter).

If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.

The documentation for this class was generated from the following file:

- URIResolver.hpp