def add_value(self, name, value):
try:<EOL><INDENT>if self._rfc_values[name] is None:<EOL><INDENT>self._rfc_values[name] = value<EOL><DEDENT>elif self.strict:<EOL><INDENT>if name in ('<STR_LIT>', '<STR_LIT:type>'):<EOL><INDENT>raise errors.MalformedLinkValue(<EOL>'<STR_LIT>'.format(name))<EOL><DEDENT>return<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>pass<EOL><DEDENT>if self.strict and name in ('<STR_LIT:title>', '<STR_LIT>'):<EOL><INDENT>return<EOL><DEDENT>self._values.append((name, value))<EOL>
Add a new value to the list.

:param str name: name of the value that is being parsed
:param str value: value that is being parsed
:raises ietfparse.errors.MalformedLinkValue:
    if *strict mode* is enabled and a validation error
    is detected

This method implements most of the validation mentioned in
sections 5.3 and 5.4 of :rfc:`5988`.  The ``_rfc_values``
dictionary contains the appropriate values for the attributes
that get special handling.  If *strict mode* is enabled, then
only values that are acceptable will be added to ``_values``.