1

我收到了一个 XSD 架构,我使用 xsd2code 从中创建了对象。

下一步是使用上面生成的对象反序列化示例 XML 文件。

问题是当我尝试反序列化对象时,单个元素的命名空间存在问题。

我现在在这个问题上苦苦挣扎了两天,我想知道在哪里看,即。可能是什么问题。

XML 成功反序列化元素

<Order xmlns="" id="97440">

但是当它看起来像这样时无法反序列化元素

<Order xmlns="http://type.domain.com"  id="97440">

什么可能导致该元素 Order 不接受任何命名空间?

如果我想在 VS 中手动编辑 XML 文件,并生成一个新的 Order 元素,它将使用空命名空间生成

c# 类包含

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://type.domain.com")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://type.domain.com", IsNullable = false)]
4

1 回答 1

3

约翰,

你的 C# 类中需要这样的东西

[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "http://type.domain.com")]
public class Order
{
    [XmlAttribute("id")]
    public string Id { get; set; }
    [XmlElement(Namespace ="http://www.cohowinery.com")]
    public decimal Price;  
}

您也可以为 XmlElement 设置命名空间。

    [XmlElement(Namespace ="http://www.cohowinery.com")]
    public decimal Price;  

此致。

于 2013-04-29T18:31:57.403 回答