Exportation de schémas à partir de classes
Pour générer des schémas XSD (Schema definition language) à partir des classes utilisées dans le modèle de contrat de données, utilisez la classe XsdDataContractExporter. Cette rubrique décrit le processus de création de schémas.
Processus d'exportation
Le processus d'exportation de schéma démarre avec un ou plusieurs types et produit un XmlSchemaSet qui décrit la projection XML de ces types.
Le XmlSchemaSet fait partie du modèle d'objet de schéma du .NET Framework qui représente un jeu de documents de schéma XSD. Pour créer des documents XSD à partir d'un XmlSchemaSet, utilisez la collection de schémas de la propriété Schemas de la classe XmlSchemaSet. Puis sérialisez chaque objet XmlSchema à l'aide du XmlSerializer.
Pour exporter des schémas
Créez une instance de XsdDataContractExporter.
Facultatif. Passez un XmlSchemaSet dans le constructeur. Dans ce cas, le schéma généré pendant l'exportation de schéma est ajouté à cette instance XmlSchemaSet au lieu de démarrer avec un XmlSchemaSet vide.
Facultatif. Appelez une des méthodes CanExport. La méthode détermine si le type spécifié peut être exporté. La méthode a les mêmes surcharges que la méthode Export dans l'étape suivante.
Appelez une des méthodes Export. Il y a trois surcharges qui prennent un Type, un List d'objets Type, ou un List d'objets Assembly. Dans le dernier cas, tous les types dans tous les assemblys donnés sont exportés.
Plusieurs appels à la méthode Export entraînent l'ajout de plusieurs éléments au même XmlSchemaSet. Un type n'est pas généré dans le XmlSchemaSet s'il est déjà présent. Par conséquent, il est préférable d'appeler Export plusieurs fois sur le même XsdDataContractExporter que de créer plusieurs instances de la classe XsdDataContractExporter. Cela évite de générer plusieurs types de schémas en double.
Remarque : En cas de défaillance pendant l'exportation, le XmlSchemaSet sera dans un état imprévisible. Accédez à XmlSchemaSet à l'aide de la propriété Schemas.
Options d'exportation
Vous pouvez définir la propriété Options de XsdDataContractExporter avec une instance de la classe ExportOptions pour contrôler divers aspects du processus d'exportation. Spécifiquement, vous pouvez définir les options suivantes :
- KnownTypes. Cette collection de Type représente les types connus pour les types qui sont exportés. (Pour plus d'informations, consultez Types connus de contrats de données.) Ces types connus sont exportés sur chaque appel Export en plus des types passés à la méthode Export.
- DataContractSurrogate. Un IDataContractSurrogate peut être fourni par l'intermédiaire de cette propriété qui personnalisera le processus d'exportation. Pour plus d'informations, consultez Substituts de contrats de données. Par défaut, aucun substitut n'est utilisé.
Méthodes d'assistance
En plus de son rôle principal chargé d'exporter le schéma, le XsdDataContractExporter offre plusieurs méthodes d'assistance utiles qui fournissent des informations relatives aux types. Ces méthodes incluent :
- Méthode GetRootElementName. Cette méthode prend un Type et retourne un XmlQualifiedName qui représente le nom d'élément racine et l'espace de noms qui seraient utilisés si ce type était sérialisé comme objet racine.
- Méthode GetSchemaTypeName. Cette méthode prend un Type et retourne un XmlQualifiedName qui représente le nom du type de schéma XSD qui serait utilisé si ce type était exporté dans le schéma. Pour les types IXmlSerializable représentés comme types anonymes dans le schéma, cette méthode retourne null.
- Méthode GetSchemaType. Cette méthode fonctionne uniquement avec les types IXmlSerializable représentés comme types anonymes dans le schéma et retourne null pour tous les autres types. Pour les types anonymes, cette méthode retourne un XmlSchemaType qui représente un Type donné.
Les options d'exportation affectent toutes ces méthodes.
Voir aussi
Référence
DataContractSerializer
XsdDataContractImporter
XsdDataContractExporter
Concepts
Importation et exportation de schémas
Importation du schéma pour générer des classes