def metadata(<EOL>self, output_format=None, feature_name_callback=None, **kwargs<EOL>):
callback = feature_name_callback or str<EOL>if output_format is None:<EOL><INDENT>output_format = (<EOL>'<STR_LIT>'<EOL>)<EOL><DEDENT>responses = []<EOL>if self.features is not None:<EOL><INDENT>for feature in self.features:<EOL><INDENT>ds_kwargs = kwargs.copy()<EOL>ds_kwargs.update(<EOL>{<EOL>"<STR_LIT>": output_format,<EOL>"<STR_LIT>": callback(feature),<EOL>}<EOL>)<EOL>responses.append(<EOL>SensorML(self.server.describe_sensor(**ds_kwargs))<EOL>)<EOL><DEDENT><DEDENT>return responses<EOL>
Gets SensorML objects for all procedures in your filtered features.

You should override the default output_format for servers that do not
respond properly.