【问题标题】:ns0 is an undeclared prefix while Deserialising XMLns0 是反序列化 XML 时未声明的前缀
【发布时间】:2016-07-21 06:05:30
【问题描述】:

我正在尝试将下面的 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 标签。

【问题讨论】:

  • 反序列化通常称为解析。如果 XML 格式不正确,您将无法解析它。找出这个非 XML 的创建位置并从源头修复它。

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


【解决方案1】:

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>

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多