2012-03-11 47 views
1
<SampleType xmlns="xxx:yyy:zzz"> 
    <Timestamp xmlns="aaa:bbb:ccc">2012-03-07T04:47:07Z</Timestamp> 
    <Ack xmlns="aaa:bbb:ccc">Success</Ack> 
    <CorrelationID xmlns="aaa:bbb:ccc">ef1ee378dd51</CorrelationID> 
    <EncryptionDetails xsi:type="ns:MEPEncryptionDetailsType"> 
     <Type xsi:type="xs:string">SHA1</Type> 
     <Key xsi:type="xs:string"></Key> 
    </EncryptionDetails> 
</SampleType> 

當我試圖反序列化這個XML,我得到了下面的錯誤「‘XSI’是一個未聲明的命名空間。」 我該如何解決這個問題?如何反序列化下面的XML在Silverlight在C#

+0

嘗試在某處找到字符串「xmlns:xsi」。也許它是在完整的xml文檔的開始處定義的。 – vorrtex 2012-03-11 08:12:11

回答

0

您需要確保您的XML文件包含xsi命名空間別名的定義。將以下屬性添加到XML中的根元素:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+0

我無法控制迴應壽。我通過使用XMLReaderSetting類來解決這個問題。謝謝。 – sunxin8086 2012-03-12 05:20:19

+0

@ sunxin8086:那麼你需要對那些確實擁有「控制響應」的人說句話,並告訴他們他們發送的XML是不可接受的。它們不應該包含未定義的xml:ns alais。您唯一的選擇是在加載之前調整xml字符串。 – AnthonyWJones 2012-03-13 09:10:54