Při běžné serializaci objektu do XML nám XmlSerializer vytvoří root-element, který má nastavené namespaces, např.
<rootElement xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
To odpovídá XML normě. Může však nastat situace, např. při generování RSS Feedu, kdy namespace definovat nechceme.
Fígl, jak se zbavit namespace definice, spočívá v předhození XmlSerializeru kolekce XmlSerializerNamespaces s jednou „prázdnou“ položkou:
XmlSerializer serializer = new XmlSerializer(typeof (RssFeed)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", null); StringWriter writer = new StringWriter(CultureInfo.CurrentCulture); serializer.Serialize(writer, this, ns);
…a je to, výsledné XML bude mít kořenový element jen
<rootElement> ... </rootElement>