Remove xmlns vazio = “” após serialização de xml

Então, ainda estou fazendo perguntas sobre este tópico: -

Então, crio um objeto, decorei-o com os Atributos de serialização de XML, pelo que vi, adicionei um espaço de nome vazio às coleções de namespace de serialização de XML, para não obter os atributos supérfluos que não pretendia te

Editar O atributo que eu quero dizer são estes:

<url xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="">

assim me dá dois atributos extras.

Após uma investigação mais aprofundada, se eu alterar o início do documento de: **

writer.WriteStartElement("urlset","http://www.sitemaps.org/schemas/sitemap/0.9");

par

writer.WriteStartElement("urlset");

** Então não recebo o atributo xmlns = "" vazio nas tags de URL. Isso é ótimo, mas eu exijo que o elemento raiz tenhaxmlns="http://www.sitemaps.org/schemas/sitemap/0.9", i.e.

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Mas ainda recebo um vazioxmlns="" no tipo serializado.

[XmlRoot(ElementName = "url", Namespace="")]
public class SitemapNode
{
    [XmlElement(ElementName = "loc")]
    public string Location { get; set; }
    [XmlElement(ElementName = "lastmod")]
    public DateTime LastModified { get; set; }
    [XmlElement(ElementName = "changefreq")]
    public SitemapChangeFrequency ChangeFrequency { get; set; }
    [XmlElement(ElementName = "priority")]
    public decimal Priority { get; set; }

    public SitemapNode()
    {
        Location = String.Empty;
        LastModified = DateTime.Now;
        ChangeFrequency = SitemapChangeFrequency.monthly;
        Priority = 0.5M;
    }

    public SitemapNode(string location, DateTime lastModified, SitemapChangeFrequency changeFrequency, decimal priority)
    {
        L,ocation = location;
        LastModified = lastModified;
        ChangeFrequency = changeFrequency;
        Priority = priority;
    }
}

Em seguida, uso o seguinte para anexar ao meu XmlWriter:

foreach (uk.co.andrewrea.SitemapNode node in List)
{
    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
    ns.Add(String.Empty, String.Empty);
    Serializer.Serialize(Writer, node, ns);
}

Isso funciona bem, exceto que me resta um xmlns vazio = "" assim

<url xmlns="">

Alguma idéia? Mais uma vez, posso conseguir isso usando o XmlTextWriter e o XmlDocument, mas preciso consegui-lo usando o XmlWrite

Qualquer ajuda é muito apreciada

questionAnswers(3)

yourAnswerToTheQuestion