如何在 XElement 中使用特殊的 "xml" 命名空间前缀

How to use the special "xml" namespace prefix with XElement

我正在使用 XElement 在 C# 中构建一个 XML 文档,我正在尝试设置

<myEelment xml:space="preserve">

这是我目前的尝试:

myElement.SetAttributeValue(XName.Get("space", "xml"), "preserve");

但结果是这样的:

<myEelment p4:space="preserve" xmlns:p4="xml">

我明白这是怎么回事 - 当我想用作命名空间前缀时,我的代码使用 "xml" 作为命名空间 URI。我的问题是 AFAICT "xml" 命名空间前缀在某种程度上是隐式的,实际上没有与之关联的命名空间 URI。那么如何生成带有命名空间前缀 "xml"?

的属性

标准名称空间可作为 XNamespace class 上的属性使用。用那个。

var myElement = doc.Descendants("myElement").Single();
myElement.SetAttributeValue(XNamespace.Xml + "space", "preserve");