2014-11-14 59 views
0

我有一個來自第三方Web服務提供商的XML模式。我們如何檢查MinOccurs = 0的元素是否返回?

<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> 

我將使用來自該Web服務數據集回報我的C#代碼。由於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的結果集,我想顯示我的表單上的聯繫人部分,但將聯繫人部分中的地址字段設置爲「未提供地址」。

我可以知道我能做到嗎?

我知道我們可以檢查元素是否有值或isnull。但是,我們如何檢查Web服務返回的結果是否包含元素(方案1)?

回答

0

一些研究和測試完成後,我想我能有這樣的事情:

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