如何强制.NET XmlSerializer包含en-US的xml:lang

时间:2014-11-04 00:15:07

标签: c# xml xml-serialization

我希望这应该是非常简单的。我正在尝试设置" xml:lang" .NET C#中使用XmlSerializer的XML元素的属性。无论我做什么,我都无法得到" xml:lang"显示值为" en-US"。

我对XML序列化相当陌生,但我已经把其他所有内容都弄清楚了。此XML文件将在美国境外使用,定义语言非常重要。我的代码中的示例如下。这段代码给了我一个错误(我在其他地方定义了命名空间):

  

"全球XML项目' lang'从命名空间   ' http://www.w3.org/XML/1998/namespace'具有不匹配的默认值   属性:''和' en-US'并且无法映射到同一模式   项目。使用XML属性为其指定另一个XML名称或命名空间   其中一项,或确保默认值匹配。"

public class LongDescription
{

    [XmlAttribute("xml:lang", DataType = "language")]
    public string attrLang { get; set; }

    public LongDescription()
    {
        attrLang = "en-US";
    }
}

我在XmlSerializer文档中发现" xml:lang"是一种特殊情况,必须设置为"默认"或"保留"。如果我使用这些值,它会被填充,但是文字字符串"默认"或者"保存"而不是" en-US"我需要。

我假设有一些关于xml:lang的特殊规则我不知道但我还没有找到任何文档告诉我我错过了什么(即使在StackOverflow上)。

0 个答案:

没有答案