XML-структура вторичного источника данных WCF InfoPath

Я разрабатываю службу WCF для использования в формах InfoPath 2007. После добавления службы в качестве вторичного источника данных InfoPath автоматически создаст определенную структуру. Например:

Структура вторичного источника данных в infopath

Моя проблема с этим - сгенерированные xpaths. xpath отображаемого имени, например:

/dfs:myFields/dfs:dataFields/ns3:whoamiResponse/ns3:whoamiResult/q1:displayname

Поскольку мой веб-сервис должен заменить более старый, который реализован во многих формах с логикой, ссылающейся точно на определенный xpath, я должен получить точно такой же xpath, сгенерированный в моем новом веб-сервисе.

Как я могу повлиять на эти сгенерированные префиксы, такие как ns3:whoamiResult/q1:displayname ?

Я заметил, что q1 появился после того, как я изменил тип возвращаемого значения моей операции с DataSet на пользовательский класс. И tns/ns1/ns2/ns3 .. зависит от пространств имен, которые я изменил в [ServiceContract], [ServiceBehaviour] и некоторых других атрибутах.

[ServiceContract(Name="Webservice", Namespace = "BestNamespaceToBeEnteredHere")]
public interface IWebservice
{

    [OperationContract]
    //...
}

Может ли кто-нибудь указать мне правильное направление? Могу ли я каким-то образом передать пользовательскую схему с ответом веб-службы, где я могу определить, как должна выглядеть структура?

ваше здоровье! Фил


person philx_x    schedule 09.01.2015    source источник


Ответы (1)


Свойство Namespace ваших ServiceContract и DataContract влияет на пространства имен, используемые в ответе SOAP. Префиксы, как правило, произвольны, и я думаю, что InfoPath отображает их довольно странно, но существует множество статей о том, как на них влиять.

Хотя я обычно не поддерживаю ответы только по ссылкам, я перечисляю их ниже, поскольку я не мог объяснить это так же хорошо, как они уже есть:

Дубликаты:

person Mitch    schedule 11.01.2015