XmlAnyElementAttribute.Name プロパティ
アセンブリ: System.Xml (system.xml.dll 内)

Dim instance As XmlAnyElementAttribute Dim value As String value = instance.Name instance.Name = value
XML 要素の名前。


この属性を適用するときに Name プロパティ値を指定した場合は、配列に挿入されるすべての XmlElement オブジェクトまたは XmlNode オブジェクトが、指定された同じ要素名と、同じ既定の名前空間を持っていることが必要です。それ以外の場合は、例外がスローされます。Namespace プロパティ値を設定した場合は、同様に Name プロパティも設定する必要があり、XmlElement オブジェクトまたは XmlNode オブジェクトの名前と名前空間の値がすべて同じであることが必要です。Name 値を指定しない場合は、任意の名前を持つ XmlElement オブジェクトまたは XmlNode オブジェクトを配列に含めることができます。
XmlSerializer クラスの Deserialize メソッドが呼び出されると、逆シリアル化対象のオブジェクト内に対応するメンバがない属性はすべて、配列にまとめられます。Name 値を指定すると、配列には、指定した名前の XML 要素だけが格納されます。Name 値を指定しない場合は、配列には、クラス内に対応するメンバがない要素がすべて格納されます。クラスに含まれている複数のフィールドにこの属性を適用する場合は、Name プロパティと Namespace プロパティを使用して、各配列の内容を区別できるようにする必要があります。このような (複数のフィールドがある) クラスに、配列を区別するためのプロパティ値 (つまり、Name と Namespace) が設定されていないフィールドが 1 つ含まれている場合、逆シリアル化時に、この配列には、他の配列には格納されない不明な XML 要素が格納されます。配列を区別するための Name 値または Namespace 値が設定されていない複数のフィールドを追加した場合は、クラスの最後のフィールドに、他の配列には格納されない不明な要素が格納され、その他のフィールドはすべて null 参照 (Visual Basic では Nothing) に設定されます。
XmlAnyElementAttribute の複数のインスタンスを 1 つのクラス メンバに適用できますが、各インスタンスには個別の Name プロパティ値を設定する必要があります。また、各インスタンスに同じ Name プロパティを設定した場合は、各インスタンスに設定する Namespace プロパティ値は個別にする必要があります。

Imports System Imports System.Text Imports System.IO Imports System.Xml.Serialization Imports System.Xml Imports System.Xml.Schema <XmlRoot(Namespace:= "http://www.cohowinery.com")> _ Public Class Group Public GroupName As String ' This is for serializing Employee elements. <XmlAnyElement(Name:="Employee")> _ Public UnknownEmployees() As XmlElement ' This is for serializing City elements. <XmlAnyElement _ (Name:="City", _ Namespace:="http://www.cpandl.com")> _ Public UnknownCity() As XmlElement ' This one is for all other unknown elements. <XmlAnyElement> _ Public UnknownElements() As XmlElement End Class Public Class Test Shared Sub Main() Dim t As Test = New Test() t.SerializeObject("AnyElementArray.xml") t.DeserializeObject("AnyElementArray.xml") Console.WriteLine("Done") End Sub Private Sub SerializeObject(filename As String) Dim ser As XmlSerializer = _ New XmlSerializer(GetType(Group)) ' Create an XmlNamespaces to use. Dim namespaces As XmlSerializerNamespaces = _ New XmlSerializerNamespaces() namespaces.Add("c", "http://www.cohowinery.com") namespaces.Add("i", "http://www.cpandl.com") Dim myGroup As Group = New Group() ' Create arrays of arbitrary XmlElement objects. ' First create an XmlDocument, used to create the ' XmlElement objects. Dim xDoc As XmlDocument = New XmlDocument() ' Create an array of Employee XmlElement objects. Dim El1 As XmlElement = xDoc.CreateElement("Employee", "http://www.cohowinery.com") El1.InnerText = "John" Dim El2 As XmlElement = xDoc.CreateElement("Employee", "http://www.cohowinery.com") El2.InnerText = "Joan" Dim El3 As XmlElement = xDoc.CreateElement("Employee", "http://www.cohowinery.com") El3.InnerText = "Jim" myGroup.UnknownEmployees= New XmlElement(){El1, El2, El3} ' Create an array of City XmlElement objects. Dim inf1 As XmlElement = xDoc.CreateElement("City", "http://www.cpandl.com") inf1.InnerText = "Tokyo" Dim inf2 As XmlElement = xDoc.CreateElement("City", "http://www.cpandl.com") inf2.InnerText = "New York" Dim inf3 As XmlElement = xDoc.CreateElement("City", "http://www.cpandl.com") inf3.InnerText = "Rome" myGroup.UnknownCity = New XmlElement(){inf1, inf2, inf3} Dim xEl1 As XmlElement = xDoc.CreateElement("bld") xEl1.InnerText = "42" Dim xEl2 As XmlElement = xDoc.CreateElement("Region") xEl2.InnerText = "West" Dim xEl3 As XmlElement = xDoc.CreateElement("type") xEl3.InnerText = "Technical" myGroup.UnknownElements = _ New XmlElement(){xEl1,xEl2,xEl3} ' Serialize the class, and close the TextWriter. Dim writer As TextWriter = New StreamWriter(filename) ser.Serialize(writer, myGroup, namespaces) writer.Close() End Sub Private Sub DeserializeObject(filename As String) Dim ser As XmlSerializer = _ New XmlSerializer(GetType(Group)) Dim fs As FileStream = New FileStream(filename, FileMode.Open) Dim myGroup As Group myGroup = CType(ser.Deserialize(fs), Group) fs.Close() Dim xEmp As XmlElement for each xEmp in myGroup.UnknownEmployees Console.WriteLine(xEmp.LocalName & ": " & xEmp.InnerText) Next Dim xCity As XmlElement for each xCity in myGroup.UnknownCity Console.WriteLine(xCity.LocalName & ": " & xCity.InnerText) Next Dim xEl As XmlElement for each xEl in myGroup.UnknownElements Console.WriteLine(xEl.LocalName & ": " & xEl.InnerText) Next End Sub End Class
using System; using System.Text; using System.IO; using System.Xml.Serialization; using System.Xml; using System.Xml.Schema; [XmlRoot(Namespace = "http://www.cohowinery.com")] public class Group{ public string GroupName; // This is for serializing Employee elements. [XmlAnyElement(Name = "Employee")] public XmlElement[] UnknownEmployees; // This is for serializing City elements. [XmlAnyElement (Name = "City", Namespace = "http://www.cpandl.com")] public XmlElement[] UnknownCity; // This one is for all other unknown elements. [XmlAnyElement] public XmlElement[] UnknownElements; } public class Test{ static void Main(){ Test t = new Test(); t.SerializeObject("AnyElementArray.xml"); t.DeserializeObject("AnyElementArray.xml"); Console.WriteLine("Done"); } private void SerializeObject(string filename){ XmlSerializer ser = new XmlSerializer(typeof(Group)); // Create an XmlNamespaces to use. XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add("c", "http://www.cohowinery.com"); namespaces.Add("i", "http://www.cpandl.com"); Group myGroup = new Group(); // Create arrays of arbitrary XmlElement objects. // First create an XmlDocument, used to create the // XmlElement objects. XmlDocument xDoc = new XmlDocument(); // Create an array of Employee XmlElement objects. XmlElement El1 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); El1.InnerText = "John"; XmlElement El2 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); El2.InnerText = "Joan"; XmlElement El3 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); El3.InnerText = "Jim"; myGroup.UnknownEmployees= new XmlElement[]{El1, El2, El3}; // Create an array of City XmlElement objects. XmlElement inf1 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf1.InnerText = "Tokyo"; XmlElement inf2 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf2.InnerText = "New York"; XmlElement inf3 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf3.InnerText = "Rome"; myGroup.UnknownCity = new XmlElement[]{inf1, inf2, inf3}; XmlElement xEl1 = xDoc.CreateElement("bld"); xEl1.InnerText = "42"; XmlElement xEl2 = xDoc.CreateElement("Region"); xEl2.InnerText = "West"; XmlElement xEl3 = xDoc.CreateElement("type"); xEl3.InnerText = "Technical"; myGroup.UnknownElements = new XmlElement[]{xEl1,xEl2,xEl3}; // Serialize the class, and close the TextWriter. TextWriter writer = new StreamWriter(filename); ser.Serialize(writer, myGroup, namespaces); writer.Close(); } private void DeserializeObject(string filename){ XmlSerializer ser = new XmlSerializer(typeof(Group)); FileStream fs = new FileStream(filename, FileMode.Open); Group myGroup; myGroup = (Group)ser.Deserialize(fs); fs.Close(); foreach(XmlElement xEmp in myGroup.UnknownEmployees){ Console.WriteLine(xEmp.LocalName + ": " + xEmp.InnerText);} foreach(XmlElement xCity in myGroup.UnknownCity){ Console.WriteLine(xCity.LocalName + ": " + xCity.InnerText);} foreach(XmlElement xEl in myGroup.UnknownElements){ Console.WriteLine(xEl.LocalName + ": " + xEl.InnerText);} } }
#using <system.dll> #using <system.xml.dll> using namespace System; using namespace System::Text; using namespace System::IO; using namespace System::Xml::Serialization; using namespace System::Xml; using namespace System::Xml::Schema; [XmlRoot(Namespace="http://www.cohowinery.com")] public ref class Group { public: String^ GroupName; // This is for serializing Employee elements. [XmlAnyElement(Name="Employee")] array<XmlElement^>^UnknownEmployees; // This is for serializing City elements. [XmlAnyElement (Name="City", Namespace="http://www.cpandl.com")] array<XmlElement^>^UnknownCity; // This one is for all other unknown elements. [XmlAnyElement] array<XmlElement^>^UnknownElements; }; void SerializeObject( String^ filename ) { XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); // Create an XmlNamespaces to use. XmlSerializerNamespaces^ namespaces = gcnew XmlSerializerNamespaces; namespaces->Add( "c", "http://www.cohowinery.com" ); namespaces->Add( "i", "http://www.cpandl.com" ); Group^ myGroup = gcnew Group; // Create arrays of arbitrary XmlElement objects. // First create an XmlDocument, used to create the // XmlElement objects. XmlDocument^ xDoc = gcnew XmlDocument; // Create an array of Employee XmlElement objects. XmlElement^ El1 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); El1->InnerText = "John"; XmlElement^ El2 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); El2->InnerText = "Joan"; XmlElement^ El3 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); El3->InnerText = "Jim"; array<XmlElement^>^employees = {El1,El2,El3}; myGroup->UnknownEmployees = employees; // Create an array of City XmlElement objects. XmlElement^ inf1 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); inf1->InnerText = "Tokyo"; XmlElement^ inf2 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); inf2->InnerText = "New York"; XmlElement^ inf3 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); inf3->InnerText = "Rome"; array<XmlElement^>^cities = {inf1,inf2,inf3}; myGroup->UnknownCity = cities; XmlElement^ xEl1 = xDoc->CreateElement( "bld" ); xEl1->InnerText = "42"; XmlElement^ xEl2 = xDoc->CreateElement( "Region" ); xEl2->InnerText = "West"; XmlElement^ xEl3 = xDoc->CreateElement( "type" ); xEl3->InnerText = "Technical"; array<XmlElement^>^elements = {xEl1,xEl2,xEl3}; myGroup->UnknownElements = elements; // Serialize the class, and close the TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); ser->Serialize( writer, myGroup, namespaces ); writer->Close(); } void DeserializeObject( String^ filename ) { XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); Group^ myGroup; myGroup = safe_cast<Group^>(ser->Deserialize( fs )); fs->Close(); for ( int i = 0; i < myGroup->UnknownEmployees->Length; ++i ) { XmlElement^ xEmp = myGroup->UnknownEmployees[ i ]; Console::WriteLine( "{0}: {1}", xEmp->LocalName, xEmp->InnerText ); } for ( int i = 0; i < myGroup->UnknownCity->Length; ++i ) { XmlElement^ xCity = myGroup->UnknownCity[ i ]; Console::WriteLine( "{0}: {1}", xCity->LocalName, xCity->InnerText ); } for ( int i = 0; i < myGroup->UnknownElements->Length; ++i ) { XmlElement^ xEmp = myGroup->UnknownElements[ i ]; Console::WriteLine( "{0}: {1}", xEmp->LocalName, xEmp->InnerText ); } } int main() { SerializeObject( "AnyElementArray.xml" ); DeserializeObject( "AnyElementArray.xml" ); Console::WriteLine( "Done" ); }
import System.*; import System.Text.*; import System.IO.*; import System.Xml.Serialization.*; import System.Xml.*; import System.Xml.Schema.*; /** @attribute XmlRoot(Namespace = "http://www.cohowinery.com") */ public class Group { public String groupName; // This is for serializing Employee elements. /** @attribute XmlAnyElement(Name = "Employee") */ public XmlElement unknownEmployees[]; // This is for serializing City elements. /** @attribute XmlAnyElement(Name = "City", Namespace = "http://www.cpandl.com") */ public XmlElement unknownCity[]; // This one is for all other unknown elements. /** @attribute XmlAnyElement() */ public XmlElement unknownElements[]; } //Group public class Test { public static void main(String[] args) { Test t = new Test(); t.SerializeObject("AnyElementArray.xml"); t.DeserializeObject("AnyElementArray.xml"); Console.WriteLine("Done"); } //main private void SerializeObject(String fileName) { XmlSerializer ser = new XmlSerializer(Group.class.ToType()); // Create an XmlNamespaces to use. XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add("c", "http://www.cohowinery.com"); namespaces.Add("i", "http://www.cpandl.com"); Group myGroup = new Group(); // Create arrays of arbitrary XmlElement objects. // First create an XmlDocument, used to create the // XmlElement objects. XmlDocument xDoc = new XmlDocument(); // Create an array of Employee XmlElement objects. XmlElement el1 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); el1.set_InnerText("John"); XmlElement el2 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); el2.set_InnerText("Joan"); XmlElement el3 = xDoc.CreateElement("Employee", "http://www.cohowinery.com"); el3.set_InnerText("Jim"); myGroup.unknownEmployees = new XmlElement[] { el1, el2, el3 }; // Create an array of City XmlElement objects. XmlElement inf1 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf1.set_InnerText("Tokyo"); XmlElement inf2 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf2.set_InnerText("New York"); XmlElement inf3 = xDoc.CreateElement("City", "http://www.cpandl.com"); inf3.set_InnerText("Rome"); myGroup.unknownCity = new XmlElement[] { inf1, inf2, inf3 }; XmlElement xEl1 = xDoc.CreateElement("bld"); xEl1.set_InnerText("42"); XmlElement xEl2 = xDoc.CreateElement("Region"); xEl2.set_InnerText("West"); XmlElement xEl3 = xDoc.CreateElement("type"); xEl3.set_InnerText("Technical"); myGroup.unknownElements = new XmlElement[] { xEl1, xEl2, xEl3 }; // Serialize the class, and close the TextWriter. TextWriter writer = new StreamWriter(fileName); ser.Serialize(writer, myGroup, namespaces); writer.Close(); } //SerializeObject private void DeserializeObject(String fileName) { XmlSerializer ser = new XmlSerializer(Group.class.ToType()); FileStream fs = new FileStream(fileName, FileMode.Open); Group myGroup; myGroup = (Group)ser.Deserialize(fs); fs.Close(); for (int iCtr = 0;iCtr < myGroup.unknownEmployees.get_Count();iCtr++) { XmlElement xEmp = (XmlElement)myGroup.unknownEmployees. get_Item(iCtr); Console.WriteLine(xEmp.get_LocalName() + ": " + xEmp.get_InnerText()); } for (int iCtr = 0; iCtr < myGroup.unknownCity.get_Count(); iCtr++) { XmlElement xCity = (XmlElement)myGroup.unknownCity.get_Item(iCtr); Console.WriteLine(xCity.get_LocalName() + ": " + xCity.get_InnerText()); } for (int iCtr = 0;iCtr < myGroup.unknownElements.get_Count();iCtr++) { XmlElement xEl = (XmlElement)myGroup.unknownElements.get_Item(iCtr); Console.WriteLine(xEl.get_LocalName() + ": " + xEl.get_InnerText()); } } //DeserializeObject } //Test

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からXmlAnyElementAttribute.Name プロパティを検索する場合は、下記のリンクをクリックしてください。

- XmlAnyElementAttribute.Name プロパティのページへのリンク