【发布时间】:2011-09-19 13:56:34
【问题描述】:
我有一个继承自 XTypedElement 的元素(使用 LinqToXsd 生成)。它有一个这样定义的字符串属性:
public string lang {
get {
XAttribute x = this.Attribute(XName.Get("lang", "xml"));
return XTypedServices.ParseValue<string>(x, XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String).Datatype);
}
set {
this.SetAttribute(XName.Get("lang", "xml"), value, XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String).Datatype);
}
}
最初它是使用 XName.Get("lang") 生成的,但我添加了命名空间“XML”,因为输出应该如下所示:
<tag xml:lang="nl-NL">...</tag>
相反,我现在明白了:
<tag p1:lang="nl-NL" xmlns:p1="xml">...</tag>
以下内容可能完全不相关,但我知道如何使用老派 System.Xml.Serialization.XmlSerializer 类来解决这个问题。您可以在调用 Serialize 方法时指定一些命名空间。 XTypedElement 的 ToString() 没有重载,我可以在其中指定此类命名空间。有什么想法吗?
【问题讨论】:
标签: c# xml namespaces linq-to-xml