code: def _ReadRecordSchemaInformation(self, tables, file_object, record_offset):
      
      _ = self._ReadRecordHeader(file_object, record_offset)
  
      attribute_value_offsets = self._ReadRecordAttributeValueOffset(
          file_object, record_offset + 24, 2)
  
      if attribute_value_offsets != (0x21, 0x25):
        raise errors.ParseError('Unsupported record attribute value offsets')
  
      file_offset = file_object.tell()
      data_type_map = self._GetDataTypeMap('keychain_record_schema_information')
  
      record_values, _ = self._ReadStructureFromFileObject(
          file_object, file_offset, data_type_map)
  
      relation_name = record_values.relation_name.decode('ascii')
  
      table = KeychainDatabaseTable()
      table.relation_identifier = record_values.relation_identifier
      table.relation_name = relation_name
  
      tables[table.relation_identifier] = table
  
      table = tables.get(self._RECORD_TYPE_CSSM_DL_DB_SCHEMA_INFO, None)
      if not table:
        raise errors.ParseError('Missing CSSM_DL_DB_SCHEMA_INFO table.')
  
      record = collections.OrderedDict({
          'RelationID': record_values.relation_identifier,
          'RelationName': relation_name})
  
      table.records.append(record)
docs: Reads a schema information (CSSM_DL_DB_SCHEMA_INFO) record.
  
      Args:
        tables (dict[int, KeychainDatabaseTable]): tables per identifier.
        file_object (file): file-like object.
        record_offset (int): offset of the record relative to the start of
            the file.
  
      Raises:
        ParseError: if the record cannot be read.