XML 子元素上的命名空间

XML namespace on child element

我有以下 class 结构:

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 处理者都不会关心您的两种情况之间的差异,您也不应该关心。这就像属性的排序。在 XML 水平上差异是微不足道的。您必须下降到 XML 下方的文本级别才能检测或控制这种差异,但在 XML 级别您最好忽略它,因为它无关紧要。