private/ConvertTo-SfStandardValueSetXml.ps1

function ConvertTo-SfStandardValueSetXml {

    <#
        .SYNOPSIS
        Converts a single StandardValueSet entry into its *.standardValueSet-meta.xml content.

        .DESCRIPTION
        Builds the XML for a StandardValueSet from the given entry and the picklist values
        found in MetadataModel.Tables._PicklistValues, filtered by ValueSetType = 'StandardValueSet'
        and matching ValueSetName.

        .OUTPUTS
        [string] The raw XML content for the *.standardValueSet-meta.xml file.
    #>


    [CmdletBinding()]
    param (
        # Single entry from MetadataModel.Tables._StandardValueSets.
        [Parameter(Mandatory, Position = 0)]
        [PSCustomObject] $ValueSet,

        # The metadata model as imported from *.csv and/or *.xlsx with Import-SfMetadataModel
        [Parameter(Mandatory)]
        [PSCustomObject] $MetadataModel
    )

    $ErrorActionPreference = 'Stop'

    $PicklistValues = $MetadataModel.Tables._PicklistValues |
        Where-Object { ($_._ValueSetType -eq 'StandardValueSet') -and ($_._ValueSetName -eq $ValueSet._Name) }

    $xml = '<?xml version="1.0" encoding="UTF-8"?>'
    $xml += '<StandardValueSet xmlns="http://soap.sforce.com/2006/04/metadata">'
    $xml += ConvertTo-XmlTag 'sorted' $ValueSet._Sorted -IsTrueFalseNull

    foreach ($PicklistValue in $PicklistValues) {
        $xml += ConvertTo-SfPicklistValueXml $PicklistValue
    }

    $xml += '</StandardValueSet>'
    return $xml
}