Проблема десериализации XML нескольких пространств имен - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть xml: xml в пасте

и XSD, который я преобразовал в класс C# с VS DevTool:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://www.nrf-arts.org/IXRetail/namespace/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.nrf-arts.org/IXRetail/namespace/", IsNullable=false)]
public partial class RTSLineItemAddRequest {

    private ARTSHeader aRTSHeaderField;

    private Transaction[] pOSLogField;

    private string majorVersionField;


    public ARTSHeader ARTSHeader {
        get {
            return this.aRTSHeaderField;
        }
        set {
            this.aRTSHeaderField = value;
        }
    }


    public Transaction[] POSLog {
        get {
            return this.pOSLogField;
        }
        set {
            this.pOSLogField = value;
        }
    }

Но когда он пытается десериализоваться, я получаю:

<RTSLineItemAddRequest xmlns=' not expected...

Если я удаляю объект XmlTypeAttribute и XmlRootAttribute, он десериализуется без ошибки, но объект POSLog никогда не читается. Что я делаю не так?

Я не понимаю, почему DevTool пропускает POSLog, а объект - Transaction[], не могли бы вы мне это объяснить?

Я знаю, что могу читать каждый узел и синтаксический анализ, но я хочу сделать это в одну строку. А также, узнать о XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...