XmlTypeMapping Class
TOC
Collapse the table of content
Expand the table of content

XmlTypeMapping Class

 

Contains a mapping of one type to another.

Namespace:   System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)

System.Object
  System.Xml.Serialization.XmlMapping
    System.Xml.Serialization.XmlTypeMapping

public class XmlTypeMapping : XmlMapping

NameDescription
System_CAPS_pubpropertyElementName

This API supports the product infrastructure and is not intended to be used directly from your code. Get the name of the mapped element.(Inherited from XmlMapping.)

System_CAPS_pubpropertyNamespace

This API supports the product infrastructure and is not intended to be used directly from your code. Gets the namespace of the mapped element.(Inherited from XmlMapping.)

System_CAPS_pubpropertyTypeFullName

The fully qualified type name that includes the namespace (or namespaces) and type.

System_CAPS_pubpropertyTypeName

Gets the type name of the mapped object.

System_CAPS_pubpropertyXsdElementName

This API supports the product infrastructure and is not intended to be used directly from your code. Gets the name of the XSD element of the mapping.(Inherited from XmlMapping.)

System_CAPS_pubpropertyXsdTypeName

Gets the XML element name of the mapped object.

System_CAPS_pubpropertyXsdTypeNamespace

Gets the XML namespace of the mapped object.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSetKey(String)

This API supports the product infrastructure and is not intended to be used directly from your code. Sets the key used to look up the mapping.(Inherited from XmlMapping.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

The XmlTypeMapping class is used to serialize an object as encoded SOAP XML. The resulting XML conforms to section 5 of the World Wide Web Consortium (www.w3.org) document, "Simple Object Access Protocol (SOAP) 1.1". Create an XmlTypeMapping by calling the ImportTypeMapping method of the SoapReflectionImporter class. Use the XmlTypeMapping to construct an instance of the XmlSerializer class. To control the serialization, use one of the attributes listed in Attributes That Control Encoded SOAP Serialization.

The following example serializes an instance of a class named Transportation that contains a field named Vehicle. A SoapElementAttribute is applied to the field. When the field is serialized, the XML element name is "Wheels" instead of "Vehicle". The SerializeOverride method creates a SoapElementAttribute and sets the SoapElement property of a SoapAttributes to the SoapElementAttribute. The SoapAttributes is added to a SoapAttributeOverrides that is used to create an XmlTypeMapping. An XmlSerializer is constructed with the XmlTypeMapping, and an instance of the Transportation class is again serialized. Because the SoapElementAttribute is used to override the serialization, the generated XML element name is now "Truck" instead of "Wheels".

using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections;
using System.Xml;
using System.Text;
public class Transportation
{
   // The SoapElementAttribute specifies that the
   // generated XML element name will be "Wheels"
   // instead of "Vehicle".
   [SoapElement("Wheels")]
   public string Vehicle;
   [SoapElement(DataType = "dateTime")]
   public DateTime CreationDate;
   [SoapElement(IsNullable = true)]
   public Thing thing;

}

public class Thing{ 
   [SoapElement(IsNullable=true)] public string ThingName;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.SerializeObject("SoapElementOriginal.xml");
      t.SerializeOverride("SoapElementOverride.xml");
      Console.WriteLine("Finished writing two XML files.");
   }

   // Return an XmlSerializer used for overriding.
   public XmlSerializer CreateSoapOverrider()
   {
      // Create the SoapAttributes and SoapAttributeOverrides objects.
      SoapAttributes soapAttrs = new SoapAttributes();

      SoapAttributeOverrides soapOverrides = 
      new SoapAttributeOverrides();

      /* Create an SoapElementAttribute to override 
      the Vehicles property. */
      SoapElementAttribute soapElement1 = 
      new SoapElementAttribute("Truck");
      // Set the SoapElement to the object.
      soapAttrs.SoapElement= soapElement1;

      /* Add the SoapAttributes to the SoapAttributeOverrides,
      specifying the member to override. */
      soapOverrides.Add(typeof(Transportation), "Vehicle", soapAttrs);

      // Create the XmlSerializer, and return it.
      XmlTypeMapping myTypeMapping = (new SoapReflectionImporter
      (soapOverrides)).ImportTypeMapping(typeof(Transportation));
      return new XmlSerializer(myTypeMapping);
   }

   public void SerializeOverride(string filename)
   {
      // Create an XmlSerializer instance.
      XmlSerializer ser = CreateSoapOverrider();

      // Create the object and serialize it.
      Transportation myTransportation = 
      new Transportation();

      myTransportation.Vehicle = "MyCar";
      myTransportation.CreationDate=DateTime.Now;
      myTransportation.thing = new Thing();

      XmlTextWriter writer = 
      new XmlTextWriter(filename, Encoding.UTF8);
      writer.Formatting = Formatting.Indented;
      writer.WriteStartElement("wrapper");
      ser.Serialize(writer, myTransportation);
      writer.WriteEndElement();
      writer.Close();
   }
   public void SerializeObject(string filename){
      // Create an XmlSerializer instance.
      XmlSerializer ser = new XmlSerializer(typeof(Transportation));
      Transportation myTransportation = 
      new Transportation();
      myTransportation.Vehicle = "MyCar";
      myTransportation.CreationDate = DateTime.Now;
      myTransportation.thing = new Thing();
      XmlTextWriter writer = 
      new XmlTextWriter(filename, Encoding.UTF8);
      writer.Formatting = Formatting.Indented;
      writer.WriteStartElement("wrapper");
      ser.Serialize(writer, myTransportation);
      writer.WriteEndElement();
      writer.Close();
   }
}

.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show:
© 2016 Microsoft