Bagikan melalui


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