【发布时间】:2016-02-12 17:35:26
【问题描述】:
我有以下类结构:
public class Child { ... }
[XmlRoot("parent", Namespace="parentNamespace")]
public class Parent
{
[XmlElement(Namespace="childNamespace")]
public Child Child { get; set; }
}
我尝试使用命名空间对其进行序列化:
namespaces.Add(string.Empty, "parentNamespace");
namespaces.Add("c", "childNamespace");
我得到了在父元素中声明的子命名空间:
<parent xmlns:c="childNamespace" xmlns="parentNamespace">
<c:Child ... />
</parent>
但我想将子命名空间声明移动到子元素。像这样:
<parent xmlns="parentNamespace">
<c:Child ... xmlns:c="childNamespace">
</parent>
我应该如何放置 XML 属性来做到这一点?
【问题讨论】:
-
出于兴趣,你为什么在乎?两者在语义上是等价的——为什么命名空间的设置位置对你很重要?
-
第二个更接近我正在使用的手册
-
但是它们应该被任何读取 XML 的东西一样对待...
标签: c# xml xml-namespaces