次の方法で共有


System.Runtime.Serialization.XsdDataContractExporter クラス

この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。

共通言語ランタイム (CLR) 型で表されるデータを組み込む Web サービスを作成し、他の Web サービスで使用する各型の XML スキーマをエクスポートする必要がある場合は、 XsdDataContractExporter クラスを使用します。 つまり、 XsdDataContractExporter は CLR 型のセットを XML スキーマに変換します。 (使用できる型の詳細については、「 データ コントラクト シリアライザーでサポートされる型」を参照してください)。その後、サービスと相互運用する必要がある他のユーザーが使用できるように、Web サービス記述言語 (WSDL) ドキュメントを介してスキーマを公開できます。

逆に、既存の Web サービスと相互運用する必要がある Web サービスを作成する場合は、 XsdDataContractImporter を使用して XML スキーマを変換し、選択したプログラミング言語でデータを表す CLR 型を作成します。

XsdDataContractExporterは、スキーマのコレクションを含むXmlSchemaSet オブジェクトを生成します。 Schemas() プロパティを使用してスキーマのセットにアクセスします。

他の Web サービスが使用できる XML スキーマ定義 (XSD) ファイルをすばやく生成するには、 XsdDataContractExporterを使用します。

XmlSchemaSet にスキーマをエクスポートする

XML スキーマ ファイルを含む XmlSchemaSet クラスのインスタンスを作成するには、次の点に注意する必要があります。

エクスポートする型のセットは、データ コントラクトの内部セットとして記録されます。 したがって、 CanExport メソッドを複数回呼び出して、新しい型のみがセットに追加されるため、パフォーマンスを低下させることなくスキーマ セットに新しい型を追加できます。 Export操作中に、既存のスキーマが追加される新しいスキーマと比較されます。 競合がある場合は、例外がスローされます。 通常、同じデータ コントラクト名を持つが異なるコントラクト (異なるメンバー) を持つ 2 つの型が同じ XsdDataContractExporter インスタンスによってエクスポートされた場合、競合が検出されます。

エクスポーターを使用する

このクラスを使用する推奨される方法は次のとおりです。

  1. CanExportオーバーロードのいずれかを使用して、指定した型または型のセットをエクスポートできるかどうかを判断します。 要件に適したオーバーロードのいずれかを使用します。

  2. 対応する Export メソッドを呼び出します。

  3. Schemas プロパティからスキーマを取得します。