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");