parse_extension_args (OpenID::AX::FetchRequest)

    # File lib/openid/extensions/ax.rb, line 202
          def parse_extension_args(ax_args)
            check_mode(ax_args)

            aliases = NamespaceMap.new

            ax_args.each{|k,v|
              if k.index('type.') == 0
                name = k[5..-1]
                type_uri = v
                aliases.add_alias(type_uri, name)

                count_key = 'count.'+name
                count_s = ax_args[count_key]
                count = 1
                if count_s
                  if count_s == UNLIMITED_VALUES
                    count = count_s
                  else
                    count = count_s.to_i
                    if count <= 0
                      raise Error, "Invalid value for count #{count_key.inspect}: #{count_s.inspect}"
                    end
                  end
                end
                add(AttrInfo.new(type_uri, name, false, count))
              end
            }

            required = AX.to_type_uris(aliases, ax_args['required'])
            required.each{|type_uri|
              @requested_attributes[type_uri].required = true
            }
            if_available = AX.to_type_uris(aliases, ax_args['if_available'])
            all_type_uris = required + if_available

            aliases.namespace_uris.each{|type_uri|
              unless all_type_uris.member? type_uri
                raise Error, "Type URI #{type_uri.inspect} was in the request but not present in 'required' or 'if_available'"
              end
            }
            @update_url = ax_args['update_url']
          end