Xelement 的 setattribute 属性 中的属性名称重叠

Attribute Name overlapping in setattribute property of Xelement

我正在尝试重新构建 XMI 结构。所以为此我需要添加一个子节点,如下所示

 <node xmi:type="shape" xmi:id="12358" type="rectangle">
 </node >

因此创建了一个 XMLElement 并尝试使用以下代码添加属性

 XmlElement child= papNotdoc.CreateElement("node");
 child.SetAttribute("type", "http://www.omg.org/XMI", "Shape");
 child.SetAttribute("id", "http://www.omg.org/XMI","12358");
 child.SetAttribute("type", "rectangle");

使用命名空间 URL 以便我将在 type 属性之一中获得前缀 XMI:

但不幸的是 XML 元素将两个类型命名的属性视为相同的属性并给我如下输出

 <node xmi:type="rectangle" xmi:id="12358">
 </node >

我想要 node.How 中的 xmi:typetype 属性来实现它?

您应该将 null 赋给 SetAttribute 方法的 namespaceURI 参数。

XmlElement child = papNotdoc.CreateElement("node");
child.SetAttribute("type", "http://www.omg.org/XMI", "Shape");
child.SetAttribute("id", "http://www.omg.org/XMI", "12358");
child.SetAttribute("type", null, "rectangle");