Megosztás a következőn keresztül:


XML-sémadefiníciós eszköz (Xsd.exe)

Az XML-sémadefiníció (Xsd.exe) eszköz XDR-, XML- és XSD-fájlokból vagy futtatókörnyezeti szerelvény osztályaiból hoz létre XML-sémát vagy közös nyelvi futtatókörnyezeti osztályokat.

Az XML-sémadefiníciós eszköz (Xsd.exe) általában a következő elérési úton található:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\

Szemantika

Futtassa az eszközt a parancssorból.

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]

Jótanács

Ahhoz, hogy a .NET-keretrendszer eszközei megfelelően működjenek, helyesen kell beállítania a Path, Includeés Lib a környezeti változókat. Állítsa be ezeket a környezeti változókat az SDK<\version>\<Bin könyvtárban >található SDKVars.batfuttatásával. SDKVars.bat minden parancshéjban végre kell hajtani.

érvelés

érvelés Leírás
file.extension Megadja a konvertálni kívánt bemeneti fájlt. A bővítményt a következők egyikeként kell megadnia: .xdr, .xml, .xsd, .dllvagy .exe.

Ha XDR-sémafájlt (.xdr kiterjesztést) ad meg, Xsd.exe az XDR-sémát XSD-sémává alakítja. A kimeneti fájl neve megegyezik az XDR-sémával, de az .xsd kiterjesztéssel.

Ha xml-fájlt (.xml kiterjesztést) ad meg, Xsd.exe a fájl adataiból következtet egy sémára, és létrehoz egy XSD-sémát. A kimeneti fájl neve megegyezik az XML-fájl nevével, de az .xsd kiterjesztéssel.

Ha XML-sémafájlt (.xsd kiterjesztést) ad meg, Xsd.exe létrehozza az XML-sémának megfelelő futtatókörnyezeti objektumok forráskódját.

Ha futásidejű szerelvényfájlt (.exe vagy .dll bővítményt) ad meg, Xsd.exe a szerelvény egy vagy több típusához hoz létre sémákat. A beállítással /type megadhatja a sémák létrehozásához használt típusokat. A kimeneti sémák neve schema0.xsd, schema1.xsd stb. Xsd.exe csak akkor hoz létre több sémát, ha az adott típusok egy névteret adnak meg az XMLRoot egyéni attribútummal.

Általános beállítások

Lehetőség Leírás
/h[elp] Megjeleníti az eszköz parancsszintaxisát és beállításait.
/o[utputdir]:directory Megadja a kimeneti fájlok könyvtárát. Ez az argumentum csak egyszer jelenhet meg. Az alapértelmezett az aktuális könyvtár.
/? Megjeleníti az eszköz parancsszintaxisát és beállításait.
/p[arameters]:file.xml A megadott .xml fájl különböző üzemmódjainak olvasási beállításai. A rövidítés a /p:. További információ: Megjegyzések szakasz.

XSD-fájlbeállítások

Az .xsd fájlokhoz csak az alábbi beállítások egyikét kell megadnia.

Lehetőség Leírás
/c[lasses] A megadott sémának megfelelő osztályokat hoz létre. Ha XML-adatokat szeretne beolvasni az objektumba, használja a metódust XmlSerializer.Deserialize .
/d[ataset] Létrehoz egy osztályt DataSet , amely a megadott sémának felel meg. Ha XML-adatokat szeretne beolvasni a származtatott osztályba, használja a metódust DataSet.ReadXml .

Az .xsd fájlokhoz az alábbi lehetőségek bármelyikét megadhatja.

Lehetőség Leírás
/e[lement]:element Megadja a séma azon elemét, amely számára kódot szeretne létrehozni. Alapértelmezés szerint minden elem be van állítva. Ezt az argumentumot többször is megadhatja.
/enableDataBinding Az INotifyPropertyChanged interfészt implementálja minden generált típuson az adatkötés engedélyezéséhez. A rövidítés a /edb.
/enableLinqDataSet (Rövid űrlap: /eld.) Megadja, hogy a létrehozott adathalmaz lekérdezhető-e a LINQ to DataSet használatával. Ezt a lehetőséget akkor használja a rendszer, ha az /dataset beállítás is meg van adva. További információ: LINQ to DataSet Overview and Querying Typed DataSets. A LINQ használatával kapcsolatos általános információkért lásd :Language-Integrated Query (LINQ) – C# vagy Language-Integrated Query (LINQ) – Visual Basic.
/f[ields] Csak mezőket hoz létre. Alapértelmezés szerint a háttérmezőkkel rendelkező tulajdonságok jönnek létre.
/l[anguage]:language Megadja a használni kívánt programozási nyelvet. Válasszon a CS (C#, amely az alapértelmezett), VB (Visual Basic), JS (JScript) vagy VJS (Visual J#) közül. Az osztály implementálásának teljes neve is megadható System.CodeDom.Compiler.CodeDomProvider
/n[amespace]:namespace Megadja a létrehozott típusok futtatókörnyezeti névterét. Az alapértelmezett névtér a Schemas.
/nologo Letiltja a szalagcímet.
/megrendelés Explicit rendelésazonosítókat hoz létre az összes részecskeelem számára.
/o[ut]:directoryName Megadja a kimeneti könyvtárat, amelybe a fájlokat helyezni szeretné. Az alapértelmezett az aktuális könyvtár.
/u[ri]:uri Megadja a séma azon elemeinek URI-ját, amelyekhez kódot szeretne létrehozni. Ez az URI, ha van, a beállítással /element megadott összes elemre vonatkozik.

DLL- és EXE-fájlbeállítások

Lehetőség Leírás
/t[ype]:typename Megadja annak a típusnak a nevét, amelyhez sémát szeretne létrehozni. Több típusargumentumot is megadhat. Ha a típusnév nem ad meg névteret, Xsd.exe megegyezik a szerelvény összes típusával a megadott típussal. Ha a típusnév névteret ad meg, csak az adott típus felel meg. Ha a típusnév csillag karakterrel (*) végződik, az eszköz minden olyan típusnak megfelel, amely a *előtti sztringgel kezdődik. Ha kihagyja a /type beállítást, Xsd.exe a szerelvény minden típusához létrehoz sémákat.

Megjegyzések

Az alábbi táblázat azokat a műveleteket mutatja be, amelyeket Xsd.exe hajt végre.

Művelet Leírás
XDR-ből XSD-be XML-sémát hoz létre egy XML-Data-Reduced sémafájlból. Az XDR egy korai XML-alapú sémaformátum.
XML–XSD XML-sémát hoz létre EGY XML-fájlból.
XSD-ről adathalmazra Általános nyelvi futtatókörnyezeti DataSet osztályokat hoz létre egy XSD-sémafájlból. A létrehozott osztályok gazdag objektummodellt biztosítanak a normál XML-adatokhoz.
XSD osztályoknak Futtatókörnyezeti osztályokat hoz létre egy XSD-sémafájlból. A létrehozott osztályok a System.Xml.Serialization.XmlSerializer segítségével a sémát követő XML-kód olvasásához és írásához használhatók.
Osztályok az XSD-be XML-sémát hoz létre egy vagy több típusból egy futtatás közbeni assembly fájlból. A létrehozott séma határozza meg a . által használt XML-formátumot XmlSerializer.

Xsd.exe csak a World Wide Web Consortium (W3C) által javasolt XML-sémadefiníciót (XSD) követő XML-sémákat kezelheti. További információ az XML-sémadefiníciós javaslatról vagy az XML-szabványról https://w3.org: .

Beállítási beállítások XML-fájllal

A kapcsolóval /parameters egyetlen XML-fájlt adhat meg, amely különböző beállításokat állít be. A megadható beállítások attól függenek, hogyan használja az XSD.exe eszközt. A lehetőségek közé tartoznak a sémák létrehozása, a kódfájlok létrehozása vagy a funkciókat tartalmazó DataSet kódfájlok létrehozása. Beállíthatja például az <assembly> elemet egy végrehajtható (.exe) vagy egy kódtár (.dll) fájl nevére a séma létrehozásakor, kódfájl létrehozásakor azonban nem. Az alábbi XML bemutatja, hogyan használható az <generateSchemas> elem egy megadott végrehajtható fájllal:

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

Ha az előző XML egy GenerateSchemas.xmlnevű fájlban található, használja a /parameters kapcsolót úgy, hogy beírja a következőt egy parancssorba, és nyomja le az Enter billentyűt:

 xsd /p:GenerateSchemas.xml

Ha viszont a szerelvényben található egyetlen típushoz hoz létre sémát, a következő XML-t használhatja:

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

Az előző kód használatához azonban meg kell adnia a szerelvény nevét is a parancssorban. Írja be a következőket egy parancssorba (az XML-fájl neve GenerateSchemaFromType.xml):

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

Az elemhez csak az alábbi lehetőségek egyikét <generateSchemas> kell megadnia.

Elem Leírás
<összeszerelés> Egy szerelvényt ad meg, amelyből létrehozhatja a sémát.
<típus> Egy szerelvényben található típust ad meg a sémák létrehozásához.
<xml> Megadja a séma létrehozásához szükséges XML-fájlt.
<Xdr> Egy XDR-fájlt ad meg, amely sémát hoz létre.

Kódfájl létrehozásához használja az <generateClasses> elemet. Az alábbi példa egy kódfájlt hoz létre. Vegye figyelembe, hogy két attribútum is látható, amelyek lehetővé teszik a létrehozott fájl programozási nyelvének és névterének beállítását.

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

Az elemhez <generateClasses> megadható beállítások közé tartoznak a következők.

Elem Leírás
<elem> Megadja az .xsd fájl egyik elemét, amely számára kód jön létre.
<schemaImporterExtensions> Az osztályból SchemaImporterExtension származtatott típust ad meg.
<séma> Megadja a kód létrehozásához szükséges XML-sémafájlt. Több XML-sémafájl több <sémaelem> használatával is megadható.

Az alábbi táblázat az elemhez <generateClasses> is használható attribútumokat mutatja be.

Attribútum Leírás
nyelv Megadja a használni kívánt programozási nyelvet. Válasszon a CS (C#, az alapértelmezett), VB (Visual Basic), JS (JScript) vagy VJS (Visual J#) közül. Megadhat egy teljes kvalifikált nevét is egy osztálynak, amely megvalósítja CodeDomProvider.
névtér Megadja a létrehozott kód névterét. A névtérnek meg kell felelnie a CLR-szabványoknak (például nincs szóköz vagy fordított perjel karakter).
beállítások Az alábbi értékek egyike: none, properties (a nyilvános mezők helyett tulajdonságokat hoz létre), ordervagy enableDataBinding (lásd az /order előző XSD-fájlbeállítások szakaszban található és /enableDataBinding kapcsolókat).

Az DataSet elem használatával <generateDataSet> azt is szabályozhatja, hogy hogyan generálódik a kód. A következő XML azt határozza meg, hogy a létrehozott kód DataSet struktúrákat (például a DataTable osztályt) használ egy meghatározott elemhez tartozó Visual Basic-kód létrehozásához. A létrehozott Adathalmaz-struktúrák támogatják a LINQ-lekérdezéseket.

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

Az elemhez <generateDataSet> megadható beállítások közé tartoznak a következők.

Elem Leírás
<séma> Megadja a kód létrehozásához szükséges XML-sémafájlt. Több XML-sémafájl több <sémaelem> használatával is megadható.

Az alábbi táblázat az elemhez <generateDataSet> használható attribútumokat mutatja be.

Attribútum Leírás
LinqDataSet engedélyezése Megadja, hogy a létrehozott adathalmaz lekérdezhető-e a LINQ to DataSet használatával. Az alapértelmezett érték hamis.
nyelv Megadja a használni kívánt programozási nyelvet. Válasszon a CS (C#, az alapértelmezett), VB (Visual Basic), JS (JScript) vagy VJS (Visual J#) közül. Megadhat egy teljes kvalifikált nevét is egy osztálynak, amely megvalósítja CodeDomProvider.
névtér Megadja a létrehozott kód névterét. A névtérnek meg kell felelnie a CLR-szabványoknak (például nincs szóköz vagy fordított perjel karakter).

Vannak attribútumok, amelyeket a legfelső szintű <xsd> elemen állíthat be. Ezek a beállítások a gyermekelemek (<generateSchemas><generateClasses>vagy <generateDataSet>) bármelyikével használhatók. A következő XML-kód egy "IDItems" nevű elem kódját hozza létre a "MyOutputDirectory" kimeneti könyvtárban.

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

Az alábbi táblázat az elemhez <xsd> is használható attribútumokat mutatja be.

Attribútum Leírás
kimenet Annak a könyvtárnak a neve, amelyben a létrehozott séma vagy kódfájl el lesz helyezve.
nologo Letiltja a szalagcímet. Állítsa true vagy falseértékre.
segítség Megjeleníti az eszköz parancsszintaxisát és beállításait. Állítsa true vagy falseértékre.

Példák

Az alábbi parancs létrehoz egy XML-sémát a myFile.xdr alapján, és elmenti az aktuális könyvtárba.

xsd myFile.xdr

Az alábbi parancs létrehoz egy XML-sémát a myFile.xml-ből, és menti azt a megadott könyvtárba.

xsd myFile.xml /outputdir:myOutputDir

Az alábbi parancs létrehoz egy olyan adatkészletet, amely megfelel a C# nyelv megadott sémájának, és az aktuális könyvtárhoz hasonlóan XSDSchemaFile.cs menti azt.

xsd /dataset /language:CS XSDSchemaFile.xsd

A következő parancs XML-sémákat generál a myAssembly.dll szerelvény összes típusához, és schema0.xsd néven menti őket az aktuális könyvtárba.

xsd myAssembly.dll

Lásd még