XmlTypeMapping クラス
アセンブリ: System.Xml (system.xml.dll 内)


XmlTypeMapping クラスは、エンコード済みの SOAP XML としてオブジェクトをシリアル化するときに使用します。結果として生成される XML は、W3C (World Wide Web Consortium) (www.w3.org) のドキュメント『Simple Object Access Protocol (SOAP) 1.1』のセクション 5 に準拠します。XmlTypeMapping を作成するには、SoapReflectionImporter クラスの ImportTypeMapping メソッドを呼び出します。XmlTypeMapping を使用して、XmlSerializer クラスのインスタンスを構築します。シリアル化を制御するには、「エンコード済み SOAP シリアル化を制御する属性」に一覧表示されている属性のいずれか 1 つを使用します。

Vehicle という名前のフィールドが含まれている Transportation という名前のクラスのインスタンスをシリアル化する例を次に示します。このフィールドには、SoapElementAttribute が適用されています。このフィールドがシリアル化されると、その XML 要素名は "Vehicle" ではなく "Wheels" になります。SerializeOverride メソッドは、SoapElementAttribute を作成し、SoapAttributes の SoapElement プロパティに、作成した SoapElementAttribute を設定します。この SoapAttributes が、XmlTypeMapping を作成するために使用される SoapAttributeOverrides に追加されます。作成された XmlTypeMapping を使用して XmlSerializer が構築され、Transportation クラスのインスタンスが再びシリアル化されます。SoapElementAttribute を使用してシリアル化がオーバーライドされるため、生成された XML 要素の名前は "Wheels" ではなく "Truck" になります。
Imports System Imports System.IO Imports System.Xml.Serialization Imports System.Collections Imports System.Xml Imports System.Text Public Class Transportation ' The SoapElementAttribute specifies that the ' generated XML element name will be "Wheels" ' instead of "Vehicle". <SoapElement("Wheels")> Public Vehicle As String <SoapElement(DataType:= "dateTime")> _ public CreationDate As DateTime <SoapElement(IsNullable:= true)> _ public thing As Thing End Class Public Class Thing <SoapElement(IsNullable:=true)> public ThingName As string End Class Public Class Test Shared Sub Main() Dim t As Test = New Test() t.SerializeObject("SoapElementOriginalVb.xml") t.SerializeOverride("SoapElementOverrideVb.xml") Console.WriteLine("Finished writing two XML files.") End Sub ' Return an XmlSerializer used for overriding. Public Function CreateSoapOverrider() As XmlSerializer ' Create the SoapAttributes and SoapAttributeOverrides objects. Dim soapAttrs As SoapAttributes = New SoapAttributes() Dim soapOverrides As SoapAttributeOverrides = _ New SoapAttributeOverrides() ' Create a SoapElementAttribute to override ' the Vehicles property. Dim soapElement1 As SoapElementAttribute = _ 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(GetType(Transportation), "Vehicle", soapAttrs) ' Create the XmlSerializer, and return it. Dim myTypeMapping As XmlTypeMapping = (New _ SoapReflectionImporter (soapOverrides)).ImportTypeMapping _ (GetType(Transportation)) return New XmlSerializer(myTypeMapping) End Function Public Sub SerializeOverride(filename As String) ' Create an XmlSerializer instance. Dim ser As XmlSerializer = CreateSoapOverrider() ' Create the object and serialize it. Dim myTransportation As Transportation = _ New Transportation() myTransportation.Vehicle = "MyCar" myTransportation.CreationDate = DateTime.Now myTransportation.thing= new Thing() Dim writer As XmlTextWriter = _ New XmlTextWriter(filename, Encoding.UTF8) writer.Formatting = Formatting.Indented writer.WriteStartElement("wrapper") ser.Serialize(writer, myTransportation) writer.WriteEndElement() writer.Close() End Sub Public Sub SerializeObject(filename As String) ' Create an XmlSerializer instance. Dim ser As XmlSerializer = _ New XmlSerializer(GetType(Transportation)) Dim myTransportation As Transportation = _ New Transportation() myTransportation.Vehicle = "MyCar" myTransportation.CreationDate=DateTime.Now myTransportation.thing= new Thing() Dim writer As XmlTextWriter = _ new XmlTextWriter(filename, Encoding.UTF8) writer.Formatting = Formatting.Indented writer.WriteStartElement("wrapper") ser.Serialize(writer, myTransportation) writer.WriteEndElement() writer.Close() End Sub End Class
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(); } }
#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." ); }
import System.*; import System.IO.*; import System.Xml.Serialization.*; import System.Collections.*; import System.Xml.*; import System.Text.*; public class Transportation { // The SoapElementAttribute specifies that the // generated XML element name will be "Wheels" // instead of "Vehicle". /** @attribute SoapElement("Wheels") */ public String vehicle; /** @attribute SoapElement(DataType = "dateTime") */ public DateTime creationDate; /** @attribute SoapElement(IsNullable = true) */ public Thing thing; } //Transportation public class Thing { /** @attribute SoapElement(IsNullable = true) */ public String thingName; } //Thing public class Test { public static void main(String[] args) { Test t = new Test(); t.SerializeObject("SoapElementOriginal.xml"); t.SerializeOverride("SoapElementOverride.xml"); Console.WriteLine("Finished writing two XML files."); } //main // 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.set_SoapElement(soapElement1); /* Add the SoapAttributes to the SoapAttributeOverrides, specifying the member to override. */ soapOverrides.Add(Transportation.class.ToType(), "Vehicle", soapAttrs); // Create the XmlSerializer, and return it. XmlTypeMapping myTypeMapping = (new SoapReflectionImporter(soapOverrides)). ImportTypeMapping(Transportation.class.ToType()); return new XmlSerializer(myTypeMapping); } //CreateSoapOverrider 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.get_Now(); myTransportation.thing = new Thing(); XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.get_UTF8()); writer.set_Formatting(Formatting.Indented); writer.WriteStartElement("wrapper"); ser.Serialize(writer, myTransportation); writer.WriteEndElement(); writer.Close(); } //SerializeOverride public void SerializeObject(String fileName) { // Create an XmlSerializer instance. XmlSerializer ser = new XmlSerializer(Transportation.class.ToType()); Transportation myTransportation = new Transportation(); myTransportation.vehicle = "MyCar"; myTransportation.creationDate = DateTime.get_Now(); myTransportation.thing = new Thing(); XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.get_UTF8()); writer.set_Formatting(Formatting.Indented); writer.WriteStartElement("wrapper"); ser.Serialize(writer, myTransportation); writer.WriteEndElement(); writer.Close(); } //SerializeObject } //Test

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


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlTypeMapping プロパティ

名前 | 説明 | |
---|---|---|
![]() | ElementName | 対応付けられる要素の名前を取得します。 ( XmlMapping から継承されます。) |
![]() | Namespace | 対応付けられる要素の名前空間を取得します。 ( XmlMapping から継承されます。) |
![]() ![]() ![]() | XsdElementName | 対応付けの XSD 要素の名前を取得します。 ( XmlMapping から継承されます。) |
![]() | XsdTypeName | 割り当てられたオブジェクトの XML 要素名を取得します。 |
![]() | XsdTypeNamespace | 割り当てられたオブジェクトの XML 名前空間を取得します。 |

XmlTypeMapping メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | SetKey | 対応付けの検索に使用するキーを設定します。 ( XmlMapping から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

XmlTypeMapping メンバ
XmlTypeMapping データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | ElementName | 対応付けられる要素の名前を取得します。(XmlMapping から継承されます。) |
![]() | Namespace | 対応付けられる要素の名前空間を取得します。(XmlMapping から継承されます。) |
![]() ![]() ![]() | XsdElementName | 対応付けの XSD 要素の名前を取得します。(XmlMapping から継承されます。) |
![]() | XsdTypeName | 割り当てられたオブジェクトの XML 要素名を取得します。 |
![]() | XsdTypeNamespace | 割り当てられたオブジェクトの XML 名前空間を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | SetKey | 対応付けの検索に使用するキーを設定します。 (XmlMapping から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- XmlTypeMappingのページへのリンク