Прошло много времени с тех пор, как я что-то сделал в InfoPath, поэтому извиняюсь за то, что это немного расплывчато:
Часть шаблона InfoPath, который представляет собой ZIP-архив с другим расширением, представляет собой файл с именем "upgrade.xsl". Этот файл содержит одно или несколько преобразований XSL, которые «обновляют» документы, нацеленные на более ранние версии схемы.
Вопрос заключается в следующем: почему правильное преобразование применяется в одном сценарии (SharePoint / Библиотека форм), а не в другом (веб-служба)? Возможно, второй процесс теряет тег, который InfoPath использует, чтобы узнать версию схемы, на которую ориентирован исходный документ? Я считаю, что тег, на который я ссылаюсь, является тегом «? Mso-infoPathSolution» (атрибут «solutionVersion»).
Если этот тег действительно удаляется из документа (и вы не можете его легко предотвратить), вам может потребоваться применить соответствующее XSL-преобразование «вручную». Конечно, если вы имеете дело с несколькими версиями, может быть трудно определить, какое преобразование необходимо применить в любом случае.