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é PathIncludeprostř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í), ordernebo 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

Viz také