Outil XML Schema Definition (Xsd.exe)XML Schema Definition Tool (Xsd.exe)

L'outil XML Schema Definition Tool (Xsd.exe) génère des classes du Common Language Runtime et du schéma XML à partir de fichiers XDR, XML et XSD ou de classes figurant dans un assembly de runtime.The XML Schema Definition (Xsd.exe) tool generates XML schema or common language runtime classes from XDR, XML, and XSD files, or from classes in a runtime assembly.

SyntaxeSyntax

xsd file.xdr [-outputdir:directory][/parameters:file.xml]
xsd file.xml [-outputdir:directory] [/parameters:file.xml]
xsd file.xsd {/classes | /dataset} [/element:element]
             [/enableLinqDataSet] [/language:language]
                          [/namespace:namespace] [-outputdir:directory] [URI:uri]
                          [/parameters:file.xml]
xsd {file.dll | file.exe} [-outputdir:directory] [/type:typename [...]][/parameters:file.xml]

ArgumentArgument

ArgumentArgument DescriptionDescription
file.extensionfile.extension Spécifie le fichier d'entrée à convertir.Specifies the input file to convert. Vous devez spécifier l’extension de l’une des manières suivantes :. XDR,. xml,. xsd,. dll ou. exe.You must specify the extension as one of the following: .xdr, .xml, .xsd, .dll, or .exe.

Si vous spécifiez un fichier de schéma XDR (extension .xdr), Xsd.exe convertit alors le schéma XDR en schéma XSD.If you specify an XDR schema file (.xdr extension), Xsd.exe converts the XDR schema to an XSD schema. Le fichier de sortie porte le même nom que celui du schéma XDR, mais son extension est .xsd.The output file has the same name as the XDR schema, but with the .xsd extension.

Si vous spécifiez un fichier XML (extension .xml), Xsd.exe déduit alors un schéma à partir des données d'un fichier et génère un schéma XSD.If you specify an XML file (.xml extension), Xsd.exe infers a schema from the data in the file and produces an XSD schema. Le fichier de sortie porte le même nom que celui du fichier XML, mais son extension est .xsd.The output file has the same name as the XML file, but with the .xsd extension.

Si vous spécifiez un fichier de schéma XML (extension .xsd), Xsd.exe génère alors du code source pour les objets de runtime correspondant au schéma XML.If you specify an XML schema file (.xsd extension), Xsd.exe generates source code for runtime objects that correspond to the XML schema.

Si vous spécifiez un fichier d'assembly de runtime (extension .exe ou .dll), Xsd.exe génère alors des schémas pour un ou plusieurs types de cet assembly.If you specify a runtime assembly file (.exe or .dll extension), Xsd.exe generates schemas for one or more types in that assembly. Vous pouvez utiliser l'option /type pour spécifier les types pour lesquels générer des schémas.You can use the /type option to specify the types for which to generate schemas. Les schémas de sortie sont nommés schema0.xsd, schema1.xsd, et ainsi de suite.The output schemas are named schema0.xsd, schema1.xsd, and so on. Xsd.exe génère plusieurs schémas uniquement dans le cas où les types indiqués spécifieraient un espace de noms à l'aide de l'attribut personnalisé XMLRoot.Xsd.exe produces multiple schemas only if the given types specify a namespace using the XMLRoot custom attribute.

Options généralesGeneral Options

OptionOption DescriptionDescription
/h [elp ]/h[elp] Affiche la syntaxe et les options de commande de l'outil.Displays command syntax and options for the tool.
/o [utputdir ] : répertoire/o[utputdir]:directory Spécifie le répertoire des fichiers de sortie.Specifies the directory for output files. Cet argument ne peut être spécifié qu'à une seule reprise.This argument can appear only once. La valeur par défaut correspond au répertoire actif.The default is the current directory.
/?/? Affiche la syntaxe et les options de commande de l'outil.Displays command syntax and options for the tool.
/p [arameters ] : file. xml/p[arameters]:file.xml Options de lecture pour différents modes d'opération à partir du fichier .xml spécifié.Read options for various operation modes from the specified .xml file. La forme abrégée est /p:.The short form is /p:. Pour plus d’informations, consultez la section Notes .For more information, see the Remarks section.

Options de fichier XSDXSD File Options

Vous ne devez spécifier qu'une seule des options suivantes pour les fichiers .xsd.You must specify only one of the following options for .xsd files.

OptionOption DescriptionDescription
/c [lasses ]/c[lasses] Génère des classes correspondant au schéma spécifié.Generates classes that correspond to the specified schema. Pour lire les données XML dans l’objet, utilisez la méthode XmlSerializer.Deserialize.To read XML data into the object, use the XmlSerializer.Deserialize method.
/d [ataset ]/d[ataset] Génère une classe dérivée de DataSet qui correspond au schéma spécifié.Generates a class derived from DataSet that corresponds to the specified schema. Pour lire les données XML dans la classe dérivée, utilisez la méthode DataSet.ReadXml.To read XML data into the derived class, use the DataSet.ReadXml method.

Vous pouvez également spécifier les options suivantes pour les fichiers .xsd.You can also specify any of the following options for .xsd files.

OptionOption DescriptionDescription
/e [lement ] : élément/e[lement]:element Spécifie l'élément figurant dans le schéma pour lequel générer du code.Specifies the element in the schema to generate code for. Tous les éléments sont par défaut tapés.By default all elements are typed. Vous pouvez spécifier cet argument à plusieurs reprises.You can specify this argument more than once.
/enableDataBinding/enableDataBinding Implémente l'interface INotifyPropertyChanged sur tous les types générés pour activer la liaison de données.Implements the INotifyPropertyChanged interface on all generated types to enable data binding. La forme abrégée est /edb.The short form is /edb.
/enableLinqDataSet/enableLinqDataSet (Forme abrégée : /eld.) Spécifie que le DataSet généré peut être interrogé sur l’utilisation de LINQ to DataSet.(Short form: /eld.) Specifies that the generated DataSet can be queried against using LINQ to DataSet. Cette option est utilisée lorsque l'option /dataset est également spécifiée.This option is used when the /dataset option is also specified. Pour plus d’informations, consultez Présentation de LINQ to DataSet et Interrogation de datasets typés.For more information, see LINQ to DataSet Overview and Querying Typed DataSets. Pour obtenir des informations générales sur l’utilisation de LINQ, consultez LINQ (Language- C# Integrated Query) ou LINQ (Language-Integrated Query)-Visual Basic.For general information about using LINQ, see Language-Integrated Query (LINQ) - C# or Language-Integrated Query (LINQ) - Visual Basic.
/f [ields ]/f[ields] Génère des champs plutôt que des propriétés.Generates fields instead of properties. Par défaut, des propriétés sont générées.By default, properties are generated.
/l [anguage ] : langue/l[anguage]:language Spécifie le langage de programmation à utiliser.Specifies the programming language to use. Vous avez le choix entre CS (C#, qui est la valeur par défaut), VB (Visual Basic), JS (JScript) ou VJS (Visual J#).Choose from CS (C#, which is the default), VB (Visual Basic), JS (JScript), or VJS (Visual J#). Vous pouvez également spécifier un nom qualifié complet pour une classe implémentant System.CodeDom.Compiler.CodeDomProvider.You can also specify a fully qualified name for a class implementing System.CodeDom.Compiler.CodeDomProvider
/n [amespace ] : espace de noms/n[amespace]:namespace Spécifie l'espace de noms du runtime pour les types générés.Specifies the runtime namespace for the generated types. L'espace de noms par défaut est Schemas.The default namespace is Schemas.
/nologo/nologo Supprime la bannière.Suppresses the banner.
/order/order Génère des identificateurs d'ordre explicites sur les membres de particule.Generates explicit order identifiers on all particle members.
/o [ut ] : DirectoryName/o[ut]:directoryName Spécifie le répertoire de sortie dans lequel placer les fichiers.Specifies the output directory to place the files in. La valeur par défaut correspond au répertoire actif.The default is the current directory.
/u [ri ] : URI/u[ri]:uri Spécifie l'URI des éléments figurant dans le schéma pour lequel générer du code.Specifies the URI for the elements in the schema to generate code for. S'il existe, cet URI s'applique à tous les éléments spécifiés avec l'option /element.This URI, if present, applies to all elements specified with the /element option.

Options de fichier DLL et EXEDLL and EXE File Options

OptionOption DescriptionDescription
/t [ype ] : TypeName/t[ype]:typename Spécifie le nom du type pour lequel créer un schéma.Specifies the name of the type to create a schema for. Vous pouvez spécifier plusieurs arguments pour le type.You can specify multiple type arguments. Si nom_type ne spécifie pas d’espace de noms, Xsd.exe établit une correspondance entre tous les types de l’assembly et le type spécifié.If typename does not specify a namespace, Xsd.exe matches all types in the assembly with the specified type. Si nom_type spécifie un espace de noms, une correspondance est établie uniquement avec ce type.If typename specifies a namespace, only that type is matched. Si nom_type se termine par un astérisque (*), l’outil établit une correspondance avec tous les types commençant par la chaîne qui précède *.If typename ends with an asterisk character (*), the tool matches all types that start with the string preceding the *. Si vous omettez l'option /type, Xsd.exe génère alors des schémas pour tous les types de l'assembly.If you omit the /type option, Xsd.exe generates schemas for all types in the assembly.

NotesRemarks

Le tableau suivant affiche les opérations que Xsd.exe exécute.The following table shows the operations that Xsd.exe performs.

De XDR en XSDXDR to XSD Génère un schéma XML à partir d'un fichier de schéma XDR (XML-Data-Reduced).Generates an XML schema from an XML-Data-Reduced schema file. XDR est l'un des premiers formats de schéma XML.XDR is an early XML-based schema format.
De XML en XSDXML to XSD Génère un schéma XML à partir d'un fichier XML.Generates an XML schema from an XML file.
De XSD en DataSetXSD to DataSet Génère des classes DataSet de Common Language Runtime à partir d'un fichier de schéma XSD.Generates common language runtime DataSet classes from an XSD schema file. Les classes générées proposent un modèle objet riche aux données XML régulières.The generated classes provide a rich object model for regular XML data.
De XSD en classesXSD to Classes Génère des classes de runtime à partir d'un fichier de schéma XSD.Generates runtime classes from an XSD schema file. Les classes générées peuvent être associées à System.Xml.Serialization.XmlSerializer pour lire et écrire du code XML conforme au schéma.The generated classes can be used in conjunction with System.Xml.Serialization.XmlSerializer to read and write XML code that follows the schema.
De classes en XSDClasses to XSD Génère un schéma XML à partir d'un ou de plusieurs types dans un fichier d'assembly de runtime.Generates an XML schema from a type or types in a runtime assembly file. Le schéma généré définit le format XML utilisé par le XmlSerializer.The generated schema defines the XML format used by the XmlSerializer.

Xsd.exe vous permet uniquement de manipuler les schémas XML conformes au langage XSD (XML Schema Definition) proposé par W3C (World Wide Web Consortium).Xsd.exe only allows you to manipulate XML schemas that follow the XML Schema Definition (XSD) language proposed by the World Wide Web Consortium (W3C). Pour plus d’informations sur la proposition de définition de schéma XML ou la norme XML, consultez https://w3.org.For more information on the XML Schema Definition proposal or the XML standard, see https://w3.org.

Définition d'options avec un fichier XMLSetting Options with an XML File

À l’aide du commutateur /parameters, vous pouvez spécifier un fichier XML qui définit plusieurs options.By using the /parameters switch, you can specify a single XML file that sets various options. Les options que vous pouvez définir dépendent de votre utilisation de l'outil XSD.exe.The options you can set depend on how you are using the XSD.exe tool. Les choix incluent la génération de schémas, la génération de fichiers de code ou la génération de fichiers de code qui incluent des fonctionnalités DataSet.Choices include generating schemas, generating code files, or generating code files that include DataSet features. Par exemple, vous pouvez définir l'élément <assembly> sur le nom d'un fichier exécutable (.exe) ou d'un fichier bibliothèque de types (.dll) lors de la génération d'un schéma, mais pas lors de la génération d'un fichier de code.For example, you can set the <assembly> element to the name of an executable (.exe) or type library (.dll) file when generating a schema, but not when generating a code file. Le code XML suivant indique comment utiliser l'élément <generateSchemas> avec un fichier exécutable spécifié :The following XML shows how to use the <generateSchemas> element with a specified executable:

<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>

Si le code XML précédent est contenu dans un fichier nommé GenerateSchemas.xml, utilisez le commutateur /parameters en tapant ce qui suit dans une invite de commandes et en appuyant sur Entrée :If the preceding XML is contained in a file named GenerateSchemas.xml, then use the /parameters switch by typing the following at a command prompt and pressing ENTER:

 xsd /p:GenerateSchemas.xml

En revanche, si vous générez un schéma pour un seul type trouvé dans l'assembly, vous pouvez utiliser le code XML suivant :On the other hand, if you are generating a schema for a single type found in the assembly, you can use the following XML:

<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <type>IDItems</type>
</generateSchemas>
</xsd>

Mais pour utiliser le code précédent, vous devez également fournir le nom de l'assembly à l'invite de commandes.But to use preceding code, you must also supply the name of the assembly at the command prompt. Tapez ce qui suit lors d'une invite de commandes (à condition que le fichier XML se nomme GenerateSchemaFromType.xml) :Type the following at a command prompt (presuming the XML file is named GenerateSchemaFromType.xml):

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

Vous ne devez spécifier qu'une seule des options suivantes pour l'élément <generateSchemas>.You must specify only one of the following options for the <generateSchemas> element.

ÉlémentElement DescriptionDescription
<assembly><assembly> Spécifie un assembly à partir duquel générer le schéma.Specifies an assembly to generate the schema from.
<type><type> Spécifie un type trouvé dans un assembly pour lequel générer un schéma.Specifies a type found in an assembly to generate a schema for.
<xml><xml> Spécifie un fichier XML pour lequel générer un schéma.Specifies an XML file to generate a schema for.
<xdr><xdr> Spécifie un fichier XDR pour lequel générer un schéma.Specifies an XDR file to generate a schema for.

Pour générer un fichier de code, utilisez l'élément <generateClasses>.To generate a code file, use the <generateClasses> element. L'exemple suivant génère un fichier de code.The following example generates a code file. Notez que deux attributs sont également indiqués, ils vous permettent de définir le langage de programmation et l'espace de noms du fichier généré.Note that two attributes are also shown that allow you to set the programming language and namespace of the generated file.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='VB' namespace='Microsoft.Serialization.Examples'/>
</xsd>
<!-- You must supply an .xsd file when typing in the command line.-->
<!-- For example: xsd /p:genClasses mySchema.xsd -->

Les options que vous pouvez définir pour l'élément <generateClasses> incluent les éléments suivants.Options you can set for the <generateClasses> element include the following.

ÉlémentElement DescriptionDescription
<element><element> Spécifie un élément dans le fichier .xsd pour lequel générer du code.Specifies an element in the .xsd file to generate code for.
<schemaImporterExtensions><schemaImporterExtensions> Spécifie un type dérivé de la classe SchemaImporterExtension.Specifies a type derived from the SchemaImporterExtension class.
<schema><schema> Spécifie un fichier de schéma XML pour lequel générer du code.Specifies a XML Schema file to generate code for. Vous pouvez spécifier plusieurs fichiers de schéma XML en utilisant plusieurs éléments <schema>.Multiple XML Schema files can be specified using multiple <schema> elements.

Le tableau suivant affiche les attributs qui peuvent également être utilisés avec l'élément <generateClasses>.The following table shows the attributes that can also be used with the <generateClasses> element.

AttributAttribute DescriptionDescription
languagelanguage Spécifie le langage de programmation à utiliser.Specifies the programming language to use. Vous avez le choix entre CS (C#, la valeur par défaut), VB (Visual Basic), JS (JScript) ou VJS (Visual J#).Choose from CS (C#, the default), VB (Visual Basic), JS (JScript), or VJS (Visual J#). Vous pouvez également spécifier un nom qualifié complet pour une classe qui implémente CodeDomProvider.You can also specify a fully qualified name for a class that implements CodeDomProvider.
namespacenamespace Spécifie l'espace de noms pour le code généré.Specifies the namespace for the generated code. L'espace de noms doit se conformer aux normes CLR (par exemple, aucun espace ou barre oblique inverse).The namespace must conform to CLR standards (for example, no spaces or backslash characters).
optionsoptions L’une des valeurs suivantes : none, properties (génère des propriétés au lieu de champs publics), order ou enableDataBinding (consultez les commutateurs /order et /enableDataBinding dans la section Options de fichier XSD précédente).One of the following values: none, properties (generates properties instead of public fields), order, or enableDataBinding (see the /order and /enableDataBinding switches in the preceding XSD File Options section.

Vous pouvez également contrôler comment le code DataSet est généré à l'aide de l'élément <generateDataSet>.You can also control how DataSet code is generated by using the <generateDataSet> element. Le code XML suivant spécifie que le code généré utilise DataSet structures (telles que la classe DataTable) pour créer Visual Basic code pour un élément spécifié.The following XML specifies that the generated code uses DataSet structures (such as the DataTable class) to create Visual Basic code for a specified element. Les structures DataSet générées prendront en charge les requêtes LINQ.The generated DataSet structures will support LINQ queries.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
    <generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
    </generateDataSet>
</xsd>

Les options que vous pouvez définir pour l'élément <generateDataSet> incluent les éléments suivants.Options you can set for the <generateDataSet> element include the following.

ÉlémentElement DescriptionDescription
<schema><schema> Spécifie un fichier de schéma XML pour lequel générer du code.Specifies an XML Schema file to generate code for. Vous pouvez spécifier plusieurs fichiers de schéma XML en utilisant plusieurs éléments <schema>.Multiple XML Schema files can be specified using multiple <schema> elements.

Le tableau suivant affiche les attributs qui peuvent être utilisés avec l'élément <generateDataSet>.The following table shows the attributes that can be used with the <generateDataSet> element.

AttributAttribute DescriptionDescription
enableLinqDataSetenableLinqDataSet Spécifie que le DataSet généré peut être interrogé par rapport à l'utilisation de LINQ to DataSet.Specifies that the generated DataSet can be queried against using LINQ to DataSet. La valeur par défaut est false.The default value is false.
languagelanguage Spécifie le langage de programmation à utiliser.Specifies the programming language to use. Vous avez le choix entre CS (C#, la valeur par défaut), VB (Visual Basic), JS (JScript) ou VJS (Visual J#).Choose from CS (C#, the default), VB (Visual Basic), JS (JScript), or VJS (Visual J#). Vous pouvez également spécifier un nom qualifié complet pour une classe qui implémente CodeDomProvider.You can also specify a fully qualified name for a class that implements CodeDomProvider.
namespacenamespace Spécifie l'espace de noms pour le code généré.Specifies the namespace for the generated code. L'espace de noms doit se conformer aux normes CLR (par exemple, aucun espace ou barre oblique inverse).The namespace must conform to CLR standards (for example, no spaces or backslash characters).

Vous pouvez définir certains attributs sur l'élément <xsd> de niveau supérieur.There are attributes that you can set on the top level <xsd> element. Ces options peuvent être utilisées avec n'importe lequel des éléments enfants (<generateSchemas>, <generateClasses> ou <generateDataSet>).These options can be used with any of the child elements (<generateSchemas>, <generateClasses> or <generateDataSet>). Le code XML suivant génère le code pour un élément nommé "IDItems" dans le répertoire de sortie nommé "MyOutputDirectory".The following XML code generates code for an element named "IDItems" in the output directory named "MyOutputDirectory".

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
    <element>IDItems</element>
</generateClasses>
</xsd>

Le tableau suivant affiche les attributs qui peuvent également être utilisés avec l'élément <xsd>.The following table shows the attributes that can also be used with the <xsd> element.

AttributAttribute DescriptionDescription
sortieoutput Le nom d'un répertoire dans lequel le schéma généré ou le fichier de code sera placé.The name of a directory where the generated schema or code file will be placed.
nologonologo Supprime la bannière.Suppresses the banner. A la valeur true ou false.Set to true or false.
helphelp Affiche la syntaxe et les options de commande de l'outil.Displays command syntax and options for the tool. A la valeur true ou false.Set to true or false.

ExemplesExamples

La commande suivante génère un schéma XML à partir de myFile.xdr et l'enregistre dans le répertoire actif.The following command generates an XML schema from myFile.xdr and saves it to the current directory.

xsd myFile.xdr

La commande suivante génère un schéma XML à partir de myFile.xml et l'enregistre dans le répertoire spécifié.The following command generates an XML schema from myFile.xml and saves it to the specified directory.

xsd myFile.xml /outputdir:myOutputDir

La commande suivante génère un groupe de données qui correspond au schéma spécifié dans le langage C# et le sauvegarde comme XSDSchemaFile.cs dans le répertoire actif.The following command generates a data set that corresponds to the specified schema in the C# language and saves it as XSDSchemaFile.cs in the current directory.

xsd /dataset /language:CS XSDSchemaFile.xsd

La commande suivante génère des schémas XML pour tous les types de l'assembly myAssembly.dll et les enregistre sous schema0.xsd dans le répertoire actif.The following command generates XML schemas for all types in the assembly myAssembly.dll and saves them as schema0.xsd in the current directory.

xsd myAssembly.dll

Voir aussiSee also