Правильный namespace в xml c#

243
19 апреля 2017, 10:15

Имеется XML:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" 
    <soap:Header>
        <wsa:MessageID>uuid:71a3676c-ff20-4eae-8ad6-34235a0c0c7c</wsa:MessageID>
    </soap:Header>
    <soap:Body>
      ...
    </soap:Body>
</soap:Envelope>

Из неё я генирирую C# класс, используя Edit-Paste Special-Paste XML As Classes в Visual Studio. Получается следующее:

/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://schemas.xmlsoap.org/soap/envelope/", IsNullable = false)]
public partial class Envelope
{
    private EnvelopeHeader headerField;
    private string bodyField;
    /// <remarks/>
    public EnvelopeHeader Header
    {
        get
        {
            return this.headerField;
        }
        set
        {
            this.headerField = value;
        }
    }
    /// <remarks/>
    public string Body
    {
        get
        {
            return this.bodyField;
        }
        set
        {
            this.bodyField = value;
        }
    }
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public partial class EnvelopeHeader
{
    private string messageIDField;
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://schemas.xmlsoap.org/ws/2003/03/addressing")]
    public string MessageID
    {
        get
        {
            return this.messageIDField;
        }
        set
        {
            this.messageIDField = value;
        }
    }
}

После создания экземпляра класса Envelope пытаюсь его сериализовать в строку. Получаю следующее:

<?xml version="1.0" encoding="utf-8"?>
<q1:Envelope xmlns:q1="http://schemas.xmlsoap.org/soap/envelope/">
    <Header xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <MessageID xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">uuid:00e7baf2-f019-4961-85ea-d63a5f93ce51</MessageID>
    </Header>
    <Body xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        ....
    </Body>
</q1:Envelope>

Хотя ожидал получить первоначальную XML. Вопроса 2:
1) Что за дефолтный namespace q1?
2) Какие атрибуты следует добавить в C# код для получения необходимого результата?

READ ALSO
Как передать regex в Asp.Net MVC

Как передать regex в Asp.Net MVC

Есть, определенный набор полей, которые должны автоматически обрабатываться через Jquery в соответствии с регуляркой, но этих полей много, и пришла...

208
Как получить индексы из коллекции List&lt;T&gt;

Как получить индексы из коллекции List<T>

Нужно получить индексы одного list<T> Знаю что есть метод IndexOf но он не работает(не выводит индексы) Для начала я создаю новый List<T> и переписываю...

266
Как перевести отсчёты с файла wav в секунды

Как перевести отсчёты с файла wav в секунды

ЗдравствуйтеПодскажите, пожалуйста, я построил график звукового сигнала wav во временной области (который представлен ниже), но вместо секунд...

242
DownloadStringAsync. List&lt;T&gt; ничего не возвращает

DownloadStringAsync. List<T> ничего не возвращает

Почему list всегда возвращает 0?

280