Narzędzie definicji schematu XML (Xsd.exe)

Narzędzie definicji schematu XML (Xsd.exe) generuje schemat XML lub wspólnej klasy środowiska wykonawczego języka z PLików XDR, XML i XSD lub klasy w zestawie czasu wykonywania.

Narzędzie definicji schematu XML (Xsd.exe) zwykle można znaleźć w następującej ścieżce:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\

Składnia

Uruchom narzędzie z wiersza polecenia.

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]

Napiwek

Aby narzędzia .NET Framework działały prawidłowo, należy poprawnie ustawić Pathzmienne środowiskowe , Includei Lib . Ustaw te zmienne środowiskowe, uruchamiając SDKVars.bat, która znajduje się w <katalogu SDK>\<version>\Bin. SDKVars.bat muszą zostać wykonane w każdym powłoki poleceń.

Argument

Argument opis
file.extension Określa PLik wejściowy można przekonwertować. Należy określić rozszerzenie jako jedno z następujących: .xdr, .xml, xsd, .dll lub .exe.

Jeśli określono PLik schematu XDR (rozszerzenie .xdr), Xsd.exe konwertuje schematu XDR schematu XSD. PLik wyjściowy ma taką samą nazwę schematu XDR, ale z rozszerzeniem xsd.

Jeśli określono PLik XML (rozszerzenie .xml), Xsd.exe wymaga schematu z danych w PLiku i tworzy schematu XSD. PLik wyjściowy ma taką samą nazwę jak PLik XML, ale z rozszerzeniem xsd.

Jeśli określono PLik schematu XML (XSD rozszerzenia), Xsd.exe generuje kod źródłowy środowiska wykonawczego obiektów, które odpowiadają schematu XML.

Jeśli określono PLik zestawu runtime (z rozszerzeniem .exe lub .dll), Xsd.exe generuje schematów dla co najmniej jeden typ w tym zestawie. Można użyć /type opcję, aby określić typy, dla których mają być generowanie schematów. Schematy dane wyjściowe są nazywane schema0.xsd, schema1.xsd i tak dalej. Xsd.exe tworzy wiele schematów tylko wtedy, gdy podane typy określają przestrzeń nazw przy użyciu atrybutu niestandardowego XMLRoot .

Opcje ogólne

Opcja Opis
/h[elp] Wyświetla składnię polecenia i opcje narzędzia.
/o[utputdir]:directory Określa katalog danych dla PLików danych wyjściowych. Ten argument może wystąpić tylko raz. Domyślnie jest to katalog bieżący.
/? Wyświetla składnię polecenia i opcje narzędzia.
/p[arameters]:file.xml Opcje dla różnych trybach operacji odczytu z PLiku .xml określony. Krótka forma to /p:. Aby uzyskać więcej informacji, zobacz sekcję Uwagi .

Opcje PLiku XSD

Należy określić tylko jedną z poniższych opcji dotyczących XSD PLików.

Opcja Opis
/c[lasses] Generuje klasy, które odpowiadają określony schemat. Aby odczytać dane XML do obiektu, użyj XmlSerializer.Deserialize metody .
/d[ataset] Generuje klasę pochodną DataSet , który odpowiada określony schemat. Aby odczytać dane XML do klasy pochodnej, użyj DataSet.ReadXml metody .

Można również określić jedną z poniższych opcji dotyczących XSD PLików.

Opcja Opis
/e[lement]:, element Określa schemat do generowania kodu dla elementu. Domyślnie wszystkie elementy są wpisane. Tego argumentu można określić więcej niż raz.
/enableDataBinding Implementuje INotifyPropertyChanged interfejs dla wszystkich wygenerowanych typów w celu włączenia powiązania danych. Krótka forma to /edb.
/enableLinqDataSet (Krótka forma: /eld.) Określa, że wygenerowany zestaw danych może być odpytywane przy użyciu linQ to DataSet. Ta opcja jest stosowana, gdy określona jest również opcja /dataset. Aby uzyskać więcej informacji, zobacz LINQ to DataSet Overview (Omówienie linQ to DataSet) i Querying Typed DataSets (Zestawy danych typu zapytań). Aby uzyskać ogólne informacje na temat korzystania z LINQ, zobacz Zapytanie zintegrowane z językiem (LINQ) — C# lub Zapytanie zintegrowane z językiem (LINQ) — Visual Basic.
/f[dzierżące] Generuje tylko pola. Domyślnie są generowane właściwości z polami zapasowymi.
/l[anguage]:language Określa język programowania. Wybierz z CS (C#, który jest domyślnie), VB (Visual Basic), JS (JScript) lub VJS (Visual J#). Można również określić w pełni kwalifikowaną nazwę implementowania klasy System.CodeDom.Compiler.CodeDomProvider
/n[amespace]:przestrzeń nazw Określa przestrzeń nazw czasu wykonywania wygenerowany typów. Domyślny obszar nazw jest Schemas.
/nologo Pomija transparentu.
/Zamówienia Generuje jawne identyfikatory kolejności dla wszystkich składowych cząstek.
/o[ut]:directoryName Określa katalog wyjściowy, w który mają być przechowywane pliki. Domyślnie jest to katalog bieżący.
/u[ri]:uri Określa identyfikator URI dla elementów w schemacie do generowania kodu. Ten identyfikator URI, jeśli istnieje, ma zastosowanie do wszystkich elementów określonych za pomocą /element opcji .

Biblioteka DLL i opcje PLiku EXE

Opcja Opis
/t[ype]:typename Określa nazwę typu można utworzyć schemat. Można określić wiele argumentów typu. Jeśli typename nie określa przestrzeni nazw, Xsd.exe pasuje do wszystkich typów w zestawie z określonym typem. Jeśli typename określa przestrzeń nazw, tylko ten typ jest zgodny. Jeśli typename kończy się znakiem gwiazdki (*), narzędzie pasuje do wszystkich typów rozpoczynających się ciągiem poprzedzającym znak *. W przypadku pominięcia /type opcji Xsd.exe generuje schematów dla wszystkich typów w zestawie.

Uwagi

W poniższej tabeli przedstawiono operacje, że Xsd.exe wykonuje.

Działanie opis
XDR do XSD Generuje schematu XML na podstawie PLiku schematu obniżonej danych XML. XDR jest wczesne format schematu oparty na formacie XML.
XML do XSD Generuje schematu XML z PLiku XML.
XSD do zestawu danych Generuje aparatu PLików wykonywalnych języka wspólnego DataSet klasy z PLiku schematu XSD. Wygenerowany klasy zapewnić model obiektu sformatowanego regularnych danych XML.
XSD do klasy Generuje klasy środowiska wykonawczego na podstawie PLiku schematu XSD. Wygenerowany klasy mogą być używane w połączeniu z System.Xml.Serialization.XmlSerializer do odczytu i zapisu kod XML, który jest zgodna z schemat.
Klasy do XSD Generuje schematu XML na podstawie typ lub typy w PLiku zestawu czasu wykonywania. Wygenerowany schemat definiuje format XML używany przez XmlSerializerprogram .

XSD.exe służy tylko do modyfikowania schematów XML, które podlegają języka definicji schematu XML (XSD) proponowanych przez konsorcjum World Wide Web (W3C). Aby uzyskać więcej informacji na temat propozycji definicji schematu XML lub standardu XML, zobacz https://w3.org.

Ustawianie opcji z PLiku XML

Za pomocą przełącznika /parameters można określić pojedynczy plik XML, który ustawia różne opcje. Opcje, które można ustawić zależą od sposobu korzystania z narzędzia XSD.exe. Można także wybrać opcję generowania schematy, generowanie kodu PLików lub generowania kodu PLiki, które zawierają DataSet funkcji. Można na przykład ustawić <assembly> element na nazwę pliku wykonywalnego (.exe) lub pliku biblioteki typów (.dll) podczas generowania schematu, ale nie podczas generowania pliku kodu. Następujące kodu XML przedstawiono sposoby używania <generateSchemas> element z określonego PLiku wykonywalnego:

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

Jeśli powyższy kod XML znajduje się w pliku o nazwie GenerateSchemas.xml, użyj przełącznika /parameters , wpisując następujące polecenie w wierszu polecenia i naciskając klawisz Enter:

 xsd /p:GenerateSchemas.xml

Z drugiej strony jest generowany schematu dla pojedynczego typu znaleziony w zestawie, można użyć następującego kodu XML:

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

Jednak aby użyć poprzedniego kodu, należy również podać nazwę zestawu w wierszu polecenia. Wprowadź następujące polecenie w wierszu polecenia (wstępnie plik XML ma nazwę GenerateSchemaFromType.xml):

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

Należy określić tylko jedną z poniższych opcji dotyczących <generateSchemas> elementu.

Element opis
<Zestawu> Określa generowanie schematu z zestawu.
<type> Określa typ odnaleźć w zestawie do generowania schemat.
<xml> Określa PLik XML do generowania schemat.
<Xdr> Określa PLik XDR do generowania schemat.

Aby wygenerować PLik kodu, należy użyć <generateClasses> elementu. Poniższy przykład generuje plik kodu. Należy zauważyć, że dwa atrybuty są także wyświetlane, która pozwala na ustawienie języka programowania i przestrzeni nazw w wygenerowanym PLiku.

<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żna ustawić dla opcji <generateClasses> obejmują elementu.

Element opis
<Element> Określa PLik XSD do generowania kodu dla elementu.
<schemaImporterExtensions> Określa typ pochodzący od SchemaImporterExtension klasy.
<Schematu> Określa PLik schematu XML do generowania kodu. Wiele plików schematu XML można określić przy użyciu wielu <elementów schematu> .

Poniższa tabela zawiera atrybuty, które umożliwia także z <generateClasses> elementu.

Atrybut opis
język Określa język programowania. Wybierz z CS (C#, wartość domyślna), VB (Visual Basic), JS (JScript) lub VJS (Visual J#). Można również określić w pełni kwalifikowaną nazwę klasy, która implementuje CodeDomProviderelement .
namespace Określa przestrzeń nazw dla wygenerowanego kodu. Przestrzeń nazw musi być zgodna ze standardami CLR (na przykład bez spacji ani znaków ukośnika odwrotnego).
options Jedna z następujących wartości: none, properties (generuje właściwości zamiast pól publicznych), orderlub enableDataBinding (zobacz /order przełączniki i /enableDataBinding w poprzedniej sekcji Opcje pliku XSD.

Można także kontrolować sposób DataSet kod został wygenerowany za pomocą <generateDataSet> elementu. Poniższy kod XML określa, że wygenerowany kod używa DataSet struktur (takich jak DataTable klasa) do utworzenia kodu Języka Visual Basic dla określonego elementu. Wygenerowany struktur zestawu danych będzie obsługiwać zapytań LINQ.

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

Można ustawić dla opcji <generateDataSet> obejmują elementu.

Element opis
<Schematu> Określa PLik schematu XML do generowania kodu. Wiele plików schematu XML można określić przy użyciu wielu <elementów schematu> .

Poniższa tabela zawiera atrybuty, które mogą być używane z <generateDataSet> elementu.

Atrybut opis
enableLinqDataSet Określa, że wygenerowanego zestawu danych mogą być wyszukiwane względem przy użyciu LINQ do zestawu danych. Wartość domyślna to false.
język Określa język programowania. Wybierz z CS (C#, wartość domyślna), VB (Visual Basic), JS (JScript) lub VJS (Visual J#). Można również określić w pełni kwalifikowaną nazwę klasy, która implementuje CodeDomProviderelement .
namespace Określa przestrzeń nazw dla wygenerowanego kodu. Przestrzeń nazw musi być zgodna ze standardami CLR (na przykład bez spacji ani znaków ukośnika odwrotnego).

Atrybuty, które mogą być ustawione na najwyższym poziomie są <xsd> elementu. Te opcje można użyć z żadnego z elementów podrzędnych (<generateSchemas>, <generateClasses> lub <generateDataSet>). Poniższy kod XML generuje kod dla elementu o nazwie "IDItems" w katalogu wyjściowego o nazwie "MyOutputDirectory".

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

Poniższa tabela zawiera atrybuty, które umożliwia także z <xsd> elementu.

Atrybut opis
output Nazwa katalogu, w którym zostanie umieszczony wygenerowany schemat lub plik kodu.
nologo Pomija transparentu. Ustaw true lub false.
pomoc Wyświetla składnię polecenia i opcje narzędzia. Ustaw true lub false.

Przykłady

Następujące polecenie generuje schematu XML z myFile.xdr i zapisuje go w bieżącym katalogu.

xsd myFile.xdr

Następujące polecenie generuje schematu XML z myFile.xml i zapisuje go w określonym katalogu.

xsd myFile.xml /outputdir:myOutputDir

Następujące polecenie generuje zestaw danych, który odpowiada określony schemat w języku C# i zapisuje je XSDSchemaFile.cs w bieżącym katalogu.

xsd /dataset /language:CS XSDSchemaFile.xsd

Następujące polecenie generuje schematów XML dla wszystkich typów w zestawie myAssembly.dll i zapisuje je jako schema0.xsd w bieżącym katalogu.

xsd myAssembly.dll

Zobacz też