The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

XML::OPDS::OpenSearch::Query - OpenSearch query element for XML::OPDS

DESCRIPTION

This module is mostly a helper to provide validation to create Query elements in an OPDS search result. Notably, this doesn't expand to XML. The serialization is left to XML::OPDS.

SYNOPSIS

  use XML::OPDS;
  use XML::OPDS::OpenSearch::Query;
  use Data::Page;
  my $feed = XML::OPDS->new;
  my $query = XML::OPDS::OpenSearch::Query->new(role => "example",
                                                searchTerms => "my terms",
                                                );
  my $pager = Data::Page->new;
  $pager->total_entries(50);
  $pager->entries_per_page(20);
  $pager->current_page(1);
  $feed->search_result_pager($pager);
  $feed->search_result_terms('my terms');
  
  # please note that if you set the search_result_pager and
  # search_result_terms a role:request query is added automatically, so
  # here we add only the example.
  
  $feed->search_result_queries([$query]);
  print $feed->render;

SETTERS/ACCESSORS

All of them are optionals except role.

role

Role values (from http://www.opensearch.org/Specifications/OpenSearch/1.1#Role_values)

request

Represents the search query that can be performed to retrieve the same set of search results.

example

Represents a search query that can be performed to demonstrate the search engine.

Represents a search query that can be performed to retrieve similar but different search results.

correction

Represents a search query that can be performed to improve the result set, such as with a spelling correction.

subset

Represents a search query that will narrow the current set of search results.

superset

Represents a search query that will broaden the current set of search results.

title

Contains a human-readable plain text string describing the search request.

Restrictions: The value must contain 256 or fewer characters of plain text. The value must not contain HTML or other markup.

This object stores an arbitrary string, but cut it at 256 when producing the attributes.

totalResults

Integer.

Contains the expected number of results to be found if the search request were made.

searchTerms

String.

Contains the value representing the "searchTerms" as an OpenSearch 1.1 parameter.

The URI escaping is performed by the module.

count

Integer.

Replaced with the number of search results per page desired by the search client.

startIndex

Integer.

Replaced with the index of the first search result desired by the search client.

startPage

Integer.

Replaced with the page number of the set of search results desired by the search client.

language

String. The value must conform to the XML 1.0 Language Identification, as specified by RFC 5646. In addition, a value of "*" will signify that the search client desires search results in any language.

This module passes it verbatim.

inputEncoding

The value must conform to the XML 1.0 Character Encodings, as specified by the IANA Character Set Assignments.

This module passes it verbatim.

outputEncoding

Same as above.

METHODS

attributes_hashref

Return the attributes which are defined in an hashref. The title is mangled to 256 characters and

SEE ALSO

Specification: http://www.opensearch.org/Specifications/OpenSearch/1.1