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]

Tips/Råd

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.

Argumentation

Argumentation Beskrivning
file.extension Anger vilken indatafil som ska konverteras. Du måste ange tillägget som något av följande: .xdr, .xml, .xsd, .dlleller .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ägget) genererar Xsd.exe källkod för körningsobjekt som motsvarar XML-schemat.

Om du anger en runtime-sammansä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 Beskrivning
/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äs alternativ för olika åtgärdslägen från den angivna .xml-filen. Det korta formuläret är /p:. Mer information finns i avsnittet Kommentarer.

Alternativ för XSD-filer

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

Alternativ Beskrivning
/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 Beskrivning
/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 iLanguage-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 Beskrivning
/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.

Anmärkningar

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

Verksamhet Beskrivning
XDR till XSD Genererar ett XML-schema från en XML-Data-Reduced 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örtidsklasser från ett XSD-schema. 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 för XSD Genererar ett XML-schema från en typ eller typer i en körtidsassembliefil. 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 skriva en biblioteksfil (.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.xmlanvänder du brytaren /parameters genom att skriva följande i kommandotolken 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> .

Komponent Beskrivning
<församling> 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.

Komponent Beskrivning
<elementet> Anger ett element i .xsd-filen som ska generera kod för.
<schemaImporterExtensions> Anger en typ som härleds från klassen SchemaImporterExtension.
<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> .

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

Komponent Beskrivning
<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> .

Egenskap Beskrivning
enableLinqDataSet Anger att den genererade DataSet kan frågas mot att använda LINQ till DataSet. Standardvärdet är falskt.
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> .

Egenskap Beskrivning
resultat 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