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.

XmlSchemaSet fait partie du modèle d’objet de schéma de .NET Framework qui représente un ensemble 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

  1. Créez une instance de XsdDataContractExporter.

  2. 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 XmlSchemaSetvide.

  3. 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.

  4. Appelez une des méthodes Export. Il y a trois surcharges qui prennent un Type, un List<T> d'objets Type , ou un List<T> 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.

    Notes

    En cas de défaillance pendant l'exportation, le XmlSchemaSet sera dans un état imprévisible.

  5. 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 :

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. Il s’agit notamment des paramètres suivants :

  • MéthodeGetRootElementName . 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éthodeGetSchemaTypeName . 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éthodeGetSchemaType . 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 Typedonné.

Les options d'exportation affectent toutes ces méthodes.

Voir aussi