私は複数のスレッドを読み込んでおり、シリアル化メソッドのフォームC#を利用してXMLをデシリアライズすることができます。私が抱えている問題は、私が提供したXMLがこれまでに見たようなものではないということです。そして、アイテムのリストを含むオブジェクトを持つ代わりに、私は複数のプロパティを含む1つのアイテムを持つオブジェクトを取得します。ここに私が持っているものがあります。これはXMLです:XMLへのXMLの逆シリアル化#奇妙なXMLと奇妙なクラスが生成されました
<DATA>
<OBJECT TYPE="Sheet consumption">
<ITEM>
<PROPERTY NAME="Sheet">GN18 48x120</PROPERTY>
<PROPERTY NAME="Sheet used area">31.556835306782627</PROPERTY>
<PROPERTY NAME="Made quantity">2</PROPERTY>
<PROPERTY NAME="Required quantity">2</PROPERTY>
<PROPERTY NAME="Sheet weight">34.132561</PROPERTY>
<PROPERTY NAME="Sheet width">1219.2</PROPERTY>
<PROPERTY NAME="Sheet length">3048</PROPERTY>
<PROPERTY NAME="Sheet thickness">1.1684</PROPERTY>
<PROPERTY NAME="Real time">0.712</PROPERTY>
<PROPERTY NAME="Production order">139020</PROPERTY>
<PROPERTY NAME="Item">W220-09528</PROPERTY>
<PROPERTY NAME="Quantity/Sheet">55</PROPERTY>
</ITEM>
<ITEM>
<PROPERTY NAME="Sheet">GN20 48x120</PROPERTY>
<PROPERTY NAME="Sheet used area">35.895446716901191</PROPERTY>
<PROPERTY NAME="Made quantity">14</PROPERTY>
<PROPERTY NAME="Required quantity">14</PROPERTY>
<PROPERTY NAME="Sheet weight">26.618381</PROPERTY>
<PROPERTY NAME="Sheet width">1219.2</PROPERTY>
<PROPERTY NAME="Sheet length">3048</PROPERTY>
<PROPERTY NAME="Sheet thickness">0.9144</PROPERTY>
<PROPERTY NAME="Real time">0.414</PROPERTY>
<PROPERTY NAME="Production order">139019</PROPERTY>
<PROPERTY NAME="Item">W220-09533-C</PROPERTY>
<PROPERTY NAME="Quantity/Sheet">7</PROPERTY>
</ITEM>
</OBJECT>
</DATA>
このクラスはSystem.Collections.Genericを使用して
をデシリアライズするためにどのように見えるかです。 using System.Xml.Serialization;
//
// This source code was auto-generated by xsd, Version=4.0.30319.33440.
//
namespace WindowsFormsApplication1
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class DATA
{
private DATAOBJECT itemsField;
/// <remarks/>
[System.Xml.Serialization.XmlElement("OBJECT")]
public DATAOBJECT Items
{
get
{
return this.itemsField;
}
set
{
this.itemsField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DATAOBJECT
{
private List<DATAOBJECTITEMPROPERTY> iTEMField;
private string tYPEField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlArrayItem("PROPERTY", typeof(DATAOBJECTITEMPROPERTY), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public List<DATAOBJECTITEMPROPERTY> ITEM
{
get
{
return this.iTEMField;
}
set
{
this.iTEMField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string TYPE
{
get
{
return this.tYPEField;
}
set
{
this.tYPEField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class DATAOBJECTITEMPROPERTY
{
private string nAMEField;
private string valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string NAME
{
get
{
return this.nAMEField;
}
set
{
this.nAMEField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
}
私は私が期待することをデシリアライズ結果は、タイプDATAOBJECTITEMPROPERTY
の2つのオブジェクトを持つことであるが、代わりに、私は基本的には、各プロパティ名であるタイプDATAOBJECTITEMPROPERTY
の24のオブジェクトを取得します。
私が間違っていることを得ることはありません。