docs: function (namespace, schemaUrl, cb) {
      var self = this;
  
      if (multivalue.hasValue(self.downloadedSchemas, namespace, schemaUrl)) {
        cb(null, {});
        return;
      }
  
      request(schemaUrl, function (err, response, body) {
        if (err) {
          cb("Error downloading " + namespace + " schema (" + schemaUrl + "): " + err);
          return;
        }
        else if (response.statusCode !== 200) {
          cb("Error downloading " + namespace + " schema (" + schemaUrl + "): HTTP status code " + response.statusCode);
          return;
        }
  
        self.addSchema(namespace, body, function (err, importsAndIncludes) {
          if (err) {
            cb(err);
            return;
          }
  
          multivalue.addValue(self.downloadedSchemas, namespace, schemaUrl);
  
          cb(null, importsAndIncludes);
        });
      });
    }