Bagikan melalui


Kelas System.Xml.XmlTextReader

Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.

Catatan

Kami menyarankan agar Anda membuat XmlReader instans dengan menggunakan XmlReader.Create metode untuk memanfaatkan fungsionalitas baru.

XmlTextReader menyediakan akses hanya-terusan dan baca-saja ke aliran data XML. Simpul saat ini mengacu pada simpul tempat pembaca diposisikan. 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.

  • XmlTextReader tidak menyediakan validasi data.

  • Memeriksa bahwa DocumentType simpul terbentuk dengan baik. XmlTextReader memeriksa DTD untuk kesadaran yang baik, tetapi tidak memvalidasi menggunakan DTD.

  • Untuk simpul di mana NodeType adalah , satu simpul kosong EntityReference dikembalikan (yaitu, Value properti adalah String.EmptyXmlNodeType.EntityReference).

Catatan

Deklarasi aktual entitas dalam DTD disebut Entity simpul. Saat Anda merujuk ke simpul ini dalam data Anda, node tersebut disebut EntityReference node.

  • Tidak memperluas atribut default.

XmlTextReader Karena tidak melakukan pemeriksaan tambahan yang diperlukan untuk validasi data, ia menyediakan pengurai kesejahteraan yang cepat.

Untuk melakukan validasi data, gunakan validasi XmlReader.

Untuk membaca data XML dari XmlDocument, gunakan XmlNodeReader.

XmlTextReader melempar kesalahan XmlException 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 XmlTextReader saat menggunakan kelas .

  • Pengecualian yang dilemparkan XmlTextReader dapat mengungkapkan informasi jalur yang tidak ingin Anda gelembungkan 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 XmlTextReader dapat diakses. 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:

  • 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 ini 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 diperluas saat Anda memanggil ResolveEntity metode .