domande Così sto ancora chiedendo su questo argomento :-(Rimuovere xmlns vuoti = "" dopo serializzazione XML
Così ho creato un oggetto, decorare con la serializzazione XML Attributi, da quello che ho visto io aggiungo un spazio dei nomi vuoto per le raccolte XML serializzazione namepsace in modo da non ottenere gli attributi superflui non ho intenzione di avere
Edit:. L'attributo intendo sono questi:
<url xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="">
così mi dà due extra attributi.
Dopo ulteriori indagini se cambio l'inizio del documento da: **
writer.WriteStartElement("urlset","http://www.sitemaps.org/schemas/sitemap/0.9");
a
writer.WriteStartElement("urlset");
** Allora io non capisco le xmlns = "vuoti" attributo nel tag url. Questo è grande MA richiedono che l'elemento radice ha xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
, cioè .:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
Ma ancora ottenere un vuoto xmlns=""
attributo nel tipo serializzato.
[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)
{
Location = location;
LastModified = lastModified;
ChangeFrequency = changeFrequency;
Priority = priority;
}
}
allora io uso il seguente per aggiungere al mio XmlWriter:
foreach (uk.co.andrewrea.SitemapNode node in List)
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add(String.Empty, String.Empty);
Serializer.Serialize(Writer, node, ns);
}
Questo funziona bene, tranne io sono rimasto con un xmlns emtpy = "" come questo
<url xmlns="">
Chiunque qualche idea? Ancora una volta posso ottenere questo utilizzando XmlTextWriter e XmlDocument, ma ho bisogno di farlo utilizzando XmlWriter.
Qualsiasi aiuto è molto apprezzato.
> Aggiungo uno spazio dei nomi vuoto alle raccolte namepsace di serializzazione xml in modo da non ottenere gli attributi superflui che non intendevo avere. Potete approfondire questo? Cosa intendi con attributi superflui? – jro