def format_configchoicefield_nodes(field_name, field, field_id, state, lineno):
    choice_dl = nodes.definition_list()
    for choice_value, choice_class in field.typemap.items():
        item = nodes.definition_list_item()
        item_term = nodes.term()
        item_term += nodes.literal(text=repr(choice_value))
        item += item_term
        item_definition = nodes.definition()
        def_para = nodes.paragraph()
        name = '.'.join((choice_class.__module__, choice_class.__name__))
        def_para += pending_config_xref(rawsource=name)
        item_definition += def_para
        item += item_definition
        choice_dl.append(item)
    choices_node = nodes.definition_list_item()
    choices_node.append(nodes.term(text='Choices'))
    choices_definition = nodes.definition()
    choices_definition.append(choice_dl)
    choices_node.append(choices_definition)
    field_type_item = nodes.definition_list_item()
    field_type_item.append(nodes.term(text="Field type"))
    field_type_item_content = nodes.definition()
    field_type_item_content_p = nodes.paragraph()
    if field.multi:
        multi_text = "Multi-selection "
    else:
        multi_text = "Single-selection "
    field_type_item_content_p += nodes.Text(multi_text, multi_text)
    field_type_item_content_p += make_python_xref_nodes_for_type(
        type(field),
        state,
        hide_namespace=True)[0].children[0]
    if field.optional:
        field_type_item_content_p += nodes.Text(' (optional)', ' (optional)')
    field_type_item_content += field_type_item_content_p
    field_type_item += field_type_item_content
    dl = nodes.definition_list()
    dl += create_default_item_node(field, state)
    dl += field_type_item
    dl += choices_node
    desc_node = create_description_node(field, state)
    title = create_title_node(field_name, field, field_id, state, lineno)
    return [title, dl, desc_node]