Вам необходимо указать, какие пространства имен требуется для каждого поля, используя пространство имен атрибута XmlElement . Это позволит вам связать поле с определенным пространством имен, но вам также нужно будет предоставить свойство вашего класса, которое возвращает тип XmlNamespaceDeclarations , чтобы получить сопоставление префикса.
См. Документацию и образец ниже:
[XmlRoot(ElementName="person")]
public class Person
{
[XmlElement(Namespace="http://example.com")]
public string fname;
[XmlElement(Namespace="http://sample.com")]
public string lname;
[XmlNamespaceDeclarations]
public XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
public Person()
{
xmlns.Add("a", "http://example.com");
xmlns.Add("b", "http://sample.com");
}
}