Private/Get-ScoreUIDs.ps1

function Get-ScoreUIDs {
    [CmdletBinding()]
    param (
        $XML
    )

    $uidList = [System.Collections.Generic.List[System.String]]::new()
    $XML.SelectNodes("//ScoreDef/@UID")."#text" | ForEach-Object { $uidList.Add($_) }
    $XML.SelectNodes("//LeafScore/@UID")."#text" | ForEach-Object { $uidList.Add($_) }
    $XML.SelectNodes("//CompositeScore/@UID")."#text" | ForEach-Object { $uidList.Add($_) }
    $XML.SelectNodes("//ScoreDef/@UID")."#text" | ForEach-Object { $uidList.Add($_) }
    $uidList = $uidList | Where-Object { (-not ([string]::IsNullOrEmpty($_))) }
    $uidList = $uidList | Sort-Object -Unique
    if ($null -eq $uidList) {
        return
    }
    return $uidList
}