'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):

    try:
        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)
    except ValueError:
        pass
    return (u'&%s;' % x)
