Как добавить префикс перед элементом xml, используя атрибут в С#

с программированием это:

В результате я хочу иметь это:

<rootprefix:rootname 
     noPrefix="attribute with no prefix"
     firstprefix:attrOne="first atrribute"
     secondprefix:attrTwo="second atrribute with different prefix">

     ...other elements...

 </rootprefix:rootname>

Способ сделать это с помощью кодирования:

NameTable nt = new NameTable();
nt.Add("key");

XmlNamespaceManager ns = new XmlNamespaceManager(nt);
ns.AddNamespace("firstprefix", "fp");
ns.AddNamespace("secondprefix", "sp");

root.SetAttribute("attrOne", ns.LookupPrefix("fp"), "1st attribute");
root.SetAttribute("attrTwo", ns.LookupPrefix("sp"), "2nd with different prefix");

Но я хочу сделать это, используя атрибуты типов выше объявления класса. Например: [XmlType(Namespace = "bb:aaaa")] или что-то еще.

Как я могу это сделать?

Изменить: мой класс примерно так:

[XmlRoot("Node", Namespace="http://flibble")]
public class MyType {
    [XmlElement("chileNode")]
    public string Value { get; set; }
}

И я хочу иметь такой результат:

<?xml version="1.0" encoding="ibm857"?>
<myNamespace:Node xmlns:myNamespace="http://hede.com" />

Без написания этого кода:

static class Program
{
    static void Main()
    {
        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
        ns.Add("myNamespace", "http://hede.com");
        XmlSerializer xser = new XmlSerializer(typeof(MyType));
        xser.Serialize(Console.Out, new MyType(), ns);
    }
}

С таким атрибутом:

[XmlRoot("Node", Namespace="http://hede.com", NamespacePrefix="myNamespace")]
public class MyType {
    [XmlElement("chileNode")]
    public string Value { get; set; }
}

Но я не смог найти способ поставить префикс «myNamespace» перед тегом xml.


person uzay95    schedule 21.11.2013    source источник
comment
Я думаю, что эти префиксы называются пространствами имен.   -  person Reactgular    schedule 21.11.2013
comment
Думаю, я не мог рассказать о своей проблеме. Я сейчас отредактирую.   -  person uzay95    schedule 21.11.2013
comment
@MathewFoscarini Префиксы не называются пространствами имен — они называются префиксами пространств имен. Пространство имен — это URI, на который ссылается префикс.   -  person Brian Warshaw    schedule 21.11.2013
comment
Вы правы и хотите поместить префикс внутри объявления атрибута, как объявление uri пространства имен, которое мы сделали.   -  person uzay95    schedule 21.11.2013
comment
@AlexFilipovici, я взял примеры кодов из этого вопроса. Вопрос другой, потому что я прошу решение, которое выполняется с помощью атрибутов, а не кодирования. Я просто хочу создать свои классы и пометить их xml-вывод с помощью атрибутов... Надеюсь, на этот раз мой вопрос будет понятен.   -  person uzay95    schedule 22.11.2013