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
, Include
och 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