Поэтому я все еще задаю вопросы по этой теме: - (
Итак, я создаю объект, украшаю его с помощью атрибутов сериализации Xml. Из того, что я видел, я добавляю пустое пространство имен в коллекции пространств имен сериализации xml, чтобы не получить лишних атрибутов, которые у меня не были.
Редактировать: Я имею в виду следующие атрибуты:
<url xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="">
так что это дает мне два дополнительных атрибута.
После дальнейшего изучения, если я изменю начало документа с: **
writer.WriteStartElement("urlset","http://www.sitemaps.org/schemas/sitemap/0.9");
до
writer.WriteStartElement("urlset");
** Тогда я не получаю пустой атрибут xmlns = "" в тегах url. Это здорово, НО мне требуется, чтобы корневой элемент имел xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
, т.е.: * 10101 *
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
Но я все еще получаю пустой атрибут xmlns=""
в сериализованном типе.
[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;
}
}
Затем я добавляю к своему XmlWriter следующее:
foreach (uk.co.andrewrea.SitemapNode node in List)
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add(String.Empty, String.Empty);
Serializer.Serialize(Writer, node, ns);
}
Это работает нормально, за исключением того, что у меня остался emtpy xmlns = "" вот так
<url xmlns="">
У кого-нибудь есть идеи? Опять же, я могу добиться этого с помощью XmlTextWriter и XmlDocument, но мне нужно добиться этого с помощью XmlWriter.
Любая помощь очень ценится.