C# 为什么要将名称空间前缀添加到我的XML属性中?

C# 为什么要将名称空间前缀添加到我的XML属性中?,c#,.net,xml,xml-namespaces,xmltextwriter,C#,.net,Xml,Xml Namespaces,Xmltextwriter,: 我正在添加一个无前缀名称空间的属性。它正在创建一个前缀d1p1 为什么?代码级答案 因为 writer.WriteAttributeString("attribute", "www.windward.net", "5"); 将属性放入www.windward.net,名称空间前缀用于建立关联 如果希望属性不在名称空间中,请删除“www.windward.net”名称空间参数: writer.WriteAttribu

:

我正在添加一个无前缀名称空间的属性。它正在创建一个前缀
d1p1

为什么?

代码级答案 因为

    writer.WriteAttributeString("attribute", "www.windward.net", "5");
属性
放入
www.windward.net
,名称空间前缀用于建立关联

如果希望
属性
不在名称空间中,请删除
“www.windward.net”
名称空间参数:

    writer.WriteAttributeString("attribute", "5");

XML级答案 更新以解决OP评论:


我希望属性的名称空间
www.windward.net
,但不带前缀。我该怎么做

这相当于希望将默认名称空间应用于属性,这与以下相反:

默认名称空间声明不直接应用于属性名称;非固定属性的解释由它们出现的元素决定

如果希望这些属性位于名称空间中,请接受API使用名称空间前缀将它们放在名称空间中


另见

我希望属性的名称空间为www.windward.net,但不带前缀。我该怎么做?相关:,@davidtheelen:答案扩展到解决您的后续问题。哦,好的。你的解释很有道理。@GSerg:Answer更新为包含两个相关Q/A链接中更好的链接以及另一个有用的Q/A链接。谢谢。请编辑您的帖子并添加所需的输出。
    writer.WriteAttributeString("attribute", "5");