## org.xmldb.api.modules
Interface XPathQueryService

All Superinterfaces:
  Configurable, Service

All Known Subinterfaces:
  XPathQueryServiceImpl

All Known Implementing Classes:
  LocalXPathQueryService, RemoteXPathQueryService

public interface XPathQueryService
extends Service

XPathQueryService is a `Service` that enables the execution of XPath queries within the context of a `Collection` or against a single XML `Resource` stored in the `Collection`.

Field Summary
`static java.lang.String` `SERVICE_NAME`

Method Summary
`void` `clearNamespaces()` Removes all namespace mappings stored in the internal namespace map.
`java.lang.String` `getNamespace(java.lang.String prefix)` Returns the URI string associated with `prefix` from the internal namespace map.
`ResourceSet` `query(java.lang.String query)` Run an XPath query against the `Collection`.
`ResourceSet` `queryResource(java.lang.String id, java.lang.String query)` Run an XPath query against an XML resource stored in the `Collection` associated with this service.
`void` `removeNamespace(java.lang.String prefix)` Removes the namespace mapping associated with `prefix` from the internal namespace map.
`void` `setNamespace(java.lang.String prefix, java.lang.String uri)` Sets a namespace mapping in the internal namespace map used to evaluate queries.

Methods inherited from interface org.xmldb.api.base.Service
`getName, getVersion, setCollection`

Methods inherited from interface org.xmldb.api.base.Configurable
`getProperty, setProperty`

Field Detail

### SERVICE_NAME

    public static final java.lang.String SERVICE_NAME

See Also:
  Constant Field Values

Method Detail

### setNamespace

    public void setNamespace(java.lang.String prefix,
                             java.lang.String uri)
                      throws XMLDBException

  Sets a namespace mapping in the internal namespace map used to evaluate queries. If `prefix` is null or empty the default namespace is associated with the provided URI. A null or empty `uri` results in an exception being thrown.

  Parameters:
    `prefix` - The prefix to set in the map. If `prefix` is empty or null the default namespace will be associated with the provided URI.
    `uri` - The URI for the namespace to be associated with prefix.
  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.
    TODO: probably need some special error here.

### getNamespace

    public java.lang.String getNamespace(java.lang.String prefix)
                                  throws XMLDBException

  Returns the URI string associated with `prefix` from the internal namespace map. If `prefix` is null or empty the URI for the default namespace will be returned. If a mapping for the `prefix` can not be found null is returned.

  Parameters:
    `prefix` - The prefix to retrieve from the namespace map.
  Returns:
    The URI associated with `prefix`
  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.

### removeNamespace

    public void removeNamespace(java.lang.String prefix)
                         throws XMLDBException

  Removes the namespace mapping associated with `prefix` from the internal namespace map. If `prefix` is null or empty the mapping for the default namespace will be removed.

  Parameters:
    `prefix` - The prefix to remove from the namespace map. If `prefix` is null or empty the mapping for the default namespace will be removed.
  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.

### clearNamespaces

    public void clearNamespaces()
                         throws XMLDBException

  Removes all namespace mappings stored in the internal namespace map.

  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.

### query

    public ResourceSet query(java.lang.String query)
                      throws XMLDBException

  Run an XPath query against the `Collection`. The XPath will be applied to all XML resources stored in the `Collection`. The result is a `ResourceSet` containing the results of the query. Any namespaces used in the `query` string will be evaluated using the mappings setup using `setNamespace`.

  Parameters:
    `query` - The XPath query string to use.
  Returns:
    A `ResourceSet` containing the results of the query.
  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.

### queryResource

    public ResourceSet queryResource(java.lang.String id,
                                     java.lang.String query)
                              throws XMLDBException

  Run an XPath query against an XML resource stored in the `Collection` associated with this service. The result is a `ResourceSet` containing the results of the query. Any namespaces used in the `query` string will be evaluated using the mappings setup using `setNamespace`.

  Parameters:
    `query` - The XPath query string to use.
    `id` - The id of the document to run the query against.
  Returns:
    A `ResourceSet` containing the results of the query.
  Throws:
    `XMLDBException` - with expected error codes.
    `ErrorCodes.VENDOR_ERROR` for any vendor specific errors that occur.

Copyright (C) Wolfgang Meier. All rights reserved.