XmlAnyElementAttributes クラス
アセンブリ: System.Xml (system.xml.dll 内)


複数の XmlAnyElementAttribute オブジェクトの動作をまとめてオーバーライドするには、XmlAnyElementAttributes を使用します。XmlAnyElementAttribute クラスの複数のインスタンスは、各インスタンスに個別の Name プロパティ値が設定されていれば、1 つのクラス メンバに適用できます。これにより、指定された名前の要素の中に複数の不明な要素をまとめて、適切な配列に追加するように XmlSerializer に指示できます。このために、XmlAnyElementAttribute クラスの複数のインスタンスを XmlAnyElementAttributes に追加できるようになっています。
複数の XmlAnyElementAttribute オブジェクトをまとめてオーバーライドするには、次の手順を実行します。

新しい XmlAnyElementAttribute を作成し、その属性オブジェクトを、XmlAnyElements プロパティからアクセスできるオブジェクトのコレクションに追加する例を次に示します。その後、XmlAttributes を、XmlSerializer を作成するために使用される XmlAttributeOverrides に追加します。作成された XmlSerializer が、オブジェクトのシリアル化または逆シリアル化に使用されます。XmlAnyElementAttributes プロパティを使用した結果を確認するには、Main メソッドの SerializeObject メソッドを実行して、UnknownElements.xml という名前の XML ドキュメントを作成します。結果として作成されたドキュメントを編集して、その他の (不明な) 要素を含めます。Main メソッド内の SerializeObject の呼び出しをコメント行に変更し、DeserializeObject メソッドの呼び出しはコメントから外します。これにより、不明な XML 要素の名前と値が出力されます。
Imports System Imports System.IO Imports System.Xml.Serialization Imports System.Xml Public Class Group Public GroupName As String <XmlAnyElement> _ Public Things () As object End Class Public Class Test Shared Sub Main() Dim t As Test = New Test() ' 1 Run this and create the XML document. ' 2 Add New elements to the XML document. ' 3 Comment out the New line, and uncomment ' the DeserializeObject line to deserialize the ' XML document and see unknown elements. t.SerializeObject("UnknownElements.xml") 't.DeserializeObject("UnknownElements.xml") End Sub Private Sub SerializeObject(filename As String) Dim ser As XmlSerializer = New XmlSerializer(GetType (Group)) Dim writer As TextWriter = New StreamWriter(filename) Dim g As Group = New Group() g.GroupName = "MyGroup" ser.Serialize(writer, g) writer.Close() End Sub Private Sub DeserializeObject(filename As String) Dim ser As XmlSerializer = CreateOverrideSerializer() ' A FileStream is needed to read the XML document. Dim fs As FileStream = New FileStream(filename, FileMode.Open) Dim g As Group = CType( _ ser.Deserialize(fs), Group) fs.Close() Console.WriteLine(g.GroupName) Console.WriteLine(g.Things.Length) Dim xelement As XmlELement for each xelement in g.Things Console.WriteLine(xelement.Name &": " & xelement.InnerXml) next End Sub Private Function CreateOverrideSerializer() As XmlSerializer Dim myAnyElement As XmlAnyElementAttribute = _ New XmlAnyElementAttribute() Dim xOverride As XmlAttributeOverrides = _ New XmlAttributeOverrides() Dim xAtts As XmlAttributes = New XmlAttributes() xAtts.XmlAnyElements.Add(myAnyElement) xOverride.Add(GetType(Group), "Things", xAtts) return New XmlSerializer(GetType(Group) , xOverride) End Function End Class
using System; using System.IO; using System.Xml.Serialization; using System.Xml; public class Group{ public string GroupName; [XmlAnyElement] public object[]Things; } public class Test{ static void Main(){ Test t = new Test(); // 1 Run this and create the XML document. // 2 Add new elements to the XML document. // 3 Comment out the new line, and uncomment // the DeserializeObject line to deserialize the // XML document and see unknown elements. t.SerializeObject("UnknownElements.xml"); // t.DeserializeObject("UnknownElements.xml"); } private void SerializeObject(string filename){ XmlSerializer ser = new XmlSerializer(typeof (Group)); TextWriter writer = new StreamWriter(filename); Group g = new Group(); g.GroupName = "MyGroup"; ser.Serialize(writer, g); writer.Close(); } private void DeserializeObject(string filename){ XmlSerializer ser = CreateOverrideSerializer(); // A FileStream is needed to read the XML document. FileStream fs = new FileStream(filename, FileMode.Open); Group g = (Group) ser.Deserialize(fs); fs.Close(); Console.WriteLine(g.GroupName); Console.WriteLine(g.Things.Length); foreach(XmlElement xelement in g.Things){ Console.WriteLine(xelement.Name + ": " + xelement.InnerXml); } } private XmlSerializer CreateOverrideSerializer(){ XmlAnyElementAttribute myAnyElement = new XmlAnyElementAttribute(); XmlAttributeOverrides xOverride = new XmlAttributeOverrides(); XmlAttributes xAtts = new XmlAttributes(); xAtts.XmlAnyElements.Add(myAnyElement); xOverride.Add(typeof(Group), "Things", xAtts); return new XmlSerializer(typeof(Group) , xOverride); } }
#using <System.dll> #using <System.xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml::Serialization; using namespace System::Xml; public ref class Group { public: String^ GroupName; [XmlAnyElement] array<Object^>^Things; }; void SerializeObject( String^ filename ); void DeserializeObject( String^ filename ); XmlSerializer^ CreateOverrideSerializer(); int main() { // 1 Run this and create the XML document. // 2 Add new elements to the XML document. // 3 Comment out the next line, and uncomment // the DeserializeObject line to deserialize the // XML document and see unknown elements. SerializeObject( "UnknownElements.xml" ); // DeserializeObject(S"UnknownElements.xml"); } void SerializeObject( String^ filename ) { XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); TextWriter^ writer = gcnew StreamWriter( filename ); Group^ g = gcnew Group; g->GroupName = "MyGroup"; ser->Serialize( writer, g ); writer->Close(); } void DeserializeObject( String^ filename ) { XmlSerializer^ ser = CreateOverrideSerializer(); // A FileStream is needed to read the XML document. FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); Group^ g = safe_cast<Group^>(ser->Deserialize( fs )); fs->Close(); Console::WriteLine( g->GroupName ); Console::WriteLine( g->Things->Length ); for ( int i = 0; i < g->Things->Length; ++i ) { XmlElement^ xelement = safe_cast<XmlElement^>(g->Things[ i ]); Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml ); } } XmlSerializer^ CreateOverrideSerializer() { XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute; XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides; XmlAttributes^ xAtts = gcnew XmlAttributes; xAtts->XmlAnyElements->Add( myAnyElement ); xOverride->Add( Group::typeid, "Things", xAtts ); return gcnew XmlSerializer( Group::typeid,xOverride ); }
import System.*; import System.IO.*; import System.Xml.Serialization.*; import System.Xml.*; public class Group { public String groupName; /** @attribute XmlAnyElement() */ public Object things[]; } //Group public class Test { public static void main(String[] args) { Test t = new Test(); // 1 Run this and create the XML document. // 2 Add new elements to the XML document. // 3 Comment out the new line, and uncomment // the DeserializeObject line to deserialize the // XML document and see unknown elements. t.SerializeObject("UnknownElements.xml"); } //main // t.DeserializeObject("UnknownElements.xml"); private void SerializeObject(String fileName) { XmlSerializer ser = new XmlSerializer(Group.class.ToType()); TextWriter writer = new StreamWriter(fileName); Group g = new Group(); g.groupName = "MyGroup"; ser.Serialize(writer, g); writer.Close(); } //SerializeObject private void DeserializeObject(String fileName) { XmlSerializer ser = CreateOverrideSerializer(); // A FileStream is needed to read the XML document. FileStream fs = new FileStream(fileName, FileMode.Open); Group g = (Group)ser.Deserialize(fs); fs.Close(); Console.WriteLine(g.groupName); Console.WriteLine(g.things.get_Length()); for (int iCtr = 0; iCtr < g.things.get_Count(); iCtr++) { XmlElement xElement = (XmlElement)g.things[iCtr]; Console.WriteLine(xElement.get_Name() + ": " + xElement.get_InnerXml()); } } //DeserializeObject private XmlSerializer CreateOverrideSerializer() { XmlAnyElementAttribute myAnyElement = new XmlAnyElementAttribute(); XmlAttributeOverrides xOverride = new XmlAttributeOverrides(); XmlAttributes xAtts = new XmlAttributes(); xAtts.get_XmlAnyElements().Add(myAnyElement); xOverride.Add(Group.class.ToType(), "things", xAtts); return new XmlSerializer(Group.class.ToType(), xOverride); } //CreateOverrideSerializer } //Test

System.Collections.CollectionBase
System.Xml.Serialization.XmlAnyElementAttributes


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlAnyElementAttributes コンストラクタ
アセンブリ: System.Xml (system.xml.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlAnyElementAttributes プロパティ

名前 | 説明 | |
---|---|---|
![]() | Capacity | CollectionBase に格納できる要素の数を取得または設定します。 ( CollectionBase から継承されます。) |
![]() | Count | CollectionBase インスタンスに格納されている要素の数を取得します。このプロパティはオーバーライドできません。 ( CollectionBase から継承されます。) |
![]() | Item | 指定したインデックス位置にある XmlAnyElementAttribute を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | InnerList | CollectionBase インスタンス内の要素のリストを格納する ArrayList を取得します。 ( CollectionBase から継承されます。) |
![]() | List | CollectionBase インスタンス内の要素のリストを格納する IList を取得します。 ( CollectionBase から継承されます。) |

XmlAnyElementAttributes メソッド

名前 | 説明 | |
---|---|---|
![]() | Add | XmlAnyElementAttribute をコレクションに追加します。 |
![]() | Clear | CollectionBase インスタンスからすべてのオブジェクトを削除します。このメソッドはオーバーライドできません。 ( CollectionBase から継承されます。) |
![]() | Contains | 指定した XmlAnyElementAttribute がコレクション内に存在するかどうかを示す値を取得します。 |
![]() | CopyTo | コピー先配列の指定されたインデックスを開始位置として、コレクション全体を、XmlElementAttribute オブジェクトの互換性がある 1 次元配列にコピーします。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetEnumerator | CollectionBase インスタンスを反復処理する列挙子を返します。 ( CollectionBase から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IndexOf | 指定した XmlAnyElementAttribute のインデックスを取得します。 |
![]() | Insert | コレクション内の指定したインデックス位置に XmlAnyElementAttribute を挿入します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | 指定した XmlAnyElementAttribute をコレクションから削除します。 |
![]() | RemoveAt | CollectionBase インスタンスの指定したインデックスにある要素を削除します。このメソッドはオーバーライドできません。 ( CollectionBase から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | OnClear | CollectionBase インスタンスの内容を消去するときに、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnClearComplete | CollectionBase インスタンスの内容を消去した後に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnInsert | CollectionBase インスタンスに新しい要素を挿入する前に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnInsertComplete | CollectionBase インスタンスに新しい要素を挿入した後に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnRemove | CollectionBase インスタンスから要素を削除するときに、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnRemoveComplete | CollectionBase インスタンスから要素を削除した後に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnSet | CollectionBase インスタンスに値を設定する前に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnSetComplete | CollectionBase インスタンスに値を設定した後に、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |
![]() | OnValidate | 値を検証するときに、追加のカスタム プロセスを実行します。 ( CollectionBase から継承されます。) |

XmlAnyElementAttributes メンバ
XmlAnyElementAttribute オブジェクトのコレクションを表します。
XmlAnyElementAttributes データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | XmlAnyElementAttributes |

名前 | 説明 | |
---|---|---|
![]() | Capacity | CollectionBase に格納できる要素の数を取得または設定します。(CollectionBase から継承されます。) |
![]() | Count | CollectionBase インスタンスに格納されている要素の数を取得します。このプロパティはオーバーライドできません。(CollectionBase から継承されます。) |
![]() | Item | 指定したインデックス位置にある XmlAnyElementAttribute を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | InnerList | CollectionBase インスタンス内の要素のリストを格納する ArrayList を取得します。(CollectionBase から継承されます。) |
![]() | List | CollectionBase インスタンス内の要素のリストを格納する IList を取得します。(CollectionBase から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Add | XmlAnyElementAttribute をコレクションに追加します。 |
![]() | Clear | CollectionBase インスタンスからすべてのオブジェクトを削除します。このメソッドはオーバーライドできません。 (CollectionBase から継承されます。) |
![]() | Contains | 指定した XmlAnyElementAttribute がコレクション内に存在するかどうかを示す値を取得します。 |
![]() | CopyTo | コピー先配列の指定されたインデックスを開始位置として、コレクション全体を、XmlElementAttribute オブジェクトの互換性がある 1 次元配列にコピーします。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetEnumerator | CollectionBase インスタンスを反復処理する列挙子を返します。 (CollectionBase から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IndexOf | 指定した XmlAnyElementAttribute のインデックスを取得します。 |
![]() | Insert | コレクション内の指定したインデックス位置に XmlAnyElementAttribute を挿入します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | 指定した XmlAnyElementAttribute をコレクションから削除します。 |
![]() | RemoveAt | CollectionBase インスタンスの指定したインデックスにある要素を削除します。このメソッドはオーバーライドできません。 (CollectionBase から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | OnClear | CollectionBase インスタンスの内容を消去するときに、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnClearComplete | CollectionBase インスタンスの内容を消去した後に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnInsert | CollectionBase インスタンスに新しい要素を挿入する前に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnInsertComplete | CollectionBase インスタンスに新しい要素を挿入した後に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnRemove | CollectionBase インスタンスから要素を削除するときに、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnRemoveComplete | CollectionBase インスタンスから要素を削除した後に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnSet | CollectionBase インスタンスに値を設定する前に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnSetComplete | CollectionBase インスタンスに値を設定した後に、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |
![]() | OnValidate | 値を検証するときに、追加のカスタム プロセスを実行します。 (CollectionBase から継承されます。) |

Weblioに収録されているすべての辞書からXmlAnyElementAttributesを検索する場合は、下記のリンクをクリックしてください。

- XmlAnyElementAttributesのページへのリンク