Lorsque vous sérialisez une collection/liste vide avec XmlSerializer, un élément xml est écrit.
Si vous voulez que rien ne soit sérialisé, vous pouvez utiliser ce truc: ajouter une fonction ShouldSerialize..().

Exemple:

public class MaClasse
{
    public List Éléments;
    public bool ShouldSerializeÉléments()
    { return Éléments != null && Éléments.Count > 0; }
}

Le nom de la fonction est « ShouldSerialize »+<le nom du champ ou propriété de la collection>

XmlSerializer détectera automatiquement cette fonction et lui demandera s’il doit sérialiser ou non le champ ou la propriété, ou non.