Alat Definisi Skema XML (Xsd.exe)
Alat Definisi Skema XML (Xsd.exe) membuat skema XML atau kelas runtime bahasa umum dari file XDR, XML, dan XSD, atau dari kelas dalam rakitan runtime.
Alat Definisi Skema XML (Xsd.exe) biasanya dapat ditemukan di jalur berikut:
C:\Program Files (x86)\Microsoft SDKs\Windows\{version}\bin\NETFX {version} Tools\
Sintaks
Jalankan alat dari baris perintah.
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
Agar alat .NET Framework berfungsi dengan baik, Anda harus mengatur variabel lingkungan Path
, Include
, dan Lib
dengan benar. Atur variabel lingkungan ini dengan menjalankan SDKVars.bat, yang terletak di direktori <SDK>\<version>\Bin. SDKVars.bat harus dijalankan di setiap shell perintah.
Argumen
Argumen | Deskripsi |
---|---|
file.extension | Menentukan file input yang akan dikonversi. Anda harus menentukan ekstensi sebagai salah satu dari yang berikut: .xdr, .xml, .xsd, .dll, atau .exe. Jika Anda menentukan file skema XDR (ekstensi .xdr), Xsd.exe mengonversi skema XDR menjadi skema XSD. File output memiliki nama yang sama dengan skema XDR, tetapi dengan ekstensi .xsd. Jika Anda menentukan file XML (ekstensi .xml), Xsd.exe menyimpulkan skema dari data dalam file dan menghasilkan skema XSD. File output memiliki nama yang sama dengan file XML, tetapi dengan ekstensi .xsd. Jika Anda menentukan file skema XML (ekstensi .xsd), Xsd.exe membuat kode sumber untuk objek runtime yang sesuai dengan skema XML. Jika Anda menentukan file rakitan runtime (.exe atau ekstensi .dll), Xsd.exe membuat skema untuk satu atau beberapa jenis dalam rakitan tersebut. Anda dapat menggunakan opsi /type untuk menentukan jenis yang akan dibuat skemanya. Skema output diberi nama schema0.xsd, schema1.xsd, dan sebagainya. Xsd.exe hanya menghasilkan beberapa skema jika jenis yang diberikan menentukan namespace layanan menggunakan atribut kustom XMLRoot . |
Opsi Umum
Opsi | Deskripsi |
---|---|
/h[elp] | Menampilkan sintaks perintah dan opsi untuk alat ini. |
/o[utputdir]:directori | Menentukan direktori untuk file output. Argumen ini hanya dapat muncul sekali. Defaultnya adalah direktori saat ini. |
/? | Menampilkan sintaks perintah dan opsi untuk alat ini. |
/p[arameters]:file.xml | Opsi baca untuk berbagai mode operasi dari file .xml yang ditentukan. Bentuk pendeknya adalah /p: . Untuk informasi selengkapnya, lihat bagian Keterangan. |
Opsi File XSD
Anda harus menentukan hanya satu opsi berikut untuk file .xsd.
Opsi | Deskripsi |
---|---|
/c[lasses] | Membuat kelas yang sesuai dengan skema yang ditentukan. Untuk membaca data XML ke dalam objek, gunakan metode XmlSerializer.Deserialize. |
/d[ataset] | Membuat kelas yang berasal dari DataSet yang sesuai dengan skema yang ditentukan. Untuk membaca data XML ke dalam kelas turunan, gunakan metode DataSet.ReadXml. |
Anda juga dapat menentukan salah satu opsi berikut untuk file .xsd.
Opsi | Deskripsi |
---|---|
/e[lement]:element | Menentukan elemen dalam skema yang dibuat kodenya. Secara default semua elemen berjenis. Anda dapat menentukan argumen ini lebih dari sekali. |
/enableDataBinding | Mengimplementasikan antarmuka INotifyPropertyChanged pada semua jenis yang dibuat untuk mengaktifkan pengikatan data. Bentuk pendeknya adalah /edb . |
/enableLinqDataSet | (Bentuk pendek: /eld .) Menentukan bahwa Himpunan Data yang dibuat dapat dikueri terhadap penggunaan LINQ ke Himpunan Data. Opsi ini digunakan saat opsi /himpunan data juga ditentukan. Untuk informasi selengkapnya, lihat LINQ ke Ringkasan Himpunan Data dan Mengkueri Himpunan Data Berjenis. Untuk informasi umum tentang menggunakan LINQ, lihat Kueri Terintegrasi Bahasa (LINQ) - C# atau Kueri Terintegrasi Bahasa (LINQ) - Visual Basic. |
/f[ields] | Membuat bidang saja. Secara default, properti dengan bidang dukungan akan dibuat. |
/l[anguage]:language | Menentukan bahasa pemrograman yang akan digunakan. Pilih dari CS (C#, yang merupakan default), VB (Visual Basic), JS (Jscript), atau VJS (Visual J#). Anda juga dapat menentukan nama yang sepenuhnya memenuhi syarat untuk kelas yang mengimplementasikan System.CodeDom.Compiler.CodeDomProvider |
/n[amespace]:namespace | Menentukan namespace layanan runtime untuk jenis yang dibuat. Namespace layanan default adalah Schemas . |
/nologo | Menyembunyikan spanduk. |
/order | Membuat pengidentifikasi urutan eksplisit pada semua anggota partikel. |
/o[ut]:directoryName | Menentukan direktori output untuk meletakkan file. Defaultnya adalah direktori saat ini. |
/u[ri]:uri | Menentukan URI untuk elemen dalam skema yang dibuat kodenya. URI ini, jika ada, berlaku untuk semua elemen yang ditentukan dengan opsi /element . |
Opsi File DLL dan EXE
Opsi | Deskripsi |
---|---|
/t[ype]:typename | Menentukan nama jenis untuk membuat skema. Anda dapat menentukan beberapa argumen jenis. Jika typename tidak menentukan namespace layanan, Xsd.exe cocok dengan semua jenis dalam rakitan dengan jenis yang ditentukan. Jika typename menentukan namespace layanan, hanya jenis tersebut yang cocok. Jika typename diakhiri dengan karakter tanda bintang (*), alat ini cocok dengan semua jenis yang dimulai dengan string yang diawali *. Jika Anda menghilangkan opsi /type , Xsd.exe membuat skema untuk semua jenis dalam rakitan. |
Keterangan
Tabel berikut menunjukkan operasi yang dilakukan Xsd.exe.
Operasi | Deskripsi |
---|---|
XDR ke XSD | Membuat skema XML dari file skema XML-Data-Reduced. XDR adalah format skema berbasis XML awal. |
XML ke XSD | Membuat skema XML dari file XML. |
XSD ke Himpunan Data | Membuat kelas DataSet runtime bahasa umum dari file skema XSD. Kelas yang dibuat menyediakan model objek yang kaya untuk data XML biasa. |
XSD ke Kelas | Membuat kelas runtime dari file skema XSD. Kelas yang dibuat dapat digunakan bersama dengan System.Xml.Serialization.XmlSerializer untuk membaca dan menulis kode XML yang mengikuti skema. |
Kelas ke XSD | Membuat skema XML dari jenis atau jenis dalam file rakitan runtime. Skema yang dibuat menentukan format XML yang digunakan oleh XmlSerializer. |
Xsd.exe hanya memungkinkan Anda untuk memanipulasi skema XML yang mengikuti bahasa Definisi Skema XML (XSD) yang diusulkan oleh World Wide Web Consortium (W3C). Untuk informasi selengkapnya tentang proposal Definisi Skema XML atau standar XML, lihat https://w3.org.
Opsi Pengaturan dengan File XML
Dengan menggunakan tombol /parameters
, Anda dapat menentukan satu file XML yang mengatur berbagai opsi. Opsi yang dapat Anda atur bergantung pada cara Anda menggunakan alat XSD.exe. Pilihannya termasuk membuat skema, membuat file kode, atau membuat file kode yang menyertakan fitur DataSet
. Misalnya, Anda dapat mengatur elemen <assembly>
ke nama file yang dapat dieksekusi (.exe) atau pustaka jenis (.dll) saat membuat skema, tetapi tidak saat membuat file kode. XML berikut ini memperlihatkan cara menggunakan elemen <generateSchemas>
dengan yang dapat dieksekusi tertentu:
<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>
Jika XML sebelumnya berada dalam file bernama GenerateSchemas.xml, gunakan tombol /parameters
dengan mengetik berikut ini pada perintah dan menekan Enter:
xsd /p:GenerateSchemas.xml
Di sisi lain, jika Anda membuat skema untuk satu jenis yang ditemukan dalam rakitan, Anda dapat menggunakan XML berikut:
<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
<type>IDItems</type>
</generateSchemas>
</xsd>
Tetapi untuk menggunakan kode sebelumnya, Anda juga harus memberikan nama rakitan di perintah. Masukkan yang berikut pada perintah (menganggap file XML diberi nama GenerateSchemaFromType.xml):
xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe
Anda harus menentukan hanya satu opsi berikut untuk elemen <generateSchemas>
.
Elemen | Deskripsi |
---|---|
<rakitan> | Menentukan rakitan tempat membuat skema. |
<jenis> | Menentukan jenis yang ditemukan dalam rakitan yang dibuat skemanya. |
<xml> | Menentukan file XML yang dibuat skemanya. |
<xdr> | Menentukan file XDR yang dibuat skemanya. |
Untuk membuat file kode, gunakan elemen <generateClasses>
. Contoh berikut akan membuat file kode. Perhatikan bahwa dua atribut juga ditampilkan yang memungkinkan Anda mengatur bahasa pemrograman dan namespace layanan file yang dibuat.
<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 -->
Opsi yang bisa Anda atur untuk elemen <generateClasses>
meliputi yang berikut ini.
Elemen | Deskripsi |
---|---|
<elemen> | Menentukan elemen dalam file .xsd yang dibuat kodenya. |
<schemaImporterExtensions> | Menentukan jenis yang berasal dari kelas SchemaImporterExtension. |
<skema> | Menentukan file Skema XML yang dibuat kodenya. Beberapa file Skema XML dapat ditentukan menggunakan beberapa elemen <skema>. |
Tabel berikut menunjukkan atribut yang juga dapat digunakan dengan elemen <generateClasses>
.
Atribut | Deskripsi |
---|---|
bahasa | Menentukan bahasa pemrograman yang akan digunakan. Pilih dari CS (C#, default), VB (Visual Basic), JS (Jscript), atau VJS (Visual J#). Anda juga dapat menentukan nama yang sepenuhnya memenuhi syarat untuk kelas yang mengimplementasikan CodeDomProvider. |
namespace | Menentukan namespace layanan untuk kode yang dibuat. Namespace layanan harus sesuai dengan standar CLR (misalnya, tidak ada spasi atau karakter backslash). |
opsi | Salah satu nilai berikut: none , properties (menghasilkan properti, dan bukan bidang publik), order , atau enableDataBinding (lihat tombol /order dan /enableDataBinding di bagian Opsi File XSD sebelumnya. |
Anda juga dapat mengontrol bagaimana kode DataSet
dibuat dengan menggunakan elemen <generateDataSet>
. XML berikut menentukan bahwa kode yang dibuat menggunakan struktur DataSet
(seperti kelas DataTable) untuk membuat kode Visual Basic untuk elemen tertentu. Struktur Himpunan Data yang dibuat akan mendukung kueri LINQ.
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>
</generateDataSet>
</xsd>
Opsi yang bisa Anda atur untuk elemen <generateDataSet>
meliputi yang berikut ini.
Elemen | Deskripsi |
---|---|
<skema> | Menentukan file Skema XML yang dibuat kodenya. Beberapa file Skema XML dapat ditentukan menggunakan beberapa elemen <skema>. |
Tabel berikut menunjukkan atribut yang dapat digunakan dengan elemen <generateDataSet>
.
Atribut | Deskripsi |
---|---|
enableLinqDataSet | Menentukan bahwa Himpunan Data yang dihasilkan dapat dikueri untuk tidak menggunakan LINQ ke Himpunan Data. Nilai defaultnya adalah false. |
bahasa | Menentukan bahasa pemrograman yang akan digunakan. Pilih dari CS (C#, default), VB (Visual Basic), JS (Jscript), atau VJS (Visual J#). Anda juga dapat menentukan nama yang sepenuhnya memenuhi syarat untuk kelas yang mengimplementasikan CodeDomProvider. |
namespace | Menentukan namespace layanan untuk kode yang dibuat. Namespace layanan harus sesuai dengan standar CLR (misalnya, tidak ada spasi atau karakter backslash). |
Ada atribut yang dapat Anda atur di elemen <xsd>
tingkat atas. Opsi ini dapat digunakan dengan salah satu elemen turunan (<generateSchemas>
, <generateClasses>
atau <generateDataSet>
). Kode XML berikut membuat kode untuk elemen bernama "IDItems" di direktori output bernama "MyOutputDirectory".
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
<element>IDItems</element>
</generateClasses>
</xsd>
Tabel berikut menunjukkan atribut yang juga dapat digunakan dengan elemen <xsd>
.
Atribut | Deskripsi |
---|---|
output | Nama direktori tempat skema atau file kode yang dibuat akan ditempatkan. |
nologo | Menyembunyikan spanduk. Atur ke true atau false . |
bantuan | Menampilkan sintaks perintah dan opsi untuk alat ini. Atur ke true atau false . |
Contoh
Perintah berikut akan menghasilkan skema XML dari myFile.xdr
dan menyimpannya ke direktori saat ini.
xsd myFile.xdr
Perintah berikut akan menghasilkan skema XML dari myFile.xml
dan menyimpannya ke direktori yang ditentukan.
xsd myFile.xml /outputdir:myOutputDir
Perintah berikut akan menghasilkan himpunan data yang sesuai dengan skema yang ditentukan dalam bahasa C# dan menyimpannya sebagai XSDSchemaFile.cs
di direktori saat ini.
xsd /dataset /language:CS XSDSchemaFile.xsd
Perintah berikut akan menghasilkan skema XML untuk semua jenis dalam rakitan myAssembly.dll
dan menyimpannya seperti schema0.xsd
di direktori saat ini.
xsd myAssembly.dll
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk