Svcutil.exe создает свойство XmlElement для xsd: любой элемент в схеме - PullRequest
0 голосов
/ 24 ноября 2010

Я использую инструмент svcutil для генерации набора прокси для стороннего wdsl. Один из типов, определенный в связанном файле XSD, использует элемент xs: any:

<xs:any namespace="##any" processContents="lax"/>

Созданный код использует свойство типа XmlElement для представления этого:

[System.Xml.Serialization.XmlAnyElementAttribute(Order=0)]
public System.Xml.XmlElement Any
{
    get
    {
        return this.anyField;
    }
    set
    {
        this.anyField = value;
    }
}

В этом поле нужно указать один из строго типизированных объектов, также сгенерированных инструментом.

У меня вопрос: есть ли простой / рекомендуемый способ получить от экземпляра объекта до экземпляра XmlElement?

Все, что я могу думать, это сериализовать граф объектов в XmlDocument и затем использовать его. Но это кажется неловким.

1 Ответ

0 голосов
/ 19 марта 2011

Сгенерированный код соответствует схеме.xs: любая маска для блоба xml.Вам нужно будет изменить схему с xs: any на определенный тип, если вы хотите, чтобы сгенерированный код был более конкретным.

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

...