C# 特定XML数据的代码
我需要从c#代码生成这个xml,但是我在多个编写器提供的xmlwriter中迷失了方向。。任何有xml专业知识的人都可以帮助我编写C#代码来生成以下xml:C# 特定XML数据的代码,c#,asp.net,xml,wpf,C#,Asp.net,Xml,Wpf,我需要从c#代码生成这个xml,但是我在多个编写器提供的xmlwriter中迷失了方向。。任何有xml专业知识的人都可以帮助我编写C#代码来生成以下xml: <?xml version="1.0" encoding="utf-16" ?> <Request xmlns="http://www.ABC.com/submit" xmlns:l="http://www.ABC.com/link" l:source="SRC" l:date="2014-03-05">
<?xml version="1.0" encoding="utf-16" ?>
<Request xmlns="http://www.ABC.com/submit" xmlns:l="http://www.ABC.com/link" l:source="SRC" l:date="2014-03-05">
<MyData l:identifier="PRAV" l:value="151.19448366182007269092408546">
<DATA1 l:value="0.151328110447635" />
<DATA2 l:value="0.6461191930062688087600920641" />
<DATA3 l:value="0.144793773777417" />
</MyData>
</Request>
使用Visual Studio的功能
有了它,您可以复制XML结构(前提是它是有效的,而当前不是有效的)
选择:
- 编辑
- 特殊粘贴
- 将XML粘贴为类
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.ABC.com/submit", IsNullable = false)]
public partial class Request
{
private RequestMyData myDataField;
private string sourceField;
private System.DateTime dateField;
/// <remarks/>
public RequestMyData MyData
{
get
{
return this.myDataField;
}
set
{
this.myDataField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public string source
{
get
{
return this.sourceField;
}
set
{
this.sourceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link", DataType = "date")]
public System.DateTime date
{
get
{
return this.dateField;
}
set
{
this.dateField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyData
{
private RequestMyDataDATA1 dATA1Field;
private RequestMyDataDATA2 dATA2Field;
private RequestMyDataDATA3 dATA3Field;
private string identifierField;
private decimal valueField;
/// <remarks/>
public RequestMyDataDATA1 DATA1
{
get
{
return this.dATA1Field;
}
set
{
this.dATA1Field = value;
}
}
/// <remarks/>
public RequestMyDataDATA2 DATA2
{
get
{
return this.dATA2Field;
}
set
{
this.dATA2Field = value;
}
}
/// <remarks/>
public RequestMyDataDATA3 DATA3
{
get
{
return this.dATA3Field;
}
set
{
this.dATA3Field = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public string identifier
{
get
{
return this.identifierField;
}
set
{
this.identifierField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA1
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA2
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA3
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
//
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(命名空间=”http://www.ABC.com/submit“,IsNullable=false)]
公共部分类请求
{
私有RequestMyData myDataField;
私有字符串源字段;
private System.DateTime日期字段;
///
公共请求MyData MyData
{
得到
{
返回this.myDataField;
}
设置
{
this.myDataField=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串源
{
得到
{
返回此.sourceField;
}
设置
{
this.sourceField=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link,DataType=“日期”)]
public System.DateTime日期
{
得到
{
返回此.dateField;
}
设置
{
this.dateField=值;
}
}
}
///
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData
{
私有请求MyData1 Data1字段;
私有请求MyData2 Data2字段;
private RequestMyData3 Data3字段;
私有字符串标识符字段;
私有十进制值字段;
///
公共请求MyData1 DATA1
{
得到
{
返回此.data1字段;
}
设置
{
this.dATA1Field=值;
}
}
///
公共请求MyData2 DATA2
{
得到
{
返回此.data2字段;
}
设置
{
this.dATA2Field=值;
}
}
///
公共请求MyData3 DATA3
{
得到
{
返回此.data3字段;
}
设置
{
this.data3字段=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串标识符
{
得到
{
返回此.identifierField;
}
设置
{
this.identifierField=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
///
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData1
{
私有十进制值字段;
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
///
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData2
{
私有十进制值字段;
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
///
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData3
{
私有十进制值字段;
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
使用Visual Studio的功能
有了它,您可以复制XML结构(前提是它是有效的,而当前不是有效的)
选择:
- 编辑
- 特殊粘贴
- 将XML粘贴为类
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.ABC.com/submit", IsNullable = false)]
public partial class Request
{
private RequestMyData myDataField;
private string sourceField;
private System.DateTime dateField;
/// <remarks/>
public RequestMyData MyData
{
get
{
return this.myDataField;
}
set
{
this.myDataField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public string source
{
get
{
return this.sourceField;
}
set
{
this.sourceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link", DataType = "date")]
public System.DateTime date
{
get
{
return this.dateField;
}
set
{
this.dateField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyData
{
private RequestMyDataDATA1 dATA1Field;
private RequestMyDataDATA2 dATA2Field;
private RequestMyDataDATA3 dATA3Field;
private string identifierField;
private decimal valueField;
/// <remarks/>
public RequestMyDataDATA1 DATA1
{
get
{
return this.dATA1Field;
}
set
{
this.dATA1Field = value;
}
}
/// <remarks/>
public RequestMyDataDATA2 DATA2
{
get
{
return this.dATA2Field;
}
set
{
this.dATA2Field = value;
}
}
/// <remarks/>
public RequestMyDataDATA3 DATA3
{
get
{
return this.dATA3Field;
}
set
{
this.dATA3Field = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public string identifier
{
get
{
return this.identifierField;
}
set
{
this.identifierField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA1
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA2
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA3
{
private decimal valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
public decimal value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
//
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(命名空间=”http://www.ABC.com/submit“,IsNullable=false)]
公共部分类请求
{
私有RequestMyData myDataField;
私有字符串源字段;
private System.DateTime日期字段;
///
公共请求MyData MyData
{
得到
{
返回this.myDataField;
}
设置
{
this.myDataField=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串源
{
得到
var listOfData = new List<Data> {new Data {Value = 0.15}, new Data {Value = 0.64}};
var myData = new MyData {Identifier = "PRAV", Value = 151.194, Datum = listOfData};
var request = new Request {MyData = myData, Source = "SRC"};
XmlSerializer ser = new XmlSerializer(typeof(Request));
StringWriter sw = new StringWriter();
ser.Serialize(sw, request);
Console.WriteLine(sw.ToString());
<?xml version="1.0" encoding="utf-16"?>
<Request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http:/ /www.w3.org/2001/XMLSchema" Source="SRC">
<MyData Identifier="PRAV" Value="151.194">
<Datum>
<Data Value="0.15" />
<Data Value="0.64" />
</Datum>
</MyData>
</Request>
using System.Xml.Linq;
var doc = new XDocument(new XDeclaration("1.0", "utf-16", ""));
XNamespace ns = "http://www.ABC.com/submit";
XNamespace l = "http://www.ABC.com/link";
//<Request>
doc.Add(new XElement(ns+"Request",
//xmlns="http://www.ABC.com/submit"
new XAttribute("xmlns", "http://www.ABC.com/submit"),
//xmlns:l="http://www.ABC.com/link"
new XAttribute(XNamespace.Xmlns + "l", "http://www.ABC.com/link"),
//l:source="SRC"
new XAttribute(l+"source", "SRC"),
//l:date="2014-03-05"
new XAttribute(l + "date", "2014-03-05"),
//<MyData>
new XElement(ns+"MyData",
//l:identifier="PRAV"
new XAttribute(l+"identifier", "PRAV"),
//l:value="151.19448366182007269092408546"
new XAttribute(l + "value", "151.19448366182007269092408546"),
//<DATA1>
new XElement(ns+"DATA1",
//l:value="0.151328110447635"
new XAttribute(l + "value", "0.151328110447635")),
//<DATA2>
new XElement(ns+"DATA2",
//l:value="0.6461191930062688087600920641"
new XAttribute(l + "value", "0.6461191930062688087600920641")),
//<DATA3>
new XElement(ns+"DATA3",
//l:value="0.144793773777417"
new XAttribute(l + "value", "0.144793773777417")))));
doc.Save("xml_name.xml");