如何添加xsi:type属性到XML元素 [英] How to add xsi:type attribute to an XML element
本文介绍了如何添加xsi:type属性到XML元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何添加XSI:类型的XML元素
How can I add xsi:type in xml element.
我写在C#这是采用序列化XmlSerializer的XML文件的程序。一切似乎是除了一些我首先想到的是未成年人,但事实并非如此精细。
I am writing a routine in C# which is serializing an Xml file using XmlSerializer. Everything seems to be fine except something I first thought was a minor but turned out not to be so.
下面是我的代码,
public class OuterElement
{
public string firstElement { get; set; }
public string secondElement { get; set; }
public InnerElement innerElement = new InnerElement();
}
public class InnerElement
{
[XmlAttribute(AttributeName="xsi:type")]
public string type { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
XmlSerializer serializer = new XmlSerializer(typeof(OuterElement));
OuterElement outerElement = new OuterElement();
outerElement.firstElement = "name";
outerElement.secondElement = "CD";
outerElement.innerElement.type = "testsample";
using (TextWriter writer = new StreamWriter(@"G:\abc.xml"))
{
serializer.Serialize(writer, outerElement);
}
}
'
我想这样的XML,
<OuterElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lns:xsd="http://www.w3.org/2001/XMLSchema">
<innerElement xsi:type="testsample">
</innerElement>
<firstElement>name</firstElement>
<secondElement>CD</secondElement>
</OuterElement>
先谢谢了。
Thanks in advance.
推荐答案
您需要声明正确的命名空间的属性,像这样:
You need to declare the correct namespace for the attribute, like so:
public class InnerElement
{
[XmlAttribute(Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public string type = "bla";
}
这将产生所需输出:
<OuterElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<innerElement xsi:type="testsample" />
<firstElement>name</firstElement>
<secondElement>CD</secondElement>
</OuterElement>
这篇关于如何添加xsi:type属性到XML元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文