'Used in a call to re.sub to replace HTML, XML, and numeric
entities with the appropriate Unicode characters. If HTML
entities are being converted, any unrecognized entities are
escaped.'

def _convertEntities(self, match):

    x = match.group(1)
    if (self.convertHTMLEntities and (x in name2codepoint)):
        return unichr(name2codepoint[x])
    elif (x in self.XML_ENTITIES_TO_SPECIAL_CHARS):
        if self.convertXMLEntities:
            return self.XML_ENTITIES_TO_SPECIAL_CHARS[x]
        else:
            return (u'&%s;' % x)
    elif ((len(x) > 0) and (x[0] == '#')):
        if ((len(x) > 1) and (x[1] == 'x')):
            return unichr(int(x[2:], 16))
        else:
            return unichr(int(x[1:]))
    elif self.escapeUnrecognizedEntities:
        return (u'&amp;%s;' % x)
    else:
        return (u'&%s;' % x)
