def METHOD_NAME(xmldoc):
    compounddefs = xmldoc.getElementsByTagName('compounddef')
    for node in compounddefs:
        kind = node.attributes['kind'].value
        if kind in ['page', 'file', 'example', 'union']: continue
        if kind in ['group']:
            for member in node.getElementsByTagName('memberdef') :
                parse_member_def(None, member, False)
            continue
        if kind in ['namespace']:
            symbol = concat_text_from_tags(node, ['compoundname'])
            for member in node.getElementsByTagName('memberdef') :
                parse_member_def(symbol, member, False)
            continue
        file = get_file_location(node)
        if debug: print '  from file:', file
        if '/examples/' in file or '/test/' in file or '[generated]' in file or '[STL]' in file:
            continue
        if has_element(node, ['templateparamlist']): continue
        library = mapped_physical_component(file)
        symbol = concat_text_from_tags(node, ['compoundname'])
        file_location = get_file_location(node)
        publish = is_file_publishable(file_location)
        if publish:
            if kind in ['class', 'struct']:
                prot =  node.attributes['prot'].value
                publish = prot != 'private'
                print_debug_info(node, ['kind', 'prot'])
                report(library, publish, 'vtable?for?' + symbol)
                report(library, publish, 'typeinfo?for?' + symbol)
        if publish:
            for member in node.getElementsByTagName('memberdef') :
                parse_member_def(symbol, member, kind in ['class', 'struct'])