Xml Serialization ile birlikte XmlWriter kullanıyorum. Ben XML çıktı verebilirim, ama xmlns özniteliğini XmlWriter ile nasıl ekleyeceğimi bana kaçıyor gibi görünüyor. Benim XmlWriter SitemapNodes aracılığıyla I sonra döngü yarattı ileXmlWriter ile XmlSerialization yaparken nasıl bir ad alanı eklerim?
Writer.WriteStartDocument();
Writer.WriteStartElement("urlset","http://www.sitemaps.org/schemas/sitemap/0.9");
böyle serileştirme aracılığıyla onları yaratan ve altta yatan StringBuilder bunları yazmak adres:
aşağıdaki kullanmak belgenin başlangıç yazmak içinforeach (uk.co.andrewrea.SitemapNode node in List)
{
Serializer.Serialize(Writer, node);
}
Bunun iyi çalıştığını söylediğim gibi AMA kök öğesi için yukarıdaki ad alanı dahil edilmemiştir. Fiziksel olarak özniteliği yazmayı denediğimde xmlns, xmlns'in XML kullanımı için sistem tarafından ayrıldığına dair bir istisna alıyorum, bu yüzden temelde kullanamıyorum.
XmlTextWriter kullanarak ve XmlDocument sınıfını kullanarak bunu nasıl yapacağımı biliyorum ama bunu XmlWriter ve Serileştirme aracılığıyla nasıl gerçekleştirdiğimi anlamanız gerekiyor.
Aşağıdaki girişimde, söz konusu ad alanı hakkında ayrılan istisnalar da bulunmaktadır. Eğer kod üzerinde kontrol sahibi olmadığını
foreach (uk.co.andrewrea.SitemapNode node in List)
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
Serializer.Serialize(Writer, node, ns);
}
Exception Details: System.ArgumentException: Prefix "xmlns" is reserved for use by XML.
Başlığı bir etiket alanı gibi kullanmayın. "XmlWriter ile XmlSerialization yaparken nasıl bir ad alanı eklerim?" – cjk