在反序列化XML时,ns0是未声明的前缀

时间:2016-07-21 06:05:31

标签: c# xml web-services wcf xml-deserialization

我正在尝试将下面的XML反序列化为C#类:

<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 个答案:

答案 0 :(得分:3)

XML文档不是名称空间良好的,因为前缀 ns0 未绑定到任何名称空间。这就是无法解析的原因。

它可以绑定到您选择的命名空间,并在其使用的任何标记中包含 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>