docs: def getExtensionArgs(self):
          """Serialize this object into arguments in the attribute
          exchange namespace
  
          @returns: The dictionary of unqualified attribute exchange
              arguments that represent this fetch_response.
          @rtype: {unicode;unicode}
          """
  
          aliases = NamespaceMap()
  
          zero_value_types = []
  
          if self.request is not None:
              # Validate the data in the context of the request (the
              # same attributes should be present in each, and the
              # counts in the response must be no more than the counts
              # in the request)
  
              for type_uri in self.data:
                  if type_uri not in self.request:
                      raise KeyError(
                          'Response attribute not present in request: %r'
                          % (type_uri,))
  
              for attr_info in self.request.iterAttrs():
                  # Copy the aliases from the request so that reading
                  # the response in light of the request is easier
                  if attr_info.alias is None:
                      aliases.add(attr_info.type_uri)
                  else:
                      aliases.addAlias(attr_info.type_uri, attr_info.alias)
  
                  try:
                      values = self.data[attr_info.type_uri]
                  except KeyError:
                      values = []
                      zero_value_types.append(attr_info)
  
                  if (attr_info.count != UNLIMITED_VALUES) and \
                         (attr_info.count < len(values)):
                      raise AXError(
                          'More than the number of requested values were '
                          'specified for %r' % (attr_info.type_uri,))
  
          kv_args = self._getExtensionKVArgs(aliases)
  
          # Add the KV args into the response with the args that are
          # unique to the fetch_response
          ax_args = self._newArgs()
  
          # For each requested attribute, put its type/alias and count
          # into the response even if no data were returned.
          for attr_info in zero_value_types:
              alias = aliases.getAlias(attr_info.type_uri)
              kv_args['type.' + alias] = attr_info.type_uri
              kv_args['count.' + alias] = '0'
  
          update_url = ((self.request and self.request.update_url)
                        or self.update_url)
  
          if update_url:
              ax_args['update_url'] = update_url
  
          ax_args.update(kv_args)
  
          return ax_args