<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>General</title><link>https://www.infopathdev.com:443/forums/41.aspx</link><description>If you're not sure where to ask your question, ask it here. If necessary, our moderators will make sure it gets classified in the correct board.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Expose Schema for Webservice Result</title><link>https://www.infopathdev.com:443/forums/thread/40564.aspx</link><pubDate>Mon, 13 Apr 2009 22:17:28 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:40564</guid><dc:creator>JamieGr</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/40564.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=41&amp;PostID=40564</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have creaated a webservice which works in internet explorer (i.e. it brings back the correct xml data). When I add it as a data connection to infopath there is nothing in the data tree under the &amp;quot;Results&amp;quot; node. I suspect this is because I have not assigned the schema to the xml document&amp;nbsp;I am sending back. &lt;/p&gt;
&lt;p&gt;The service&amp;nbsp;test page describes the webservice like this&lt;/p&gt;
&lt;p&gt;HTTP/1.1 200 OK&lt;br /&gt;Content-Type: text/xml; charset=utf-8&lt;br /&gt;Content-Length: &lt;font class="value" color="#00008b"&gt;&lt;strong&gt;length&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:soap=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;soap:Body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GetSingleVersionResponse xmlns=&amp;quot;http://barcap.org&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GetSingleVersionResult&amp;gt;&lt;font class="value" color="#00008b"&gt;&lt;strong&gt;xml&lt;/strong&gt;&lt;/font&gt;&amp;lt;/GetSingleVersionResult&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/GetSingleVersionResponse&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;but you can see that&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GetSingleVersionResult&amp;gt;&lt;font class="value" color="#00008b"&gt;&lt;strong&gt;xml&lt;/strong&gt;&lt;/font&gt;&amp;lt;/GetSingleVersionResult&amp;gt; contains no schema information. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The c# code i am using is a bit of a mess because i had to switch from returning a DataSet object to returning a XMLDocument object (this was a workaround for another problem). When it was returning a DataSet i could see the schema tree in the Data Source pannel. Here is the c# code:&lt;/p&gt;&lt;font size="2"&gt;[&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;WebMethod&lt;/font&gt;&lt;font size="2"&gt;]&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDocument&lt;/font&gt;&lt;font size="2"&gt; GetSingleVersion(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; stTableName, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; stItemGUID)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt;XmlDocument result = null;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDocument&lt;/font&gt;&lt;font size="2"&gt; result = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDocument&lt;/font&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; stSchemaPath = &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;@&amp;quot;F:\Visual Studio 2005\Projects\Project1\Schemas\Schema1.xsd&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;result.Schemas.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;, stSchemaPath);&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;using&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;SqlConnection&lt;/font&gt;&lt;font size="2"&gt; conn = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;SqlConnection&lt;/font&gt;&lt;font size="2"&gt;(sqlConn))&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;conn.Open();&lt;/p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;SqlCommand&lt;/font&gt;&lt;font size="2"&gt; command = conn.CreateCommand();&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;command.CommandText = &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;@&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt; 
&lt;p&gt;SELECT XMLData &lt;/p&gt;
&lt;p&gt;FROM dbo.&amp;quot;&lt;/font&gt;&lt;font size="2"&gt; + stTableName + &lt;/font&gt;&lt;font color="#a31515" size="2"&gt;@&amp;quot;&lt;/p&gt;WHERE ItemGUID = @x&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;command.Parameters.Add(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;@x&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;SqlDbType&lt;/font&gt;&lt;font size="2"&gt;.UniqueIdentifier);&lt;/p&gt;command.Parameters[0].Value = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Guid&lt;/font&gt;&lt;font size="2"&gt;(stItemGUID);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;SqlDataReader&lt;/font&gt;&lt;font size="2"&gt; reader = command.ExecuteReader();&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; (reader.Read())&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DataSet&lt;/font&gt;&lt;font size="2"&gt; ds = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DataSet&lt;/font&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;ds.ReadXmlSchema(stSchemaPath);&lt;/p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDataDocument&lt;/font&gt;&lt;font size="2"&gt; xd = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDataDocument&lt;/font&gt;&lt;font size="2"&gt;(ds);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;xd.Schemas.Add(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;, stSchemaPath);&lt;/p&gt;xd.Load(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;StringReader&lt;/font&gt;&lt;font size="2"&gt;((&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;)reader.GetValue(0)));&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;result = xd;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;//result = xd.DataSet;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;conn.Close();&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; result;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for any suggestions.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jamie&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>