我创建了一个Web服务,它返回一个我手动填充数据的数据集。当我启动服务并获得结果时,这就是我返回的XML。
<DataSet>
<xs:schema id="Results">
<xs:element name="Results" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="BillInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="AccountType" type="xs:string" minOccurs="0"/>
<xs:element name="AccountNumber" type="xs:string" minOccurs="0"/>
<xs:element name="AmountDue" type="xs:decimal" minOccurs="0"/>
<xs:element name="BillDescription" type="xs:string" minOccurs="0"/>
<xs:element name="DaysTilDue" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram>
<Results>
<BillInfo diffgr:id="BillInfo1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<AccountType>PP</AccountType>
<AccountNumber>1</AccountNumber>
<AmountDue>307.6500</AmountDue>
<BillDescription>Bill Number 20121</BillDescription>
<DaysTilDue>-362</DaysTilDue>
</BillInfo>
<BillInfo diffgr:id="BillInfo2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<AccountType>PP</AccountType>
<AccountNumber>1</AccountNumber>
<AmountDue>307.6500</AmountDue>
<BillDescription>Bill Number 20121</BillDescription>
<DaysTilDue>-362</DaysTilDue>
</BillInfo>
</Results>
</diffgr:diffgram>
</DataSet>
如果我没有设置元素路径并尝试将我的SSRS DataSet设置为等于结果,那么我将获得作为信息返回的模式。每当我尝试输入一个元素路径时,我都没有得到任何结果。我不确定我做错了什么。下面我展示了我正在使用的查询,包括加载我的SSRS数据集的ElementPath
<Query>
<SoapAction>http://tempuri.org/GetBillData</SoapAction>
<Method Namespace="http://tempuri.org/" Name="GetBillData" />
<Parameters>
<Parameter Name="PartyID">
<DefaultValue>0</DefaultValue>
</Parameter>
</Parameters>
<ElementPath IgnoreNamespaces="True"> DataSet {}/ diffgram {}/ Results {}/BillInfo</ElementPath>
</Query>
如果有人知道我做错了什么,我很乐意听到。
由于
答案 0 :(得分:2)
这将使它确实有效。所有问题都是正确的语法
<Query>
<Method Name="GetBillData" Namespace="http://tempuri.org/" >
<Parameters>
<Parameter Name="PartyID">
<DefaultValue>0</DefaultValue>
</Parameter>
</Parameters>
</Method>
<ElementPath IgnoreNamespaces="True">
GetBillDataResponse/GetBillDataResult/diffgram/Results/BillInfo
</ElementPath>
<SoapAction>http://tempuri.org/GetBillData</SoapAction>
</Query>
答案 1 :(得分:1)
如果我没记错的话,“ElementPath”必须是这样的: GetBillDataResponse {} / GetBillDataResult {} /数据集{} / {的DiffGram} ... Fiddler可以帮助您了解数据结构。