【发布时间】:2017-08-11 17:07:18
【问题描述】:
我在序列化以下内容的提交数据属性时遇到了困难,特别是作为数组的提交数据元素,每个提交数据元素都有一个字段数组(在此示例中,每个提交数据仅显示 1 个)。 xsd.exe 转换器也不处理提交的数据部分。
任何建议都将不胜感激。
<?xml version="1.0" encoding="UTF-8"?>
<forms>
<site>https://www.sample.com</site>
<export_date>2017-08-09T12:04:11-04:00</export_date>
<webform name="form A">
<crmFormId>form_A</crmFormId>
<version>1.0</version>
<formData>
<WEBFORMNODESTATUS>Unpublished</WEBFORMNODESTATUS>
<submittedData>
<field>
<crmFieldKey>aEXTERNALID</crmFieldKey>
<crmFieldValue>1000</crmFieldValue>
</field>
</submittedData>
<submittedData>
<field>
<crmFieldKey>bEXTERNALID</crmFieldKey>
<crmFieldValue>2000</crmFieldValue>
</field>
</submittedData>
</formData>
</webform>
<webform name="form_B">
<crmFormId>2</crmFormId>
<version>1.0</version>
<formData>
<WEBFORMNODESTATUS>Unpublished</WEBFORMNODESTATUS>
<submittedData>
<field>
<crmFieldKey>cEXTERNALID</crmFieldKey>
<crmFieldValue>1001</crmFieldValue>
</field>
</submittedData>
<submittedData>
<field>
<crmFieldKey>dEXTERNALID</crmFieldKey>
<crmFieldValue>1002</crmFieldValue>
</field>
</submittedData>
</formData>
</webform>
</forms>
这是我正在使用的课程。一切都很好,直到我尝试使用 submitData 元素。
[XmlRoot()]
public class forms
{
private string siteField;
private string export_dateField;
private formsWebform[] webformField;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string site
{
get
{
return this.siteField;
}
set
{
this.siteField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string export_date
{
get
{
return this.export_dateField;
}
set
{
this.export_dateField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute("webform", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public formsWebform[] webform
{
get
{
return this.webformField;
}
set
{
this.webformField = value;
}
}
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class formsWebform
{
private string crmFormIdField;
private string versionField;
private formsWebformFormData formDataField;
private string nameField;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string crmFormId
{
get
{
return this.crmFormIdField;
}
set
{
this.crmFormIdField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string version
{
get
{
return this.versionField;
}
set
{
this.versionField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute("formData", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public formsWebformFormData formData
{
get
{
return this.formDataField;
}
set
{
this.formDataField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
}
}
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class formsWebformFormData
{
private string wEBFORMNODESTATUSField;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string WEBFORMNODESTATUS
{
get
{
return this.wEBFORMNODESTATUSField;
}
set
{
this.wEBFORMNODESTATUSField = value;
}
}
private List<SubmittedDataFields> submittedDataField;
[System.Xml.Serialization.XmlArray("submittedData")]
[System.Xml.Serialization.XmlArrayItem("field")]
public List<SubmittedDataFields> submittedData
{
get
{
return this.submittedDataField;
}
set
{
this.submittedDataField = value;
}
}
}
public partial class SubmittedDataFields
{
private formsWebformFormDataSubmittedDataField[] data;
public formsWebformFormDataSubmittedDataField[] fields
{
get{
return this.data;
}
set {
this.data = value;
}
}
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class formsWebformFormDataSubmittedDataField
{
private string crmFieldKeyField;
private string crmFieldValueField;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string crmFieldKey
{
get
{
return this.crmFieldKeyField;
}
set
{
this.crmFieldKeyField = value;
}
}
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string crmFieldValue
{
get
{
return this.crmFieldValueField;
}
set
{
this.crmFieldValueField = value;
}
}
}
【问题讨论】:
标签: c# arrays xml nested deserialization