XmlAnyElementAttribute.Name プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlAnyElementAttribute.Name プロパティの意味・解説 

XmlAnyElementAttribute.Name プロパティ

XML 要素名を取得または設定します

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

例外例外
例外種類条件

InvalidOperationException

配列メンバ要素名が、Name プロパティ指定されている要素名と一致しません。

解説解説

この属性適用するときに Name プロパティ値を指定した場合は、配列挿入されるすべての XmlElement オブジェクトまたは XmlNode オブジェクトが、指定された同じ要素名と、同じ既定名前空間持っていることが必要です。それ以外場合は、例外スローさます。Namespace プロパティ値を設定した場合は、同様に Name プロパティ設定する必要があり、XmlElement オブジェクトまたは XmlNode オブジェクトの名前と名前空間の値がすべて同じであることが必要です。Name 値を指定しない場合は、任意の名前を持つ XmlElement オブジェクトまたは XmlNode オブジェクト配列含めることができます

XmlSerializer クラスの Deserialize メソッド呼び出されると、逆シリアル化対象オブジェクト内に対応するメンバがない属性はすべて、配列にまとめられます。Name 値を指定すると、配列には、指定した名前の XML 要素だけが格納されます。Name 値を指定しない場合は、配列には、クラス内に対応するメンバがない要素がすべて格納されます。クラス含まれている複数フィールドにこの属性適用する場合は、Name プロパティNamespace プロパティ使用して、各配列内容区別できるようにする必要がありますこのような (複数フィールドがある) クラスに、配列区別するためのプロパティ値 (つまり、NameNamespace) が設定されていないフィールド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 
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlAnyElementAttribute クラス
XmlAnyElementAttribute メンバ
System.Xml.Serialization 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

XmlAnyElementAttribute.Name プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlAnyElementAttribute.Name プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS