def METHOD_NAME(self, file):
    cves = []
    summary = ""
    vuln_references = []
    xml_root = ET.parse(file).getroot()
    id = xml_root.attrib.get("id")
    if id:
        glsa = "GLSA-" + id
        vuln_references = [
            Reference(
                reference_id=glsa,
                url=f"https://security.gentoo.org/glsa/{id}",
            )
        ]
    for child in xml_root:
        if child.tag == "references":
            cves = self.cves_from_reference(child)
        if child.tag == "synopsis":
            summary = child.text
        if child.tag == "affected":
            affected_packages = list(self.affected_and_safe_purls(child))
    # It is very inefficient, to create new Advisory for each CVE
    # this way, but there seems no alternative.
    for cve in cves:
        yield AdvisoryData(
            aliases=[cve],
            summary=summary,
            references=vuln_references,
            affected_packages=affected_packages,
        )