【问题标题】:C# XML Object Serialization: setting xmlns root attributeC# XML 对象序列化:设置 xmlns 根属性
【发布时间】:2010-01-19 12:26:00
【问题描述】:

我正在将一个对象序列化为 xml,并希望为根节点设置一个 xmlns 属性。

例如:

...
<root xmlns="[specified url]">
...
</root>

我似乎在成员上没有 xmlns 属性/属性,或者在没有前缀的序列化时似乎添加了命名空间?

有什么想法吗?

【问题讨论】:

  • 我可以通过将命名空间 url 添加到构造函数,然后在序列化时再次添加,省略前缀来做到这一点。这是最好的解决方案吗?

标签: c# xml xml-serialization


【解决方案1】:

这可以做到如下。对于顶级使用 XmlRoot,对于属性使用 XmlElement

[System.Xml.Serialization.XmlRoot(Namespace="http://topLevelNS")]
class MyClass
{
    [System.Xml.Serialization.XmlElement(Namespace = "http://SomeOtherNS")]
    public int MyVar { get; set; }
}

【讨论】:

  • 谢谢,这确实添加了命名空间引用,但不是以我需要支持我试图复制的 XML 格式的方式。
  • 有什么办法可以忽略命名空间吗?
  • MyVar 是数组时,此方法失败。我们得到第一个没有 xmlns 的元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多