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

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

XmlAttributes.XmlAnyElements プロパティ

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

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

Public ReadOnly Property
 XmlAnyElements As XmlAnyElementAttributes
Dim instance As XmlAttributes
Dim value As XmlAnyElementAttributes

value = instance.XmlAnyElements
public XmlAnyElementAttributes XmlAnyElements { get;
 }
public:
property XmlAnyElementAttributes^ XmlAnyElements {
    XmlAnyElementAttributes^ get ();
}
/** @property */
public XmlAnyElementAttributes get_XmlAnyElements ()
public function get XmlAnyElements
 () : XmlAnyElementAttributes

プロパティ
XmlAnyElementAttribute オブジェクトコレクションを表す XmlAnyElementAttributes オブジェクト

解説解説

XmlAnyElementAttribute は、逆シリアル化時に、XmlElement オブジェクト配列返すメンバ適用できます。これにより、XmlSerializer は、逆シリアル化されているオブジェクト内に対応するメンバ持っていない属性を逆シリアル化できるようになりますこのため、これらの要素は、XmlSerializer に対しては "不明" になります。これは、XML ストリームXML Web サービスによって変更されている場合、またはランダム データが常に XML ストリームと共に含まれることが判明している場合役立ちます

XmlAnyElements プロパティによって、メンバシリアル化オーバーライドして、XmlAnyElementAttribute適用されメンバとして機能するようにできます

使用例使用例

新しXmlAnyElementAttribute オブジェクト作成し、そのオブジェクトXmlAnyElements プロパティとおしてアクセスしたオブジェクトコレクション追加する例を次に示しますその後、XmlAttributes オブジェクトを XmlAttributeOverrides オブジェクト追加し、これを使用して XmlSerializer オブジェクト作成します作成され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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlAttributes クラス
XmlAttributes メンバ
System.Xml.Serialization 名前空間
XmlAttributes.XmlAnyAttribute プロパティ


このページでは「.NET Framework クラス ライブラリ リファレンス」からXmlAttributes.XmlAnyElements プロパティを検索した結果を表示しています。
Weblioに収録されているすべての辞書からXmlAttributes.XmlAnyElements プロパティを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からXmlAttributes.XmlAnyElements プロパティ を検索

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

辞書ショートカット

すべての辞書の索引

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

   

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



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

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

©2025 GRAS Group, Inc.RSS