'Collects information from the XML for later use.
correct_choices is a list of the correct choices.
partial_choices is a list of the partially-correct choices.
partial_values is a list of the scores that go with those
choices, defaulting to 0.5 if no value is specified.'

def setup_response(self):

    self.mc_setup_response()
    xml = self.xml
    cxml = xml.xpath('//*[@id=$id]//choice', id=xml.get('id'))
    self.correct_choices = [contextualize_text(choice.get('name'), self.context) for choice in cxml if (contextualize_text(choice.get('correct'), self.context).upper() == 'TRUE')]
    if self.has_partial_credit:
        self.partial_choices = [contextualize_text(choice.get('name'), self.context) for choice in cxml if (contextualize_text(choice.get('correct'), self.context).lower() == 'partial')]
        self.partial_values = [float(choice.get('point_value', default='0.5')) for choice in cxml if (contextualize_text(choice.get('correct'), self.context).lower() == 'partial')]
