【问题标题】:How to deserialize namespaces into classes如何将命名空间反序列化为类
【发布时间】:2011-10-07 07:19:43
【问题描述】:

我需要像这样反序列化一个 XML:

<?xml version="1.0" encoding="utf-8"?>
<ns0:Info xmlns:ns0="http://www.x.com/">
 <Name>Anthony</Name>
 <Job>Developer</Job>
</ns0:Info>

我已经使用 XSD 工具从 XSD 文档创建了类,但它无法识别 NAMESPACES。我怎么能做到?我怎样才能改变班级以识别他们?我应该改为更改 XSD 吗?

提前致谢

【问题讨论】:

  • 看起来和here甚至xml一样!
  • 我复制了一个简单的例子...不是同一个问题
  • 如果不是同一个问题,请解释为什么该问题的答案不适合您。
  • 问题是生成的 xsd 无法识别带有命名空间的标签,例如 ,它​​说(ns0 是一个无法识别的命名空间),它只适用于简单的标签 例如。所以我想知道如何更改生成的类或 XSD 以使其正常工作。

标签: c# .net xml xml-serialization xml-namespaces


【解决方案1】:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

//Add an empty namespace and empty value
ns.Add("", "");

//Create the serializer
XmlSerializer slz = new XmlSerializer(someType);

//Serialize the object with our own namespaces (notice the overload)
slz.Serialize(myXmlTextWriter, someObject, ns);

【讨论】:

  • 问题出在反序列化时。我知道可以通过添加命名空间来进行序列化,但是我不知道如何进行逆操作。
猜你喜欢
  • 2011-12-06
  • 2019-12-15
  • 2012-04-13
  • 2018-02-19
  • 2011-03-09
  • 2015-11-03
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多