この記事では、この 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 インスタンスによってエクスポートされた場合、競合が検出されます。
エクスポーターを使用する
このクラスを使用する推奨される方法は次のとおりです。
.NET