2011-05-10 3 views
1

웹 서비스를 쿼리하는 InfoPath 2010 양식이 있습니다. 웹 서비스는 전체 InfoPath 양식을 XML 문자열 매개 변수로 예상합니다. XML 문자열이란 형식의 문자열을 의미합니다.웹 서비스에 대한 전체 InfoPath 양식 전달 (제출하지 않음)

<my:myFields xmlns:my=...> 
    <my:Name>UserName</my:Name> 
    ... 
</my:myFields> 

웹 서비스는 문자열을 처리하고 결과를 InfoPath 양식으로 반환합니다.

루트 요소 "."를 전달하려고 시도했지만 웹 서비스 끝에서 \ r \ n 및 \ t 형식의 값만 수신합니다. XML 태그와 값을 전달하는 방법에 대한 아이디어.

답변

2

목록 이름과 양식 이름을 웹 서비스에 전달하여 해결 방법을 발견했습니다. SharePoint에서 호스팅되는 웹 서비스는 양식의 XML을 가져옵니다.

public class InfoPathHelper 
{ 
    private string _listName; 
    private string _fileUrl; 

    public InfoPathHelper(string listName, string fileName) 
    { 
     _listName = listName; 
     _fileUrl = string.Format("{0}/{1}.xml", listName, fileName); 
    } 

    public string GetFormXml() 
    { 
     using (SPWeb web = SPContext.Current.Web) 
     { 
      SPList lib = web.Lists[_listName]; 
      SPFile file = lib.RootFolder.Files[_fileUrl]; 
      XmlDocument doc = new XmlDocument(); 
      doc.Load(file.OpenBinaryStream()); 
      return doc.OuterXml; 
     } 
    } 
}
: 여기

참조 용 코드