我们如何检查MinOccurs = 0的元素是否返回?

时间:2014-11-14 11:59:01

标签: web-services

我有来自第三方网络服务提供商的xml架构。

<xsd:element name="Student">
<xs:sequence>
    <xs:element name="Name" type="xs:string" minOccurs="1"/>
    <xs:element name="Address" type="xs:string" minOccurs="0"/>
    <xs:element name="Gender" type="xs:string" minOccurs="1"/>
</xs:sequence>
</xsd:element>

我将在我的C#代码中使用此Web服务返回的数据集。由于Address将minOccurs设置为0,这意味着Web服务可以返回Address的值或不返回Address。例如:

Scenario 1:
<Student>
 <Name>Eddie</Name>
 <Gender>Male</Gender>
</Student>

Scenario 2:
<Student>
 <Name>Alice</Name>
 <Address>White House</Address>
 <Gender>Female</Gender>
</Student>

Scenario 3:
<Student>
 <Name>Jenny</Name>
 <Address></Address>
 <Gender>Female</Gender>
</Student>

我是否知道如何在我的C#代码中检查Web服务是否返回地址。

对于方案1中的结果集,我想将我的表单中的联系人部分隐藏在一起。

对于方案2中的结果集,我想在表单上显示联系人部分,并显示地址。

对于方案3中的结果集,我想在表单上显示联系人部分,但将联系人部分中的地址字段设置为&#34;地址未提供&#34;。

我可以知道我能做到吗?

我知道我们可以检查元素是否具有值或是否为空。但是我们如何检查Web服务返回的结果是否包含元素(场景1)?

1 个答案:

答案 0 :(得分:0)

经过一些研究和测试,我想我可以有类似的东西:

bool ShowContactFlag = false;
if (Dataset.Tables[0].Columns.Contains("Address"))
{            
   ShowContactFlag = true;
}
else
{
   ShowContactFlag = false;
}