@hep.over('<STR_LIT>', '<STR_LIT>')<EOL>def document_type(self, key, value):
schema = load_schema('<STR_LIT>')<EOL>publication_type_schema = schema['<STR_LIT>']['<STR_LIT>']<EOL>valid_publication_types = publication_type_schema['<STR_LIT>']['<STR_LIT>']<EOL>document_type = self.get('<STR_LIT>', [])<EOL>publication_type = self.get('<STR_LIT>', [])<EOL>a_values = force_list(value.get('<STR_LIT:a>'))<EOL>for a_value in a_values:<EOL><INDENT>normalized_a_value = a_value.strip().lower()<EOL>if normalized_a_value == '<STR_LIT>':<EOL><INDENT>continue  <EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = False<EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>elif normalized_a_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>elif normalized_a_value in COLLECTIONS_MAP:<EOL><INDENT>self.setdefault('<STR_LIT>', []).append(COLLECTIONS_MAP[normalized_a_value])<EOL><DEDENT>elif normalized_a_value in DOCUMENT_TYPE_MAP:<EOL><INDENT>document_type.append(DOCUMENT_TYPE_MAP[normalized_a_value])<EOL><DEDENT>elif normalized_a_value in valid_publication_types:<EOL><INDENT>publication_type.append(normalized_a_value)<EOL><DEDENT><DEDENT>c_value = force_single_element(value.get('<STR_LIT:c>', '<STR_LIT>'))<EOL>normalized_c_value = c_value.strip().lower()<EOL>if normalized_c_value == '<STR_LIT>':<EOL><INDENT>self['<STR_LIT>'] = True<EOL><DEDENT>self['<STR_LIT>'] = publication_type<EOL>return document_type<EOL>
Populate the ``document_type`` key.

    Also populates the ``_collections``, ``citeable``, ``core``, ``deleted``,
    ``refereed``, ``publication_type``, and ``withdrawn`` keys through side
    effects.