Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam .NET Framework 4.6, validasi skema XSD mendeteksi pelanggaran batasan unik jika kunci majemuk digunakan dan satu kunci kosong.
Dampak
Dampak dari perubahan ini harus minimal: berdasarkan spesifikasi skema, kesalahan validasi skema diharapkan jika xsd:unique dilanggar dengan menggunakan kunci majemuk dengan kunci kosong.
Mitigasi
Apakah kesalahan validasi skema terdeteksi jika kunci majemuk memiliki satu kunci kosong adalah fitur yang dapat dikonfigurasi:
Dimulai dengan aplikasi yang menargetkan .NET Framework 4.6, deteksi kesalahan validasi skema diaktifkan secara default; namun, dimungkinkan untuk menolaknya, sehingga kesalahan validasi skema tidak akan terdeteksi.
Dalam aplikasi yang berjalan di bawah .NET Framework 4.6 tetapi menargetkan .NET Framework 4.5.2 dan versi yang lebih lama, kesalahan validasi skema tidak terdeteksi secara default; namun, dimungkinkan untuk memilih ikut serta, sehingga kesalahan validasi skema akan terdeteksi.
Perilaku ini dapat dikonfigurasi dengan menggunakan kelas AppContext untuk menentukan nilai sakelar System.Xml.IgnoreEmptyKeySequences. Karena nilai default sakelar adalah false (urutan kunci kosong tidak diabaikan), aplikasi yang menargetkan .NET Framework 4.6 dapat menolak perilaku dengan menggunakan kode berikut untuk mengatur nilai sakelar ke true:
// Ignore empty key sequences in apps that target .NET 4.6
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", true);
' Ignore empty key sequences in apps that target .NET 4.6
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", True)
Untuk aplikasi yang menargetkan .NET Framework 4.5.2 dan versi yang lebih lama, karena nilai default sakelar adalah true (urutan kunci kosong diabaikan), dimungkinkan untuk memastikan bahwa kunci majemuk dengan kunci kosong memang menghasilkan kesalahan validasi skema dengan menggunakan kode berikut untuk mengatur nilai sakelar ke false.
// Do not ignore empty key sequences in apps that target .NET 4.5.1 and earlier
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", false);
' Do Not ignore empty key sequences in apps that target .NET 4.5.1 And earlier
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", False)