Partager via


Classe System.Runtime.Serialization.XsdDataContractExporter

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

Utilisez la classe XsdDataContractExporter lorsque vous avez créé un service Web qui incorpore des données représentées par les types CLR (Common Language Runtime) et que vous devez exporter des schémas XML pour chaque type à consommer par d'autres services Web. Autrement dit, XsdDataContractExporter transforme un ensemble de types CLR en schémas XML. (Pour plus d’informations sur les types qui peuvent être utilisés, consultez Types pris en charge par le sérialiseur de contrat de données.) Les schémas peuvent ensuite être exposés via un document WSDL (Web Services Description Language) à utiliser par d’autres personnes qui doivent interagir avec votre service.

À l'inverse, si vous créez un service Web qui doit interopérer avec un service Web existant, utilisez le XsdDataContractImporter pour transformer des schémas XML et créer les types CLR qui représentent les données dans un langage de programmation sélectionné.

Le XsdDataContractExporter génère un objet XmlSchemaSet qui contient la collection de schémas. Accédez à l'jeu de schémas via la propriété Schemas().

Remarque

Pour rapidement générer des fichiers XSD (XML Schema Definition) que d'autres services Web peuvent consommer, utilisez le XsdDataContractExporter.

Exporter des schémas dans un XmlSchemaSet

Pour créer une instance de la classe XmlSchemaSet qui contient des fichiers de schéma XML, vous devez être conscient des éléments suivants.

L'ensemble de types que vous exportez est enregistré comme un ensemble interne de contrats de données. Vous pouvez donc appeler plusieurs fois la méthode CanExport pour ajouter des types nouveaux à l'jeu de schémas sans dégrader les performances parce que seuls les types nouveaux seront ajoutés à l'ensemble. Pendant l'opération Export, les schémas existants sont comparés aux nouveaux schémas qui sont ajoutés. Si des conflits existent, une exception sera levée. Un conflit est généralement détecté si deux types avec le même nom de contrat de données mais avec des contrats différents (membres différents) sont exportés par la même instance XsdDataContractExporter.

Utiliser l’exportateur

Une solution recommandée d'utiliser cette classe est la suivante :

  1. Utilisez l'une des surcharges CanExport pour déterminer si le type spécifié ou l'ensemble de types peut être exporté. Utilisez l’une des surcharges qui est appropriée pour vos exigences.

  2. Appelez la méthode Export correspondante.

  3. Récupérez les schémas à partir de la propriété Schemas.