Base validation + each cell is instance of DSM or MDM.

def validate(self):
        """Base validation + each cell is instance of DSM or MDM."""
        super().validate()
        message_dsm = 'Matrix at [%s:%s] is not an instance of '\
                      'DesignStructureMatrix or MultipleDomainMatrix.'
        message_ddm = 'Matrix at [%s:%s] is not an instance of '\
                      'DomainMappingMatrix or MultipleDomainMatrix.'
        messages = []
        for i, row in enumerate(self.data):
            for j, cell in enumerate(row):
                if i == j:
                    if not isinstance(cell, (
                            DesignStructureMatrix, MultipleDomainMatrix)):
                        messages.append(message_dsm % (i, j))
                elif not isinstance(cell, (
                        DomainMappingMatrix, MultipleDomainMatrix)):
                    messages.append(message_ddm % (i, j))
        if messages:
            raise self.error('\n'.join(messages))