2016-07-21 57 views
0

我試圖反序列化XML下面的C#類未聲明的前綴:NS0是同時Deserialising XML

<StaffingOrder xmlns="NameSpaceName"> 
    <ReportingRequirements> 
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName> 
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName> 
    </ReportingRequirements> 
    <Comments>Comment</Comments>  
</StaffingOrder> 

但反序列化我收到以下錯誤:

Error: There was an error processing 'Test.xml'. 
    - 'ns0' is an undeclared prefix 

哪有我反序列化ns0標籤。

+1

反序列化通常被稱爲解析。如果XML格式不正確,則無法解析XML。找出這個不是XML創建的地方,並在源頭修復它。 –

回答

2

由於前綴ns0未綁定到任何名稱空間,XML文檔不是名稱空間良好的格式。這就是爲什麼它不能被解析。

它可以綁定到您選擇的與xmlns的命名空間:NS0屬性圍繞其使用的任何標記,就像這樣:

<StaffingOrder 
    xmlns="NameSpaceName" 
    xmlns:ns0="http://www.example.com/some/namespace"> 
    <ReportingRequirements> 
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName> 
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName> 
    </ReportingRequirements> 
    <Comments>Comment</Comments>  
</StaffingOrder>