VisualStudioではXMLからクラス定義を生成する機能があります。
手順
①XMLをクリップボードにコピーする
例として以下のXMLを使用します。
<Item>
<name>みかん</name>
<Price>
<Genka>80</Genka>
<Urine>120</Urine>
<Biko>こたつ</Biko>
</Price>
</Item>
クリップボードへのコピーはXML文字列を選択して[Ctrl]+[c]で出来ます。
②VisualStudioでクラスを作成したいソースを開いた上て、メニュー「編集(E)」→「形式を選択して貼り付け(S)」→「XMLをクラスとして貼り付ける(S)」を選択する
③XMLデータを元にクラス定義が生成されます
生成されたコードです。
// メモ: 生成されたコードは、少なくとも .NET Framework 4.5または .NET Core/Standard 2.0 が必要な可能性があります。
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Item
{
private string nameField;
private ItemPrice priceField;
/// <remarks/>
public string name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
}
}
/// <remarks/>
public ItemPrice Price
{
get
{
return this.priceField;
}
set
{
this.priceField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ItemPrice
{
private byte genkaField;
private byte urineField;
private string bikoField;
/// <remarks/>
public byte Genka
{
get
{
return this.genkaField;
}
set
{
this.genkaField = value;
}
}
/// <remarks/>
public byte Urine
{
get
{
return this.urineField;
}
set
{
this.urineField = value;
}
}
/// <remarks/>
public string Biko
{
get
{
return this.bikoField;
}
set
{
this.bikoField = value;
}
}
}
※XMLの形式が不正の場合は以下のようなメッセージが表示されます。
備考
- 生成されたコードは型などが想定通りでない場合もあるので多少見直しが必要ですが、とても便利な機能です。