System.Xml.Serialization.XmlAttributeEventArgs Class

Assembly: System.Xml.dll
Namespace: System.Xml.Serialization
Summary
Provides data for the XmlSerializer.UnknownAttribute event.
C# Syntax:
public class XmlAttributeEventArgs : EventArgs
Remarks
For more information about handling events, see the conceptual topic at MSDN: eventsoverview.

The XmlSerializer.UnknownAttribute event can occur only when you call the XmlSerializer.Deserialize method.

Example
The following example deserializes a class named Group from a file named UnknownAttributes.xml. Whenever an element is found in the file that has no corresponding member in the class, the XmlSerializer.UnknownAttribute event occurs. To try the example, paste the XML code below into a file named UnknownAttributes.xml.
          <?xml version="1.0" encoding="utf-8"?>
          <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
            <GroupName>MyGroup</GroupName>
          </Group>
        
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;

public class Group{
   public string GroupName;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // Deserialize the file containing unknown elements.
      t.DeserializeObject("UnknownAttributes.xml");
   }
   private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
      Console.WriteLine("Unknown Attribute");
      Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
      Console.WriteLine("\t LineNumber: " + e.LineNumber);
      Console.WriteLine("\t LinePosition: " + e.LinePosition);
      
      Group x  = (Group) e.ObjectBeingDeserialized;
      Console.WriteLine (x.GroupName);
      Console.WriteLine (sender.ToString());
   }
   private void DeserializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group));
      // Add a delegate to handle unknown element events.
      ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
      // A FileStream is needed to read the XML document.
     FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group) ser.Deserialize(fs);
     fs.Close();
   	}
}

    
See also:
System.Xml.Serialization Namespace | XmlAttributeEventHandler

System.Xml.Serialization.XmlAttributeEventArgs Member List:

Public Properties
Attr Read-only

Gets an object that represents the unknown XML attribute.
LineNumber Read-only

Gets the line number of the unknown XML attribute.
LinePosition Read-only

Gets the position in the line of the unknown XML attribute.
ObjectBeingDeserialized Read-only

Gets the object being deserialized.
Public Methods
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetHashCode
(inherited from System.Object)
See base class member description: System.Object.GetHashCode

Derived from System.Object, the primary base class for all objects.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
ToString
(inherited from System.Object)
See base class member description: System.Object.ToString

Derived from System.Object, the primary base class for all objects.
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.Xml.Serialization.XmlAttributeEventArgs Member Details

Property: Attr (read-only)
Summary
Gets an object that represents the unknown XML attribute.
C# Syntax:
public XmlAttribute Attr {get;}
Example
The following example deserializes a class named Group from a file named UnknownAttributes.xml. Whenever an element is found in the file that has no corresponding member in the class, the XmlSerializer.UnknownAttribute event occurs. To try the example, paste the XML code below into a file named UnknownAttributes.xml.
              <?xml version="1.0" encoding="utf-8"?>
              <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
                <GroupName>MyGroup</GroupName>
              </Group>
            
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;

public class Group{
   public string GroupName;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // Deserialize the file containing unknown elements.
      t.DeserializeObject("UnknownAttributes.xml");
   }
   private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
      Console.WriteLine("Unknown Attribute");
      Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
      Console.WriteLine("\t LineNumber: " + e.LineNumber);
      Console.WriteLine("\t LinePosition: " + e.LinePosition);
      
      Group x  = (Group) e.ObjectBeingDeserialized;
      Console.WriteLine (x.GroupName);
      Console.WriteLine (sender.ToString());
   }
   private void DeserializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group));
      // Add a delegate to handle unknown element events.
      ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
      // A FileStream is needed to read the XML document.
     FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group) ser.Deserialize(fs);
     fs.Close();
   	}
}

    
See also:
XmlSerializer.Deserialize | XmlSerializer

Return to top


Property: LineNumber (read-only)
Summary
Gets the line number of the unknown XML attribute.
C# Syntax:
public int LineNumber {get;}
Example
The following example deserializes a class named Group from a file named UnknownAttributes.xml. Whenever an element is found in the file that has no corresponding member in the class, the XmlSerializer.UnknownAttribute event occurs. To try the example, paste the XML code below into a file named UnknownAttributes.xml.
              <?xml version="1.0" encoding="utf-8"?>
              <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
                <GroupName>MyGroup</GroupName>
              </Group>
            
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;

public class Group{
   public string GroupName;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // Deserialize the file containing unknown elements.
      t.DeserializeObject("UnknownAttributes.xml");
   }
   private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
      Console.WriteLine("Unknown Attribute");
      Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
      Console.WriteLine("\t LineNumber: " + e.LineNumber);
      Console.WriteLine("\t LinePosition: " + e.LinePosition);
      
      Group x  = (Group) e.ObjectBeingDeserialized;
      Console.WriteLine (x.GroupName);
      Console.WriteLine (sender.ToString());
   }
   private void DeserializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group));
      // Add a delegate to handle unknown element events.
      ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
      // A FileStream is needed to read the XML document.
     FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group) ser.Deserialize(fs);
     fs.Close();
   	}
}

    

Return to top


Property: LinePosition (read-only)
Summary
Gets the position in the line of the unknown XML attribute.
C# Syntax:
public int LinePosition {get;}
Example
The following example deserializes a class named Group from a file named UnknownAttributes.xml. Whenever an element is found in the file that has no corresponding member in the class, the XmlSerializer.UnknownAttribute event occurs. To try the example, paste the XML code below into a file named UnknownAttributes.xml.
              <?xml version="1.0" encoding="utf-8"?>
              <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
                <GroupName>MyGroup</GroupName>
              </Group>
            
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;

public class Group{
   public string GroupName;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // Deserialize the file containing unknown elements.
      t.DeserializeObject("UnknownAttributes.xml");
   }
   private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
      Console.WriteLine("Unknown Attribute");
      Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.InnerXml);
      Console.WriteLine("\t LineNumber: " + e.LineNumber);
      Console.WriteLine("\t LinePosition: " + e.LinePosition);
      
      Group x  = (Group) e.ObjectBeingDeserialized;
      Console.WriteLine (x.GroupName);
      Console.WriteLine (sender.ToString());
   }
   private void DeserializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof(Group));
      // Add a delegate to handle unknown element events.
      ser.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
      // A FileStream is needed to read the XML document.
     FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group) ser.Deserialize(fs);
     fs.Close();
   	}
}

    

Return to top


Property: ObjectBeingDeserialized (read-only)
Summary
Gets the object being deserialized.
C# Syntax:
public object ObjectBeingDeserialized {get;}
Example
The following example prints the value returned by the Object.ToString method when the XmlSerializer.Deserialize method encounters an unknown attribute.
protected void serializer_UnknownAttribute(
 object sender, XmlAttributeEventArgs e)
 {
    System.Xml.XmlAttribute attr = e.Attr;
         
    Console.WriteLine("Unknown Attribute Name and Value:" + 
    attr.Name + "='" + attr.Value + "'");
    Object x = e.ObjectBeingDeserialized;
    Console.WriteLine("ObjectBeingDeserialized: " + x.ToString());
 }


    
See also:
XmlSerializer.Deserialize | XmlSerializer

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~XmlAttributeEventArgs();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Object.GetHashCode
C# Syntax:
public virtual int GetHashCode();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: ToString()
Inherited
See base class member description: System.Object.ToString
C# Syntax:
public virtual string ToString();

For more information on members inherited from System.Object click on the link above.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.