使用XmlWriter编写xsi:type

时间:2016-09-23 16:37:23

标签: c# xml

有没有办法添加字符串" xsi:type =" SomeType"使用XmlWriter类?

我的元素应该是这样的:

<Event xsi:type="SomeEvent" filename="c:\myFile.txt" ilepresence="Present">

2 个答案:

答案 0 :(得分:1)

我找不到添加属性的方法&#34; xsi:type&#34;使用XmlWriter到元素。我最终使用了XmlDocument,并且能够实现我的目标。

这是我实现相同目标的代码:

XmlElement items = xmlDoc.CreateElement("Items");
xmlDoc.AppendChild(items);
xmlDoc.DocumentElement.SetAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
xmlDoc.DocumentElement.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlDoc.DocumentElement.SetAttribute("xmlns", "http://myCompany.com/v1");

然后在代码中,我这样做了:

XmlAttribute xsiType = xmlDoc.CreateAttribute("xsi", "type", "http://www.w3.org/2001/XMLSchema");
xsiType.Value = "MyAttributeValue";

希望这有助于某人。

答案 1 :(得分:0)

一旦写入元素的开始,就可以使用WriteAttributeString()向其添加属性。例如:

string xsins = "http://www.w3.org/2001/XMLSchema-instance";

// Make sure you add this namespace to the root element...
writer.WriteAttributeString(localName: "xsi", ns: xmlns,
    value: xsins);

// Now you can reference that namespace in any child element
writer.WriteStartElement("Event");
writer.WriteAttributeString("type", xsins, "xsd:SomeEvent");
writer.WriteEndElement();