code: def resolve_nested_schema(self, schema):
          
          schema_instance = resolve_schema_instance(schema)
          schema_key = make_schema_key(schema_instance)
          if schema_key not in self.refs:
              schema_cls = self.resolve_schema_class(schema)
              name = self.schema_name_resolver(schema_cls)
              if not name:
                  try:
                      json_schema = self.schema2jsonschema(schema)
                  except RuntimeError:
                      raise APISpecError(
                          "Name resolver returned None for schema {schema} which is "
                          "part of a chain of circular referencing schemas. Please"
                          " ensure that the schema_name_resolver passed to"
                          " MarshmallowPlugin returns a string for all circular"
                          " referencing schemas.".format(schema=schema)
                      )
                  if getattr(schema, "many", False):
                      return {"type": "array", "items": json_schema}
                  return json_schema
              name = get_unique_schema_name(self.spec.components, name)
              self.spec.components.schema(name, schema=schema)
          return self.get_ref_dict(schema_instance)
docs: Return the Open API representation of a marshmallow Schema.
  
          Adds the schema to the spec if it isn't already present.
  
          Typically will return a dictionary with the reference to the schema's
          path in the spec unless the `schema_name_resolver` returns `None`, in
          which case the returned dictoinary will contain a JSON Schema Object
          representation of the schema.
  
          :param schema: schema to add to the spec