C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2006/12/07 20:37
メモです。。

XmlSerializer クラス (System.Xml.Serialization)
オブジェクトとXMLのシリアライズ・デシリアライズを行うクラス。
シリアライズの対象はパブリックフィールドとパブリックプロパティのみ。

XmlRootAttribute クラス (System.Xml.Serialization)
型 ( クラス、構造体、列挙体、インターフェイス ) に対して、XMLルート要素名を明示的に指定するための属性。

XmlElementAttribute クラス (System.Xml.Serialization)
メンバー ( パブリックフィールド、パブリックプロパティ ) に対して、XMLの要素としてシリアライズされることを明示的に指定するための属性。 要素名を明示的に指定することも可能。
また、コレクションメンバーに対して、引数なしでこの属性を付加すると、そのコレクションの各要素がXML要素のシーケンスとして認識される。

XmlAttributeAttribute クラス (System.Xml.Serialization)
メンバー ( パブリックフィールド、パブリックプロパティ ) に対して、XMLの属性としてシリアライズされることを明示的に指定するための属性。 属性名を明示的に指定することも可能。

XmlIgnoreAttribute クラス (System.Xml.Serialization)
メンバー ( パブリックフィールド、パブリックプロパティ ) に対して、シリアライズの対象としないことを明示的に指定するための属性。

XmlArrayItemAttribute クラス (System.Xml.Serialization)
派生型を含む可能性のあるコレクションメンバーに対して、含まれる可能性のある型を明示的に指定することで、正常にシリアライズできるようにするための属性。


コレクションは以下の条件を満たすことでシリアライズ可能となる。

引用
XmlSerializer は、IEnumerable または ICollection を実装するクラスは特別に対処します。IEnumerable を実装するクラスは、1 つのパラメータを受け取るパブリックな Add メソッドを実装している必要があります。Add メソッドのパラメータは、GetEnumerator から返された値の Current プロパティから返された型と同じであるか、またはその型の基本型の 1 つであることが必要です。IEnumerable に加えて ICollection (CollectionBase など) を実装しているクラスは、整数を受け取るパブリックな Item インデックス付きプロパティ (C# のインデクサ) および整数型のパブリック Count プロパティを持っている必要があります。Add メソッドのパラメータは、Item プロパティから返された型か、その型の基本型の 1 つと同じ型であることが必要です。ICollection を実装するクラスの場合、シリアル化する値は GetEnumerator を呼び出して取得するのではなく、インデックス付き Item プロパティから取得します。



XML スキーマ定義ツール (Xsd.exe)
XMLスキーマからクラスの生成、XMLスキーマからDataSetの生成、クラスからXMLスキーマの生成、などを行うツール。


[ 参考 ]
@IT:連載:.NETで簡単XML
タグ: .NET C# XML