'Given attribute exchange arguments, populate this FetchRequest.
@param ax_args: Attribute Exchange arguments from the request.
As returned from L{Message.getArgs<openid.message.Message.getArgs>}.
@type ax_args: dict
@raises KeyError: if the message is not consistent in its use
of namespace aliases.
@raises NotAXMessage: If ax_args does not include an Attribute Exchange
mode.
@raises AXError: If the data to be parsed does not follow the
attribute exchange specification. At least when
\'if_available\' or \'required\' is not specified for a
particular attribute type.'

def parseExtensionArgs(self, ax_args):

    self._checkMode(ax_args)
    aliases = NamespaceMap()
    for (key, value) in ax_args.iteritems():
        if key.startswith('type.'):
            alias = key[5:]
            type_uri = value
            aliases.addAlias(type_uri, alias)
            count_key = ('count.' + alias)
            count_s = ax_args.get(count_key)
            if count_s:
                try:
                    count = int(count_s)
                    if (count <= 0):
                        raise AXError(('Count    %r    must    be    greater    than    zero,    got    %r' % (count_key, count_s)))
                except ValueError:
                    if (count_s != UNLIMITED_VALUES):
                        raise AXError(('Invalid    count    value    for    %r:    %r' % (count_key, count_s)))
                    count = count_s
            else:
                count = 1
            self.add(AttrInfo(type_uri, alias=alias, count=count))
    required = toTypeURIs(aliases, ax_args.get('required'))
    for type_uri in required:
        self.requested_attributes[type_uri].required = True
    if_available = toTypeURIs(aliases, ax_args.get('if_available'))
    all_type_uris = (required + if_available)
    for type_uri in aliases.iterNamespaceURIs():
        if (type_uri not in all_type_uris):
            raise AXError(('Type    URI    %r    was    in    the    request    but    not    present    in    "required"    or    "if_available"' % (type_uri,)))
    self.update_url = ax_args.get('update_url')
