Mengekspor Skema dari Kelas
Untuk menghasilkan skema bahasa definisi skema XML (XSD) dari kelas yang digunakan dalam model kontrak data, gunakan kelas XsdDataContractExporter. Topik ini menjelaskan proses pembuatan skema.
Proses Ekspor
Proses ekspor skema dimulai dengan salah satu atau beberapa jenis dan menghasilkan XmlSchemaSet yang mendeskripsikan proyeksi XML jenis ini.
XmlSchemaSet
adalah bagian dari NET Frameworkâs Schema Object Model (SOM) yang mewakili sekumpulan dokumen Skema XSD. Untuk membuat dokumen XSD dari XmlSchemaSet
, gunakan kumpulan skema dari properti Schemas dari kelas XmlSchemaSet
. Kemudian serialisasikan setiap objek XmlSchema menggunakan XmlSerializer.
Untuk mengekspor skema
Buat instans XsdDataContractExporter.
Opsional. Berikan XmlSchemaSet di konstruktor. Dalam hal ini, skema yang dihasilkan selama ekspor skema ditambahkan ke instans XmlSchemaSet ini alih-alih dimulai dengan XmlSchemaSet kosong.
Opsional. Panggil salah satu metode CanExport. Metode menentukan apakah jenis yang ditentukan dapat diekspor. Metode ini memiliki kelebihan yang sama dengan metode
Export
pada langkah berikutnya.Panggil salah satu metode Export. Ada tiga kelebihan beban yang mengambil Type, List<T> dari objek
Type
, atau List<T> dari objek Assembly. Dalam kasus terakhir, semua jenis di semua rakitan yang diberikan diekspor.Beberapa panggilan ke metode
Export
menghasilkan beberapa item yang ditambahkan keXmlSchemaSet
yang sama. Jenis tidak dihasilkan ke dalamXmlSchemaSet
jika sudah ada di sana. Oleh karena itu, memanggilExport
beberapa kali padaXsdDataContractExporter
yang sama lebih disukai daripada membuat beberapa instans kelasXsdDataContractExporter
. Ini menghindari jenis skema duplikat yang dihasilkan.Catatan
Jika ada kegagalan selama ekspor,
XmlSchemaSet
akan berada dalam keadaan yang tidak dapat diprediksi.Akses XmlSchemaSet melalui properti Schemas.
Opsi Ekspor
Anda dapat mengatur properti Options dari XsdDataContractExporter ke instans kelas ExportOptions untuk mengontrol berbagai aspek proses ekspor. Secara khusus, Anda dapat mengatur opsi berikut:
KnownTypes. Koleksi ini
Type
mewakili jenis yang diketahui untuk jenis yang diekspor. (Untuk informasi selengkapnya, lihat Jenis yang Diketahui Kontrak Data.) Jenis yang diketahui ini diekspor pada setiapExport
panggilan selain jenis yang diteruskan ke metodeExport
.DataContractSurrogate. IDataContractSurrogate dapat diberikan melalui properti ini yang akan menyesuaikan proses ekspor. Untuk mengetahui informasi selengkapnya, lihat Pengganti Kontrak Data. Secara default, tidak ada pengganti yang digunakan.
Metode pembantu
Selain peran utamanya dalam mengekspor skema, XsdDataContractExporter
menyediakan beberapa metode pembantu berguna yang menyediakan informasi tentang jenis. Ini termasuk:
GetRootElementName metode. Metode ini mengambil
Type
dan mengembalikan XmlQualifiedName yang mewakili nama elemen root dan namespace layanan yang akan digunakan jika jenis ini diserialisasikan sebagai objek root.GetSchemaTypeName metode. Metode ini mengambil
Type
dan mengembalikan XmlQualifiedName yang mewakili nama jenis skema XSD yang akan digunakan jika jenis ini diekspor ke skema. Untuk IXmlSerializable jenis yang direpresentasikan sebagai jenis anonim dalam skema, metode ini mengembalikannull
.GetSchemaType metode. Metode ini hanya berfungsi dengan IXmlSerializable jenis yang direpresentasikan sebagai jenis anonim dalam skema, dan mengembalikan
null
untuk semua jenis lainnya. Untuk jenis anonim, metode ini mengembalikan XmlSchemaType yang mewakiliType
tertentu.
Opsi ekspor memengaruhi semua metode ini.