VisualStudio

[VisualStudio] XMLファイルからクラス定義を生成する

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)」を選択する

VisualStudioメニュー「編集(E)」→「形式を選択して貼り付け(S)」→「XMLをクラスとして貼り付ける(S)」

③XMLデータを元にクラス定義が生成されます

VisualStudio(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の形式が不正の場合は以下のようなメッセージが表示されます。

VisualStudio(XMLからクラスを生成できなかった時のメッセージ)

備考

  • 生成されたコードは型などが想定通りでない場合もあるので多少見直しが必要ですが、とても便利な機能です。

関連記事

-VisualStudio
-