2012-04-05 25 views
0

返回WCF REST服務當我運行從瀏覽器我的WCF REST方法當在XML元素的前我接收 一個:中的XML元素的前面在瀏覽器返回WCF REST服務時?任何人都知道這一點,並知道它爲什麼會發生?我期待格式化元素的<a:在瀏覽器

<?xml version="1.0"?> 
<GetProductNameListResponse xmlns="TheBigContract"> 
<GetProductNameListResult xmlns:i="http://www.w3.org/2001/XMLSchemaintance" xmlns:a="http://schemas.datacontract.org/2004/07/ProductDTO"> 

<a:Product> 
<a:Company i:nil="true"/> 
<a:DayOfWeek i:nil="true"/> 
<a:Location i:nil="true"/> 
<a:TimeOfDay i:nil="true"/> 
<a:TruckID>0</a:TruckID> 
<a:TruckName>BBQ Smith</a:TruckName> 
<a:Website>test</a:Website> 
</a:Product> 

<a:Product> 
<a:Company i:nil="true"/> 
<a:DayOfWeek i:nil="true"/> 
<a:Location i:nil="true"/> 
<a:TimeOfDay i:nil="true"/> 
<a:TruckID>0</a:TruckID> 
<a:TruckName>Bon Me</a:TruckName> 
<a:Website>test</a:Website> 
</a:Product> 

回答

0

這仍然是有效的XML。您的內部元素在http://schemas.datacontract.org/2004/07/ProductDTO名稱空間中定義,這就是XML使用同一XML文檔中多個名稱空間的元素的有效方式。你看到xmlns:a=...GetProductNameListResult?這爲該名稱空間定義了前綴(別名)。只有來自單個名稱空間的元素纔可以沒有前綴(稱爲默認名稱空間)。

編輯:名稱空間定義容器,其中元素和屬性名稱必須是唯一的。但如果來自不同的名稱空間,則可以在同一個XML文檔中擁有多個具有相同名稱的元素類型。它與.NET名稱空間類似。

+0

那麼你說如果我有一個獨特的命名空間,那麼我不會看到一個:?謝謝。 – midnightCoder 2012-04-05 16:12:04

+0

是的,它可以是這種情況,但它依賴於XML序列化程序,如果它使用默認命名空間或顯式使用命名空間。 – 2012-04-05 16:23:44

+0

在你的情況下,我不認爲你可以下到一個命名空間,因爲你有像公司這樣的「可空」屬性,必須在soap中使用XmlSchemaInstance命名空間中的'nil =「true」'來定義。 – 2012-04-05 16:31:46