The ZOOM::query class is a virtual base class,
   representing a query to be submitted to a server.  This class has
   no methods, but two (so far) concrete subclasses, each implementing
   a specific query notation.
  
    class prefixQuery : public query {
    public:
      prefixQuery (const char *pqn);
      ~prefixQuery ();
    };
   This class enables a query to be created by compiling YAZ's cryptic but powerful Prefix Query Notation (PQN).
    class CCLQuery : public query {
    public:
      CCLQuery (const char *ccl, void *qualset);
      ~CCLQuery ();
    };
   This class enables a query to be created using the simpler but less expressive Common Command Language (CCL). The qualifiers recognised by the CCL parser are specified in an external configuration file in the format described by the YAZ documentation.
    If query construction fails for either type of
    query object - typically because the query
    string itself is not valid PQN or CCL - then an
    exception
    is thrown.
   
    It will be readily recognised that these objects have no methods
    other than their constructors: their only role in life is to be
    used in searching, by being passed to the
    resultSet class's constructor.
   
Given a suitable set of CCL qualifiers, the following pairs of queries are equivalent:
    prefixQuery("dinosaur");
    CCLQuery("dinosaur");
    prefixQuery("@and complete dinosaur");
    CCLQuery("complete and dinosaur");
    prefixQuery("@and complete @or dinosaur pterosaur");
    CCLQuery("complete and (dinosaur or pterosaur)");
    prefixQuery("@attr 1=7 0253333490");
    CCLQuery("isbn=0253333490");