XmlAnyElementAttributes クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlAnyElementAttributes クラスの意味・解説 

XmlAnyElementAttributes クラス

XmlAnyElementAttribute オブジェクトコレクション表します

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

Public Class XmlAnyElementAttributes
    Inherits CollectionBase
Dim instance As XmlAnyElementAttributes
public class XmlAnyElementAttributes : CollectionBase
public ref class XmlAnyElementAttributes :
 public CollectionBase
public class XmlAnyElementAttributes extends
 CollectionBase
public class XmlAnyElementAttributes extends
 CollectionBase
解説解説

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

複数XmlAnyElementAttribute オブジェクトまとめてオーバーライドするには、次の手順実行します

  1. XmlAnyElementAttributes作成します

  2. 一連の XmlAnyElementAttribute オブジェクト作成しAdd メソッド使用してオブジェクトコレクション追加します

  3. XmlAttributes を作成します

  4. XmlAnyElements プロパティに、XmlAnyElementAttributes設定します

  5. XmlAttributeOverrides を作成します

  6. Add メソッド使用してXmlAttributesXmlAttributeOverrides追加します

  7. XmlAttributeOverrides使用して XmlSerializerインスタンス作成します

  8. 一連の 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.Object
   System.Collections.CollectionBase
    System.Xml.Serialization.XmlAnyElementAttributes
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlAnyElementAttributes メンバ
System.Xml.Serialization 名前空間



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

辞書ショートカット

すべての辞書の索引

「XmlAnyElementAttributes クラス」の関連用語

XmlAnyElementAttributes クラスのお隣キーワード
検索ランキング

   

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



XmlAnyElementAttributes クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS