def _validate_isvalid_orcid(self, isvalid_orcid, field, value):
if isvalid_orcid and '<STR_LIT>' in value:<EOL><INDENT>try:<EOL><INDENT>res = search_orcid(value['<STR_LIT>'])<EOL><DEDENT>except ConnectionError:<EOL><INDENT>warn('<STR_LIT>')<EOL>return<EOL><DEDENT>except HTTPError:<EOL><INDENT>self._error(field, '<STR_LIT>' +<EOL>value['<STR_LIT:name>']<EOL>)<EOL>return<EOL><DEDENT>family_name = res['<STR_LIT:name>']['<STR_LIT>']['<STR_LIT:value>']<EOL>given_name = res['<STR_LIT:name>']['<STR_LIT>']['<STR_LIT:value>']<EOL>if not compare_name(given_name, family_name, value['<STR_LIT:name>']):<EOL><INDENT>self._error(field, '<STR_LIT>' +<EOL>value['<STR_LIT:name>'] + '<STR_LIT>' +<EOL>'<STR_LIT:U+0020>'.join([given_name, family_name])<EOL>)<EOL><DEDENT><DEDENT>
Checks for valid ORCID if given.

        Args:
            isvalid_orcid (`bool`): flag from schema indicating ORCID to be checked.
            field (`str`): 'author'
            value (`dict`): dictionary of author metadata.

        The rule's arguments are validated against this schema:
            {'isvalid_orcid': {'type': 'bool'}, 'field': {'type': 'str'},
             'value': {'type': 'dict'}}