System.Runtime.Serialization.XsdDataContractExporter クラス

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

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

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

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

Note

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

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

XML スキーマ ファイルを含む XmlSchemaSet クラスのインスタンスを作成する際は、次の事項に注意します。

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

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

このクラスを使用する際の推奨方法を次に示します。

  1. いずれかの CanExport オーバーロードを使用して、指定した型または型のセットがエクスポート可能かどうかを決定します。 各自の要件に適したいずれかのオーバーロードを使用します。

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

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