def METHOD_NAME(self, root):
    if root is None:
        return
    for asset in root.xpath(
        ASSET_XPATH, namespaces={"xlink": "http://www.w3.org/1999/xlink"}
    ):
        asset.set("visited", "false")
    total = len(root.xpath(".//*[@visited]"))
    for asset_parent in root.xpath(PARENT_ASSET_XPATH):
        for asset in asset_parent.xpath(
            CHILD_ASSET_XPATH,
            namespaces={"xlink": "http://www.w3.org/1999/xlink"}
        ):
            if not asset.get("visited"):
                continue
            asset.attrib.pop("visited")
            yield Asset(asset, root, parent=asset_parent)
    number = 0
    total = len(root.xpath(".//*[@visited]"))
    zfill = len(str(total))
    for asset in root.xpath(".//*[@visited]"):
        asset.attrib.pop("visited")
        number += 1
        yield Asset(
            asset,
            root,
            number=str(number).zfill(zfill),
        )