Dela via


XML-schemadefinitionsverktyg (Xsd.exe)

Verktyget XML-schemadefinition (Xsd.exe) genererar XML-schema eller vanliga språkkörningsklasser från XDR-, XML- och XSD-filer eller från klasser i en körningssammansättning.

Xml-schemadefinitionsverktyget (Xsd.exe) finns vanligtvis i följande sökväg:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\

Syntax

Kör verktyget från kommandoraden.

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]

Dricks

För att .NET Framework-verktygen ska fungera korrekt måste du ange miljövariablerna Path, Includeoch Lib . Ange dessa miljövariabler genom att köra SDKVars.bat, som finns i <katalogen SDK>\<version>\Bin. SDKVars.bat måste köras i varje kommandogränssnitt.

Argument

Argument beskrivning
file.extension Anger vilken indatafil som ska konverteras. Du måste ange tillägget som något av följande: .xdr, .xml, .xsd, .dll eller .exe.

Om du anger en XDR-schemafil (.xdr-tillägg) konverterar Xsd.exe XDR-schemat till ett XSD-schema. Utdatafilen har samma namn som XDR-schemat, men med .xsd-tillägget.

Om du anger en XML-fil (.xml filnamnstillägg) Xsd.exe härleder ett schema från data i filen och skapar ett XSD-schema. Utdatafilen har samma namn som XML-filen, men med .xsd-tillägget.

Om du anger en XML-schemafil (.xsd-tillägg) genererar Xsd.exe källkod för körningsobjekt som motsvarar XML-schemat.

Om du anger en körningssammansättningsfil (.exe eller .dll filnamnstillägg) genererar Xsd.exe scheman för en eller flera typer i sammansättningen. Du kan använda alternativet /type för att ange vilka typer som scheman ska genereras för. Utdataschemana heter schema0.xsd, schema1.xsd och så vidare. Xsd.exe skapar endast flera scheman om de angivna typerna anger ett namnområde med det XMLRoot anpassade attributet.

Allmänna alternativ

Alternativ Description
/h[elp] Visar kommandosyntax och alternativ för verktyget.
/o[utputdir]:directory Anger katalogen för utdatafiler. Det här argumentet kan bara visas en gång. Standardvärdet är den aktuella katalogen.
/? Visar kommandosyntax och alternativ för verktyget.
/p[arameters]:file.xml Läsalternativ för olika åtgärdslägen från den angivna .xml filen. Det korta formuläret är /p:. Mer information finns i avsnittet Anmärkningar .

Alternativ för XSD-filer

Du måste bara ange något av följande alternativ för .xsd-filer.

Alternativ Description
/c[lasses] Genererar klasser som motsvarar det angivna schemat. Om du vill läsa XML-data i objektet använder du XmlSerializer.Deserialize -metoden.
/d[ataset] Genererar en klass härledd från DataSet som motsvarar det angivna schemat. Om du vill läsa XML-data i den härledda klassen använder du DataSet.ReadXml metoden .

Du kan också ange något av följande alternativ för .xsd-filer.

Alternativ Description
/e[lement]:element Anger elementet i schemat som ska generera kod för. Som standard skrivs alla element. Du kan ange det här argumentet mer än en gång.
/enableDataBinding Implementerar gränssnittet på INotifyPropertyChanged alla genererade typer för att aktivera databindning. Det korta formuläret är /edb.
/enableLinqDataSet (Kort formulär: /eld.) Anger att den genererade DataSet kan frågas mot att använda LINQ till DataSet. Det här alternativet används när alternativet /datauppsättning också anges. Mer information finns i LINQ to DataSet Overview and Querying Typed DataSets (LINQ to DataSet Overview and Querying Typed DataSets). Allmän information om hur du använder LINQ finns i Language-Integrated Query (LINQ) – C# eller Language-Integrated Query (LINQ) – Visual Basic.
/f[ields] Genererar endast fält. Som standard genereras egenskaper med bakgrundsfält .
/l[anguage]:language Anger vilket programmeringsspråk som ska användas. Välj mellan CS (C#, som är standard), VB (Visual Basic), JS (JScript) eller VJS (Visual J#). Du kan också ange ett fullständigt kvalificerat namn för en klass som implementerar System.CodeDom.Compiler.CodeDomProvider
/n[amespace]:namespace Anger körningsnamnområdet för de genererade typerna. Standardnamnområdet är Schemas.
/nologo Undertrycker banderollen.
/Ordning Genererar explicita orderidentifierare för alla partikelmedlemmar.
/o[ut]:directoryName Anger utdatakatalogen som filerna ska placeras i. Standardvärdet är den aktuella katalogen.
/u[ri]:uri Anger URI:n för elementen i schemat som ska generera kod för. Den här URI:n gäller om den finns för alla element som anges med /element alternativet .

Alternativ för DLL- och EXE-filer

Alternativ Description
/t[ype]:typename Anger namnet på den typ som du vill skapa ett schema för. Du kan ange flera typargument. Om typename inte anger något namnområde matchar Xsd.exe alla typer i sammansättningen med den angivna typen. Om typename anger ett namnområde matchas endast den typen. Om typename slutar med ett asterisktecken (*) matchar verktyget alla typer som börjar med strängen före *. Om du utelämnar alternativet /type genererar Xsd.exe scheman för alla typer i sammansättningen.

Kommentarer

I följande tabell visas de åtgärder som Xsd.exe utför.

Operation beskrivning
XDR till XSD Genererar ett XML-schema från en XML-datareducerad schemafil. XDR är ett tidigt XML-baserat schemaformat.
XML till XSD Genererar ett XML-schema från en XML-fil.
XSD till DataSet Genererar vanliga språkkörningsklasser DataSet från en XSD-schemafil. De genererade klasserna tillhandahåller en omfattande objektmodell för vanliga XML-data.
XSD till klasser Genererar körningsklasser från en XSD-schemafil. De genererade klasserna kan användas tillsammans med System.Xml.Serialization.XmlSerializer för att läsa och skriva XML-kod som följer schemat.
Klasser till XSD Genererar ett XML-schema från en typ eller typ i en körningssammansättningsfil. Det genererade schemat definierar DET XML-format som används av XmlSerializer.

Xsd.exe kan du bara ändra XML-scheman som följer det XML-schemadefinitionsspråk (XSD) som föreslås av World Wide Web Consortium (W3C). Mer information om XML-schemadefinitionsförslaget eller XML-standarden finns i https://w3.org.

Ange alternativ med en XML-fil

Genom att använda växeln /parameters kan du ange en enda XML-fil som anger olika alternativ. Vilka alternativ du kan ange beror på hur du använder verktyget XSD.exe. Du kan till exempel generera scheman, generera kodfiler eller generera kodfiler som innehåller DataSet funktioner. Du kan till exempel ange -elementet <assembly> till namnet på en körbar fil (.exe) eller typbiblioteksfil (.dll) när du genererar ett schema, men inte när du genererar en kodfil. Följande XML visar hur du använder elementet <generateSchemas> med en angiven körbar fil:

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

Om föregående XML finns i en fil med namnet GenerateSchemas.xml använder du växeln /parameters genom att skriva följande i en kommandotolk och trycka på Retur:

 xsd /p:GenerateSchemas.xml

Om du å andra sidan genererar ett schema för en enskild typ som finns i sammansättningen kan du använda följande XML:

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

Men om du vill använda föregående kod måste du också ange namnet på sammansättningen i kommandotolken. Ange följande i en kommandotolk (anta att XML-filen heter GenerateSchemaFromType.xml):

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

Du måste bara ange något av följande alternativ för elementet <generateSchemas> .

Element Description
<Församlingen> Anger en sammansättning som schemat ska genereras från.
<typ> Anger en typ som finns i en sammansättning som ska generera ett schema för.
<xml> Anger en XML-fil som ska generera ett schema för.
<Xdr> Anger en XDR-fil som ska generera ett schema för.

Använd elementet för <generateClasses> att generera en kodfil. I följande exempel genereras en kodfil. Observera att två attribut också visas som gör att du kan ange programmeringsspråket och namnområdet för den genererade filen.

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

Alternativ som du kan ange för elementet <generateClasses> är följande.

Element Description
<element> Anger ett element i .xsd-filen som ska generera kod för.
<schemaImporterExtensions> Anger en typ som härleds SchemaImporterExtension från klassen.
<Schemat> Anger en XML-schemafil som ska generera kod för. Flera XML-schemafiler kan anges med flera <schemaelement> .

I följande tabell visas de attribut som också kan användas med elementet <generateClasses> .

Attribut beskrivning
språk Anger vilket programmeringsspråk som ska användas. Välj CS mellan (C#, standard), VB (Visual Basic), JS (JScript) eller VJS (Visual J#). Du kan också ange ett fullständigt kvalificerat namn för en klass som implementerar CodeDomProvider.
namnområde Anger namnområdet för den genererade koden. Namnområdet måste överensstämma med CLR-standarder (till exempel inga blanksteg eller omvänt snedstreck).
alternativ Ett av följande värden: none, properties (genererar egenskaper i stället för offentliga fält), order, eller enableDataBinding (se /order och /enableDataBinding växlar i föregående XSD-filalternativ.

Du kan också styra hur DataSet kod genereras med hjälp av -elementet <generateDataSet> . Följande XML anger att den genererade koden använder DataSet strukturer (till exempel DataTable klassen) för att skapa Visual Basic-kod för ett angivet element. De genererade DataSet-strukturerna stöder LINQ-frågor.

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

Alternativ som du kan ange för elementet <generateDataSet> är följande.

Element Description
<Schemat> Anger en XML-schemafil som ska generera kod för. Flera XML-schemafiler kan anges med flera <schemaelement> .

I följande tabell visas de attribut som kan användas med elementet <generateDataSet> .

Attribut beskrivning
enableLinqDataSet Anger att den genererade DataSet kan frågas mot att använda LINQ till DataSet. Standardvärdet är "false".
språk Anger vilket programmeringsspråk som ska användas. Välj CS mellan (C#, standard), VB (Visual Basic), JS (JScript) eller VJS (Visual J#). Du kan också ange ett fullständigt kvalificerat namn för en klass som implementerar CodeDomProvider.
namnområde Anger namnområdet för den genererade koden. Namnområdet måste överensstämma med CLR-standarder (till exempel inga blanksteg eller omvänt snedstreck).

Det finns attribut som du kan ange på elementet på den översta nivån <xsd> . Dessa alternativ kan användas med något av de underordnade elementen (<generateSchemas>eller <generateClasses><generateDataSet>). Följande XML-kod genererar kod för ett element med namnet "IDItems" i utdatakatalogen med namnet "MyOutputDirectory".

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

I följande tabell visas de attribut som också kan användas med elementet <xsd> .

Attribut beskrivning
utdata Namnet på en katalog där det genererade schemat eller kodfilen placeras.
nologo Undertrycker banderollen. Ange till true eller false.
hjälp Visar kommandosyntax och alternativ för verktyget. Ange till true eller false.

Exempel

Följande kommando genererar ett XML-schema från myFile.xdr och sparar det i den aktuella katalogen.

xsd myFile.xdr

Följande kommando genererar ett XML-schema från myFile.xml och sparar det i den angivna katalogen.

xsd myFile.xml /outputdir:myOutputDir

Följande kommando genererar en datauppsättning som motsvarar det angivna schemat på C#-språket och sparar den som XSDSchemaFile.cs i den aktuella katalogen.

xsd /dataset /language:CS XSDSchemaFile.xsd

Följande kommando genererar XML-scheman för alla typer i sammansättningen myAssembly.dll och sparar dem som schema0.xsd i den aktuella katalogen.

xsd myAssembly.dll

Se även