Nástroje definice schématu XML (Xsd.exe)
Nástroj pro definici schématu XML (Xsd.exe) generuje schématu XML nebo běžné language runtime třídy z XDR, XML a XSD souborů nebo ze třídy v sestavení modulu runtime.
Nástroj definice schématu XML (Xsd.exe) se obvykle nachází v následující cestě:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\
Syntaxe
Spusťte nástroj z příkazového řádku.
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]
Tip
Aby nástroje rozhraní .NET Framework správně fungovaly, je nutné správně nastavit proměnné Path
Include
prostředí a Lib
. Nastavte tyto proměnné prostředí spuštěním SDKVars.bat, který se nachází v <adresáři SDK>\<version>\Bin. SDKVars.bat je třeba spustit v každém příkazovém prostředí.
Argument
Argument | Popis |
---|---|
file.extension | Určuje vstupní soubor převést. Příponu musíte zadat jako jednu z následujících možností: .xdr, .xml, .xsd, .dll nebo .exe. Pokud zadáte soubor schématu XDR (soubory s příponou .xdr), převede Xsd.exe schéma XDR schéma XSD. Výstupní soubor má stejný název jako schéma XDR, ale s příponou XSD. Pokud zadáte soubor XML (soubory s příponou XML), Xsd.exe odvodí schéma z dat v souboru a vytvoří schéma XSD. Výstupní soubor má stejný název jako soubor XML, ale s příponou XSD. Pokud zadáte soubor schématu XML (soubory s příponou XSD), vygeneruje Xsd.exe zdrojový kód pro objekty modulu runtime, které odpovídají schématu XML. Pokud zadáte soubor sestavení modulu runtime (s příponou .exe nebo .dll), vygeneruje Xsd.exe schémata pro jeden nebo více typů v tomto sestavení. Můžete použít /type můžete určit typy, pro které se mají vygenerovat schémata. Výstup schémata jsou s názvem schema0.xsd, schema1.xsd a tak dále. XSD.exe vytváří více schémat pouze v případě, že daných typů zadejte obor názvů pomocí XMLRoot vlastního atributu. |
Obecné možnosti
Možnost | Popis |
---|---|
/h[elp] | Zobrazí syntaxi příkazu a možnosti nástroje. |
/o[utputdir]:directory | Určuje výstupní soubory v adresáři. Tento argument může být pouze jednou. Výchozí je aktuální adresář. |
/? | Zobrazí syntaxi příkazu a možnosti nástroje. |
/p[arameters]:file.xml | Možnosti pro různé režimy operace čtení ze souboru zadaného .xml. Krátká forma je /p: . Další informace najdete v části Poznámky . |
Možnosti souboru XSD
Je třeba zadat pouze jeden z následujících možností pro soubory XSD.
Možnost | Popis |
---|---|
/c[lasses] | Vytvoří třídy, které odpovídají zadaným schématu. Ke čtení dat XML do objektu použijte metodu XmlSerializer.Deserialize . |
/d[ataset] | Vygeneruje třídu odvozenou z DataSet , který odpovídá zadané schéma. Chcete-li číst data XML do odvozené třídy, použijte metodu DataSet.ReadXml . |
Můžete také určit některý z následujících možností pro soubory XSD.
Možnost | Popis |
---|---|
/e[lement]:element | Určuje element ve schématu pro generování kódu pro. Ve výchozím nastavení jsou zadány všechny elementy. Tento parametr lze zadat více než jednou. |
/enableDataBinding | Implementuje INotifyPropertyChanged rozhraní na všechny typy generovaného povolit datové vazby. Krátká forma je /edb . |
/enableLinqDataSet | (Krátký formulář: /eld .) Určuje, že vygenerovanou datovou sadu lze dotazovat pomocí LINQ to DataSet. Tato možnost se používá, pokud je také zadán parametr /dataset. Další informace naleznete v tématu LINQ to DataSet Overview and Querying Typed DataSets. Obecné informace o použití LINQ naleznete v tématu Jazykově integrovaný dotaz (LINQ) – C# nebo LINQ (Language-Integrated Query) – Visual Basic. |
/f[ields] | Generuje pouze pole. Ve výchozím nastavení se generují vlastnosti se záložními poli . |
/l[anguage]:language | Určuje programovací jazyk, který chcete použít. Vybrat z CS (C#, který je ve výchozím nastavení), VB (Visual Basic), JS (JScript), nebo VJS (Visual J#). Můžete také zadat plně kvalifikovaný název třídy implementujícíSystem.CodeDom.Compiler.CodeDomProvider |
/n[amespace]:namespace | Určuje runtime obor názvů pro generovaný typy. Výchozí obor názvů je Schemas . |
/nologo | Potlačí hlavičky. |
/Objednávky | Generuje explicitní pořadí identifikátory pro všechny členy částic. |
/o[ut]:directoryName | Určuje výstupní adresář pro soubory v. Výchozí je aktuální adresář. |
/u[ri]:uri | Určuje identifikátor URI pro elementy ve schématu pro generování kódu pro. Tento identifikátor URI, pokud je k dispozici, se vztahuje na všechny prvky určené s /element možnost. |
Knihovna DLL a EXE soubor možnosti
Možnost | Popis |
---|---|
/t[ype]:typename | Určuje název typu vytvořit schéma pro. Můžete zadat více argumentů typu. Pokud název typu neurčí obor názvů, Xsd.exe odpovídá všem typům v sestavení se zadaným typem. Pokud název typu určuje obor názvů, bude se shodovat pouze s tímto typem. Pokud název typu končí znakem hvězdičky (*), nástroj odpovídá všem typům, které začínají řetězcem předcházejícím znaku *. V případě vynechání /type možnost, Xsd.exe generuje schémata pro všechny typy v sestavení. |
Poznámky
V následující tabulce jsou uvedeny operace, že provede Xsd.exe.
Operation | Popis |
---|---|
XDR k XSD | Generuje schématu XML ze souboru XML sníženým Data schématu. XDR je ve formátu early založený na jazyce XML schématu. |
XML na XSD | Generuje schématu XML ze souboru XML. |
XSD sadu dat | Generuje modul common language runtime DataSet třídy ze souboru schématu XSD. Generované třídy poskytují bohatý objektový model pro běžné data XML. |
XSD do tříd | Generuje runtime třídy ze souboru schématu XSD. Generované třídy lze použít ve spojení s System.Xml.Serialization.XmlSerializer ke čtení a zápisu kód XML, který následuje schéma. |
Třídy, které mají XSD | Generuje schématu XML z typ nebo typy v sestavení soubor za běhu. Vygenerované schéma definuje formát XML, který XmlSerializerpoužívá . |
XSD.exe umožňuje pracovat s schémat XML, které následují definici schématu XML (XSD) jazyk navrhovaná World Wide Web Consortium (W3C). Další informace o návrhu definice schématu XML nebo standardu XML naleznete v tématu https://w3.org.
Nastavení možností pomocí souboru XML
Pomocí /parameters
přepínače můžete zadat jeden soubor XML, který nastavuje různé možnosti. Možnosti můžete nastavit, závisí na tom, jak používáte nástroj XSD.exe. Vybrat možnost generování schémat, generování kódu soubory nebo soubory s kódem, mezi které patří generování DataSet
funkce. Můžete například nastavit <assembly>
element na název spustitelného souboru (.exe) nebo souboru typu knihovna (DLL) při generování schématu, ale ne v případě, že generování souboru kódu. Následující kód XML ukazuje, jak lze použít <generateSchemas>
element se zadaným spustitelného souboru:
<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>
Pokud předchozí xml je obsažen v souboru s názvem GenerateSchemas.xml, použijte /parameters
přepínač zadáním následujícího příkazu na příkazovém řádku a stisknutím klávesy Enter:
xsd /p:GenerateSchemas.xml
Na druhé straně Pokud jsou generování schéma pro jeden typ nalezen v sestavení, můžete použít následující kód XML:
<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<type>IDItems</type>
</generateSchemas>
</xsd>
Ale při použití předcházející kódu, je třeba zadat také název sestavení na příkazovém řádku. Do příkazového řádku zadejte následující příkaz (předpokládá se, že se soubor XML jmenuje GenerateSchemaFromType.xml):
xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe
Je třeba zadat pouze jeden z následujících možností <generateSchemas>
elementu.
Element (Prvek) | Popis |
---|---|
<Sestavení> | Určuje sestavení, které chcete vytvořit schéma z. |
<type> | Určuje typ v sestavení, které chcete vytvořit schéma pro nalezen. |
<xml> | Určuje soubor XML pro schéma pro generování. |
<Xdr> | Určuje soubor XDR ke generování schéma pro. |
Chcete-li generovat soubor s kódem, použijte <generateClasses>
elementu. Následující příklad generuje soubor kódu. Všimněte si, že jsou také zobrazeny dva atributy, které umožňují nastavit programovací jazyk a obor názvů generovaného souboru.
<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 -->
Možnosti pro můžete nastavit <generateClasses>
element patří následující.
Element (Prvek) | Popis |
---|---|
<Prvek> | Určuje element v souboru XSD pro generování kódu pro. |
<schemaImporterExtensions> | Určuje typu odvozeného z SchemaImporterExtension třídy. |
<Schématu> | Určuje soubor schématu XML pro generování kódu pro. Pomocí více elementů schématu lze zadat více <souborů schématu> XML. |
V následující tabulce jsou uvedeny atributy, které lze také použít s <generateClasses>
elementu.
Atribut | Popis |
---|---|
jazyk | Určuje programovací jazyk, který chcete použít. Vybrat z CS (C#, výchozí nastavení), VB (Visual Basic), JS (JScript), nebo VJS (Visual J#). Můžete také zadat plně kvalifikovaný název pro třídu, která implementuje CodeDomProvider. |
namespace | Určuje obor názvů pro generovaný kód. Obor názvů musí odpovídat CLR standardů (například bez mezer nebo zpětné lomítko znaků). |
options | Jedna z následujících hodnot: none , properties (generuje vlastnosti místo veřejných polí), order nebo enableDataBinding (viz /order a /enableDataBinding přepínače v předchozí části Možnosti souboru XSD. |
Můžete také určit, jak DataSet
kód je generována pomocí <generateDataSet>
elementu. Následující kód XML určuje, že vygenerovaný kód používá DataSet
struktury (například DataTable třídy) k vytvoření kódu jazyka Visual Basic pro zadaný prvek. Vygenerovaný struktury datová sada bude podporovat LINQ dotazů.
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
</generateDataSet>
</xsd>
Možnosti pro můžete nastavit <generateDataSet>
element patří následující.
Element (Prvek) | Popis |
---|---|
<Schématu> | Určuje soubor schématu XML pro generování kódu pro. Pomocí více elementů schématu lze zadat více <souborů schématu> XML. |
V následující tabulce jsou uvedeny atributy, které lze používat s <generateDataSet>
elementu.
Atribut | Popis |
---|---|
enableLinqDataSet | Určuje, že generované datová sada může být dotázán proti pomocí jazyka LINQ k datové. Výchozí hodnota je false. |
jazyk | Určuje programovací jazyk, který chcete použít. Vybrat z CS (C#, výchozí nastavení), VB (Visual Basic), JS (JScript), nebo VJS (Visual J#). Můžete také zadat plně kvalifikovaný název pro třídu, která implementuje CodeDomProvider. |
namespace | Určuje obor názvů pro generovaný kód. Obor názvů musí odpovídat CLR standardů (například bez mezer nebo zpětné lomítko znaků). |
Atributy, které lze nastavit na nejvyšší úrovni <xsd>
elementu. Tyto možnosti lze používat s některou z podřízených prvků (<generateSchemas>
, <generateClasses>
nebo <generateDataSet>
). Následující kód XML generuje kód pro element s názvem "IDItems" v adresáři výstupu s názvem "MyOutputDirectory".
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
<element>IDItems</element>
</generateClasses>
</xsd>
V následující tabulce jsou uvedeny atributy, které lze také použít s <xsd>
elementu.
Atribut | Popis |
---|---|
output | Název adresáře, kde budou umístěny vygenerovaný soubor schématu nebo kódu. |
nologo | Potlačí hlavičky. Nastavte na true nebo false . |
help | Zobrazí syntaxi příkazu a možnosti nástroje. Nastavte na true nebo false . |
Příklady
Následující příkaz generuje schématu XML z myFile.xdr
a uloží jej do aktuálního adresáře.
xsd myFile.xdr
Následující příkaz generuje schématu XML z myFile.xml
a uloží jej do zadaného adresáře.
xsd myFile.xml /outputdir:myOutputDir
Následující příkaz generuje sadu dat, která odpovídá určenému schématu v jazyce C# a uloží jej jako XSDSchemaFile.cs
v aktuálním adresáři.
xsd /dataset /language:CS XSDSchemaFile.xsd
Následující příkaz generuje schémat XML pro všechny typy v sestavení myAssembly.dll
a ukládá je jako schema0.xsd
v aktuálním adresáři.
xsd myAssembly.dll