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ć Path
zmienne środowiskowe , Include
i 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), order lub 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