XmlTypeMapping Class
Contains a mapping of one type to another.
Assembly: System.Xml (in System.Xml.dll)
The XmlTypeMapping type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | ElementName | Get the name of the mapped element. (Inherited from XmlMapping.) |
![]() ![]() ![]() | Namespace | Gets the namespace of the mapped element. (Inherited from XmlMapping.) |
![]() ![]() ![]() | TypeFullName | The fully qualified type name that includes the namespace (or namespaces) and type. |
![]() ![]() ![]() | TypeName | Gets the type name of the mapped object. |
![]() ![]() | XsdElementName | Gets the name of the XSD element of the mapping. (Inherited from XmlMapping.) |
![]() ![]() | XsdTypeName | Gets the XML element name of the mapped object. |
![]() ![]() | XsdTypeNamespace | Gets the XML namespace of the mapped object. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() ![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() ![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() | SetKey | Sets the key used to look up the mapping. (Inherited from XmlMapping.) |
![]() ![]() ![]() | ToString | 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 [<topic://cpconAttributesThatControlSOAPEncodedSerialization>].
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.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml::Serialization; using namespace System::Collections; using namespace System::Xml; using namespace System::Text; public ref class Thing { public: [SoapElement(IsNullable=true)] String^ ThingName; }; public ref class Transportation { public: // The SoapElementAttribute specifies that the // generated XML element name will be S"Wheels" // instead of S"Vehicle". [SoapElement("Wheels")] String^ Vehicle; [SoapElement(DataType="dateTime")] DateTime CreationDate; [SoapElement(IsNullable=true)] Thing^ thing; }; public ref class Test { public: // Return an XmlSerializer used for overriding. XmlSerializer^ CreateSoapOverrider() { // Create the SoapAttributes and SoapAttributeOverrides objects. SoapAttributes^ soapAttrs = gcnew SoapAttributes; SoapAttributeOverrides^ soapOverrides = gcnew SoapAttributeOverrides; // Create an SoapElementAttribute to the Vehicles property. SoapElementAttribute^ soapElement1 = gcnew SoapElementAttribute( "Truck" ); // Set the SoapElement to the Object*. soapAttrs->SoapElement = soapElement1; // Add the SoapAttributes to the SoapAttributeOverrides,specifying the member to. soapOverrides->Add( Transportation::typeid, "Vehicle", soapAttrs ); // Create the XmlSerializer, and return it. XmlTypeMapping^ myTypeMapping = (gcnew SoapReflectionImporter( soapOverrides ))->ImportTypeMapping( Transportation::typeid ); return gcnew XmlSerializer( myTypeMapping ); } void SerializeOverride( String^ filename ) { // Create an XmlSerializer instance. XmlSerializer^ ser = CreateSoapOverrider(); // Create the Object* and serialize it. Transportation^ myTransportation = gcnew Transportation; myTransportation->Vehicle = "MyCar"; myTransportation->CreationDate = DateTime::Now; myTransportation->thing = gcnew Thing; XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); writer->Formatting = Formatting::Indented; writer->WriteStartElement( "wrapper" ); ser->Serialize( writer, myTransportation ); writer->WriteEndElement(); writer->Close(); } void SerializeObject( String^ filename ) { // Create an XmlSerializer instance. XmlSerializer^ ser = gcnew XmlSerializer( Transportation::typeid ); Transportation^ myTransportation = gcnew Transportation; myTransportation->Vehicle = "MyCar"; myTransportation->CreationDate = DateTime::Now; myTransportation->thing = gcnew Thing; XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); writer->Formatting = Formatting::Indented; writer->WriteStartElement( "wrapper" ); ser->Serialize( writer, myTransportation ); writer->WriteEndElement(); writer->Close(); } }; int main() { Test^ t = gcnew Test; t->SerializeObject( "SoapElementOriginal.xml" ); t->SerializeOverride( "SoapElementOverride.xml" ); Console::WriteLine( "Finished writing two XML files." ); }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

