'Parse attribute exchange key/value arguments into this
object.
@param ax_args: The attribute exchange fetch_response
arguments, with namespacing removed.
@type ax_args: {unicode:unicode}
@returns: None
@raises ValueError: If the message has bad values for
particular fields
@raises KeyError: If the namespace mapping is bad or required
arguments are missing'

def parseExtensionArgs(self, ax_args):

    self._checkMode(ax_args)
    aliases = NamespaceMap()
    for (key, value) in ax_args.iteritems():
        if key.startswith('type.'):
            type_uri = value
            alias = key[5:]
            checkAlias(alias)
            aliases.addAlias(type_uri, alias)
    for (type_uri, alias) in aliases.iteritems():
        try:
            count_s = ax_args[('count.' + alias)]
        except KeyError:
            value = ax_args[('value.' + alias)]
            if (value == u''):
                values = []
            else:
                values = [value]
        else:
            count = int(count_s)
            values = []
            for i in range(1, (count + 1)):
                value_key = ('value.%s.%d' % (alias, i))
                value = ax_args[value_key]
                values.append(value)
        self.data[type_uri] = values
