private function processQueryParams(Schema $schema, $mainEntity)
 {
     // Get rid of any 'PHPSESSION' and cookie params.
     RestUrlParams::extractValue($this->params, session_name());
     // Create/restore the temporaryIdMap.
     $storedTemporaryIds = NULL;
     if (isset($_SESSION[$this->sessionId])) {
         $storedTemporaryIds = TemporaryIdMap::deserializeTemporaryIds($schema, $_SESSION[$this->sessionId]);
     }
     $this->temporaryIdMap = new TemporaryIdMap($storedTemporaryIds);
     // Validate that prefixed parameters refer to existing entities.
     foreach ($this->params as $paramName => &$paramValue) {
         if (RestUrlParams::isFetchParam($paramName)) {
             continue;
         }
         $paramNameParts = explode(RestUrlParams::ENTITY_SEPARATOR, $paramName);
         $entity = NULL;
         $queryParam = NULL;
         if (count($paramNameParts) == 1) {
             if ($mainEntity == NULL) {
                 //                    error_log("Ignoring unknown query parameter: '$paramName=$paramValue'.");
                 unset($this->params[$paramName]);
                 continue;
             }
             $entity = $mainEntity;
             $queryParam = $paramNameParts[0];
         } else {
             // Check if the specified entity exists.
             $entity = $schema->getObjectEntity($paramNameParts[0], false);
             if ($entity == NULL) {
                 throw new Exception("Unknown entity '{$paramNameParts['0']}' in query parameters.", RestResponse::CLIENT_ERROR);
             }
             $queryParam = $paramNameParts[1];
         }
         // If one or more ID's are specified...
         if (strcasecmp($queryParam, RestUrlParams::ID) == 0) {
             // ...then substitute any temporary ID with its persisted counterpart.
             $persistedIds = array();
             foreach (explode(RestUrlParams::ID_SEPARATOR, $paramValue) as $id) {
                 $persistedIds[] = $this->temporaryIdMap->getPersistedId($entity, $id);
             }
             $paramValue = implode(RestUrlParams::ID_SEPARATOR, $persistedIds);
         }
     }
 }