Monday, October 24, 2016

Pengenalan XML Serialization

Hasil gambar untuk xml serialization adalah
XML Serialization


Serialisasi adalah proses konversi objek ke dalam bentuk yang dapat mudah diangkut. Misalnya, Anda dapat cerita bersambung objek dan mengangkutnya melalui Internet menggunakan HTTP antara client dan server. Pada ujung yang lain, deserialization merekonstruksi objek dari sungai.

XML serialisasi serializes hanya bidang publik dan nilai-nilai properti dari objek ke dalam aliran XML. XML serialisasi tidak termasuk informasi jenis. Misalnya, jika Anda memiliki objek Buku yang ada di namespace Perpustakaan, tidak ada jaminan bahwa itu deserialized menjadi objek dari jenis yang sama.
Kelas sentral dalam serialisasi XML adalah kelas XmlSerializer, dan metode yang paling penting dalam kelas ini adalah cerita bersambung dan Deserializemethods. XmlSerializer menciptakan C # file dan mengkompilasi menjadi file .dll untuk melakukan serialisasi ini. Dalam .NET Framework 2.0, XML Serializer Generator Tool (Sgen.exe) dirancang untuk menghasilkan majelis serialisasi ini di muka untuk digunakan dengan aplikasi Anda dan meningkatkan kinerja startup. Aliran XML yang dihasilkan oleh XmlSerializer ini kompatibel dengan World Wide Web Consortium (www.w3.org) Bahasa definisi XML Schema (XSD) 1.0 rekomendasi. Selanjutnya, jenis data yang dihasilkan telah sesuai dengan dokumen berjudul "XML Schema Part 2:. Datatypes"
Data dalam objek Anda dijelaskan menggunakan konstruksi bahasa pemrograman seperti kelas, bidang, sifat, jenis primitif, array, dan bahkan tertanam XML dalam bentuk XmlElement atau XmlAttribute benda. Anda memiliki pilihan untuk membuat kelas Anda sendiri, dijelaskan dengan atribut, atau menggunakan XML alat Skema Definisi untuk menghasilkan kelas didasarkan pada skema XML yang ada.
Jika Anda memiliki Skema XML, Anda dapat menjalankan XML alat Skema Definisi untuk menghasilkan satu set kelas yang sangat diketik untuk skema dan dijelaskan dengan atribut. Ketika sebuah instance dari kelas tersebut adalah serial, XML yang dihasilkan mematuhi Skema XML. Tersedia dengan kelas seperti itu, Anda dapat program terhadap model obyek dengan mudah dimanipulasi sementara menjadi yakin bahwa XML yang dihasilkan sesuai dengan skema XML. Ini adalah sebuah alternatif untuk menggunakan kelas-kelas lain di Framework, seperti XmlReader dan XmlWriter kelas, untuk mengurai dan menulis aliran XML. Untuk informasi lebih lanjut, lihat Dokumen XML dan data. Kelas-kelas ini memungkinkan Anda untuk mengurai setiap aliran XML. Sebaliknya, gunakan XmlSerializer ketika aliran XML diharapkan untuk menyesuaikan diri dengan Skema XML diketahui.
Atribut mengontrol aliran XML yang dihasilkan oleh kelas XmlSerializer, memungkinkan Anda untuk mengatur namespace XML, nama elemen, atribut nama, dan sebagainya, dari aliran XML. Untuk informasi lebih lanjut tentang atribut ini dan bagaimana mereka mengontrol serialisasi XML, lihat Mengontrol XML serialisasi Menggunakan Atribut. Untuk tabel atribut-atribut yang digunakan untuk mengontrol XML yang dihasilkan, lihat Atribut Itu Kontrol XML serialisasi.
Kelas XmlSerializer dapat lebih cerita bersambung objek dan menghasilkan aliran SOAP XML dikodekan. XML yang dihasilkan menganut bagian 5 dari World dokumen Wide Web Consortium berjudul "Simple Object Access Protocol (SOAP) 1.1." Untuk informasi lebih lanjut tentang proses ini, lihat Cara: Cerita bersambung Obyek sebagai Streaming XML SOAP-Pengkodean. Untuk tabel atribut yang mengontrol XML yang dihasilkan, lihat Atribut yang mengendalikan Pengkodean SOAP serialisasi.
Kelas XmlSerializer menghasilkan pesan SOAP yang dibuat oleh, dan diteruskan ke, layanan XML Web. Untuk mengontrol pesan SOAP, Anda dapat menerapkan atribut untuk kelas, nilai kembali, parameter, dan bidang yang ditemukan di file XML layanan Web (.asmx). Anda dapat menggunakan kedua atribut yang tercantum dalam "Atribut Itu Kontrol XML serialisasi" dan "Atribut Itu Kontrol Pengkodean SOAP serialisasi" karena layanan Web XML dapat menggunakan salah gaya SOAP literal atau dikodekan. Untuk informasi lebih lanjut tentang menggunakan atribut untuk mengontrol XML yang dihasilkan oleh layanan Web XML, lihat XML serialisasi dengan XML Web Services. Untuk informasi lebih lanjut tentang SOAP dan XML Web layanan, lihat Menyesuaikan SOAP Pesan.
Pertimbangan keamanan untuk Aplikasi XmlSerializer
Ketika membuat sebuah aplikasi yang menggunakan XmlSerializer, Anda harus menyadari item berikut dan implikasinya:
• The XmlSerializer menciptakan C # (Cs) file dan mengkompilasi menjadi file .dll di direktori bernama oleh variabel lingkungan TEMP; serialisasi terjadi dengan orang-orang DLL.
o Kode dan DLL rentan terhadap proses berbahaya pada saat penciptaan dan kompilasi. Ketika menggunakan komputer yang menjalankan Microsoft Windows NT 4.0 atau yang lebih baru, ada kemungkinan untuk dua atau lebih pengguna untuk berbagi direktori TEMP. Berbagi direktori TEMP berbahaya jika dua akun memiliki hak keamanan yang berbeda dan akun yang lebih tinggi-hak istimewa menjalankan aplikasi menggunakan XmlSerializer. Dalam hal ini, salah satu pengguna dapat melanggar keamanan komputer dengan mengganti baik Cs atau .dll file yang dikompilasi. Untuk menghilangkan kekhawatiran ini, selalu pastikan bahwa setiap account pada komputer memiliki profil sendiri. Secara default, lingkungan TEMP poin variabel ke direktori yang berbeda untuk setiap akun.
o Jika pengguna berbahaya mengirim aliran kontinu data XML ke server Web (denial of service attack), maka XmlSerializer terus memproses data sampai komputer berjalan rendah pada sumber daya.
serangan semacam ini dihilangkan jika Anda menggunakan komputer yang menjalankan Internet Information Services (IIS), dan aplikasi Anda berjalan dalam IIS. IIS memiliki gerbang yang tidak proses stream lebih lama dari jumlah yang ditetapkan (default adalah 4 KB). Jika Anda membuat sebuah aplikasi yang tidak menggunakan IIS dan deserializes dengan XmlSerializer, Anda harus menerapkan sebuah gerbang yang sama yang mencegah serangan penolakan layanan.
o XmlSerializer serializes data dan menjalankan kode apapun menggunakan jenis diberikan untuk itu.
Ada dua cara di mana objek berbahaya menghadirkan ancaman. Ini bisa menjalankan kode berbahaya atau bisa menyuntikkan kode berbahaya ke dalam C # file yang dibuat oleh XmlSerializer. Dalam kasus pertama, jika benda berbahaya mencoba untuk menjalankan prosedur destruktif, keamanan akses kode membantu mencegah kerusakan dari yang dilakukan. Dalam kasus kedua, ada kemungkinan teoritis bahwa benda berbahaya mungkin entah bagaimana menyuntikkan kode ke C # file yang dibuat oleh XmlSerializer. Meskipun masalah ini telah diperiksa secara menyeluruh, dan serangan itu dianggap tidak mungkin, Anda harus mengambil tindakan pencegahan tidak pernah serialisasi data dengan jenis yang tidak diketahui dan tidak dipercaya.
o data sensitif Serial mungkin rentan.
Setelah XmlSerializerhas serial data, dapat disimpan sebagai file XML atau menyimpan data lainnya. Jika menyimpan data Anda tersedia untuk proses lainnya, atau terlihat di intranet atau internet, data dapat dicuri dan digunakan jahat. Misalnya, jika Anda membuat sebuah aplikasi yang serializes perintah yang mencakup nomor kartu kredit, data tersebut sangat sensitif. Untuk membantu mencegah hal ini, selalu melindungi toko untuk data Anda dan mengambil langkah-langkah untuk tetap pribadi.
Keuntungan Menggunakan XML serialisasi
The XmlSerializerclass memberi Anda kontrol lengkap dan fleksibel ketika Anda cerita bersambung objek sebagai XML. Jika Anda membuat layanan Web XML, Anda dapat menerapkan atribut yang mengontrol serialisasi untuk kelas dan anggota untuk menjamin bahwa output XML sesuai dengan skema tertentu.
Misalnya, XmlSerializer memungkinkan Anda untuk:
o Tentukan apakah bidang atau properti harus dikodekan sebagai atribut atau elemen.
o Tentukan namespace XML untuk digunakan.
o Tentukan nama elemen atau atribut jika bidang atau properti nama adalah tidak pantas.
Keuntungan lain dari serialisasi XML adalah bahwa Anda tidak memiliki kendala pada aplikasi Anda mengembangkan, selama aliran XML yang sesuai dengan skema yang diberikan dihasilkan. Bayangkan sebuah skema yang digunakan untuk menggambarkan buku. Ini fitur judul, penulis, penerbit, dan ISBN jumlah elemen. Anda dapat mengembangkan aplikasi yang memproses data XML dengan cara apapun yang Anda inginkan, misalnya, sebagai urutan buku, atau sebagai persediaan buku. Dalam kedua kasus, satu-satunya persyaratan adalah bahwa aliran XML sesuai dengan yang ditentukan XML Schema bahasa definisi (XSD) skema.
Pertimbangan XML serialisasi
berikut harus dipertimbangkan ketika menggunakan kelas XmlSerializer:
• Alat Sgen.exe secara tegas dirancang untuk menghasilkan majelis serialisasi untuk kinerja yang optimal.
• Data serial hanya berisi data itu sendiri dan struktur kelas Anda. Jenis identitas dan informasi perakitan tidak termasuk.
• Hanya properti publik dan bidang dapat serial. Properti harus memiliki accesor publik (mendapatkan dan menetapkan metode). Jika Anda harus cerita bersambung data non-publik, menggunakan kelas DataContractSerializer daripada serialisasi XML.
• Sebuah kelas harus memiliki konstruktor default untuk menjadi serial oleh XmlSerializer.
• Metode tidak dapat serial.
• XmlSerializer dapat memproses kelas yang mengimplementasikan ICollection IEnumerable atau berbeda jika mereka memenuhi persyaratan tertentu, sebagai berikut.
Sebuah kelas yang mengimplementasikan IEnumerable harus menerapkan metode Tambahkan publik yang mengambil satu parameter. parameter Tambah Metode ini harus konsisten (polimorfik) dengan jenis kembali dari properti IEnumerator.Current kembali dari metode GetEnumerator.
Sebuah kelas yang mengimplementasikan ICollection selain IEnumerable (seperti CollectionBase) harus memiliki public Barang diindeks properti (pengindeks dalam C #) yang mengambil integer dan harus memiliki properti Count publik bertipe integer. Parameter dilewatkan ke metode Tambahkan harus jenis yang sama seperti yang kembali dari properti Item, atau salah satu basis jenis ini.
Untuk kelas yang mengimplementasikan ICollection, nilai-nilai untuk menjadi serial yang diambil dari properti Item diindeks bukan oleh callingGetEnumerator. Juga, bidang umum dan properti tidak serial, dengan pengecualian bidang publik yang kembali kelas koleksi lain (salah satu yang mengimplementasikan ICollection). Sebagai contoh, lihat Contoh XML serialisasi.
XSD Tipe Data Pemetaan
World Wide Web Consortium (www.w3.org) dokumen berjudul "XML Schema Part 2: Datatypes" menentukan tipe data sederhana yang diperbolehkan dalam bahasa definisi XML Schema (XSD) skema. Bagi banyak dari ini (misalnya, int dan desimal), ada jenis data yang sesuai dalam Framework. Namun, beberapa jenis data XML tidak memiliki tipe data yang sesuai pada .NET Framework (misalnya, NMTOKEN tipe data). Dalam kasus tersebut, jika Anda menggunakan alat XML Schema Definition (XML Schema Definition Tool (XSD.exe)) untuk menghasilkan kelas dari skema, atribut yang sesuai diterapkan untuk anggota dari tipe string, dan properti DataType yang diatur ke XML nama tipe data.


Referensi: https://msdn.microsoft.com/en-us/library/182eeyhh(v=vs.110).aspx








Previous Post
Next Post

About Author

0 comments: