Десериализация XML с другим пространством имен

Я пытаюсь скормить xml, который веб-сервис java выплевывает через десериализацию xml, но, похоже, в файлах xml, которые у меня есть, отсутствуют пространства имен. Вот класс C #, созданный из WSDL:

[XmlTypeAttribute(Namespace="http://mynamespace.com")]
public class Customer {

    [XmlElementAttribute(IsNullable=true)]
    public string customerNo {
        get; set;
    }

    [XmlElementAttribute(IsNullable=true)]
    public string customerType {
        get; set;
    }
}

Видите определение пространства имен? В реальных файлах XML отсутствует декларация пространства имен, и они выглядят следующим образом:

<?xml version="1.0"?>
<Customer>
    <customerNumber>1234</customerNumber>
    <customerType />
</CreditCard>

Десериализатор Xml десериализует корневой объект, но все свойства имеют значение NULL. Мне удалось заставить его работать, либо удалив XmlTypeAttribute, либо отрегулировав файл xml, добавив пространства имен:

<xml version="1.0"?>
<Customer>
    <customerNumber xmlns="http://mynamespace.com">1234</creditCardNo>
    <customerType xsi:nil="true" xmlns="http://mynamespace.com" />
</Customer>

Проблема в том, что сами файлы xml имеют большой размер, и я не хочу делать это вручную и не хочу удалять атрибут. Как проще всего заставить его работать? Регенерировать весь документ с правильными атрибутами xmlns и десериализовать, используя это вместо этого?


person Hadi Eskandari    schedule 10.07.2012    source источник
comment
Это веб-служба в стиле RPC? О значении параметров для такого сервиса могут возникать разногласия. Вы можете опубликовать отрывок из WSDL? В частности, message, соответствующая схема XML, operation, binding и т. Д.   -  person John Saunders    schedule 10.07.2012
comment
Это веб-сервис RPC, я пытаюсь воспроизвести произвольные фрагменты XML, переданные клиентом в качестве ответов, но, к сожалению, файлы XML имеют большой размер и не соответствуют WSDL, поэтому у меня проблема с десериализацией.   -  person Hadi Eskandari    schedule 10.07.2012
comment
Когда я пытаюсь, это определение класса генерирует правильные пространства имен. Даже xmlns:xsi и xmlns:xsd. Как вы вызываете сериализатор?   -  person Markus Jarderot    schedule 10.07.2012
comment
@MarkusJarderot Я пытаюсь десериализовать xml без xmlnss, сериализация класса в xml, конечно, работает нормально, но это не то, что я пытаюсь сделать.   -  person Hadi Eskandari    schedule 11.07.2012
comment
Второй ответ на этот вопрос должен помочь: Сериализация БЕЗ xmlns   -  person Markus Jarderot    schedule 11.07.2012
comment
@MarkusJarderot Это именно то, что я сделал, чтобы решить проблему сегодня. Спасибо.   -  person Hadi Eskandari    schedule 11.07.2012