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.
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
Nota
Kami menyarankan Anda membuat instans XmlReader untuk memanfaatkan fungsionalitas baru dengan menggunakan metode XmlReader.Create.
XmlTextReader menyediakan akses hanya-maju dan baca-saja ke aliran data XML. Simpul saat ini mengacu pada simpul di mana pembaca berada. Pembaca dimajukan menggunakan salah satu metode baca dan properti yang mencerminkan nilai simpul saat ini.
Kelas ini mengimplementasikan XmlReader dan sesuai dengan W3C Extensible Markup Language (XML) 1.0 dan Namespace dalam rekomendasi XML.
XmlTextReader menyediakan fungsionalitas berikut:
Menerapkan aturan XML yang terbentuk dengan baik.
XmlTextReadertidak menyediakan validasi data.Memeriksa apakah simpul
DocumentTypeterbentuk dengan baik.XmlTextReadermemeriksa DTD untuk keterbentukan yang baik, tetapi tidak memvalidasi menggunakan DTD.Untuk simpul di mana NodeType adalah
XmlNodeType.EntityReference, satu simpul kosongEntityReferencedikembalikan (yaitu, properti Value adalahString.Empty).
Nota
Deklarasi entitas aktual dalam DTD disebut sebagai Entity simpul. Saat Anda merujuk ke simpul ini dalam data Anda, node tersebut disebut EntityReference node.
- Tidak memperluas atribut default.
Karena XmlTextReader tidak melakukan pemeriksaan tambahan yang diperlukan untuk validasi data, ia menyediakan pengurai well-formedness yang cepat.
Untuk melakukan validasi data, gunakan validasi XmlReader.
Untuk membaca data XML dari XmlDocument, gunakan XmlNodeReader.
XmlTextReader menghasilkan XmlException pada kesalahan penguraian XML. Setelah pengecualian dilemparkan, status pembaca tidak dapat diprediksi. Misalnya, jenis node yang dilaporkan mungkin berbeda dari jenis node aktual dari node saat ini.
ReadState Gunakan properti untuk memeriksa apakah pembaca dalam status kesalahan.
Pertimbangan keamanan
Berikut ini adalah hal-hal yang perlu dipertimbangkan saat menggunakan kelas XmlTextReader.
Pengecualian yang dilemparkan XmlTextReader dapat mengungkapkan informasi jalur yang tidak ingin Anda sebarkan ke aplikasi. Aplikasi Anda harus menangkap pengecualian dan memprosesnya dengan tepat.
Pemrosesan DTD diaktifkan secara default. Nonaktifkan pemrosesan DTD jika Anda khawatir tentang Masalah Penolakan Layanan atau jika Anda berurusan dengan sumber yang tidak tepercaya. Atur DtdProcessing properti ke Prohibit untuk menonaktifkan pemrosesan DTD.
Jika Anda mengaktifkan pemrosesan DTD, Anda dapat menggunakan XmlSecureResolver untuk membatasi sumber daya yang dapat diakses XmlTextReader. Anda juga dapat merancang aplikasi Anda sehingga pemrosesan XML dibatasi memori dan waktu. Misalnya, konfigurasikan batas waktu habis di aplikasi ASP.NET Anda.
Data XML dapat menyertakan referensi ke sumber daya eksternal seperti file DTD. Secara default sumber daya eksternal diselesaikan menggunakan XmlUrlResolver objek tanpa kredensial pengguna. Anda dapat mengamankannya lebih lanjut dengan melakukan salah satu hal berikut:
Batasi sumber daya yang dapat diakses XmlTextReader dengan mengatur properti XmlResolver ke objek XmlSecureResolver.
Jangan izinkan XmlReader membuka sumber daya eksternal apa pun dengan mengatur properti XmlResolver ke
null.
Data XML dapat berisi sejumlah besar atribut, deklarasi namespace, elemen berlapis dan sebagainya yang memerlukan banyak waktu untuk diproses. Untuk membatasi ukuran input yang dikirim ke XmlTextReader, buat implementasi IStream kustom dan berikan .XmlTextReader
Metode ReadValueChunk dapat digunakan untuk menangani aliran data yang besar. Metode ini membaca sejumlah kecil karakter pada satu waktu alih-alih mengalokasikan string tunggal untuk seluruh nilai.
Secara default entitas umum tidak diperluas. Entitas umum dikembangkan saat Anda memanggil metode ResolveEntity.