Bagikan melalui


System.Xml Ruang nama

Menyediakan dukungan berbasis standar untuk memproses XML.

Kelas

NameTable

Mengimplementasikan utas XmlNameTabletunggal .

UniqueId

Pengidentifikasi unik yang dioptimalkan untuk Guid.

XmlAttribute

Mewakili suatu atribut. Nilai valid dan default untuk atribut ditentukan dalam definisi jenis dokumen (DTD) atau skema.

XmlAttributeCollection

Mewakili kumpulan atribut yang dapat diakses berdasarkan nama atau indeks.

XmlBinaryReaderSession

Memungkinkan string yang dioptimalkan dikelola dengan cara yang dinamis.

XmlBinaryWriterSession

Memungkinkan penggunaan kamus dinamis untuk mengompresi string umum yang muncul dalam pesan dan mempertahankan status.

XmlCDataSection

Mewakili bagian CDATA.

XmlCharacterData

Menyediakan metode manipulasi teks yang digunakan oleh beberapa kelas.

XmlComment

Mewakili konten komentar XML.

XmlConvert

Mengodekan dan mendekode nama XML, dan menyediakan metode untuk mengonversi antara jenis runtime bahasa umum dan jenis bahasa definisi Skema XML (XSD). Saat mengonversi jenis data, nilai yang ditampilkan bersifat lokal independen.

XmlDataDocument

Memungkinkan data terstruktur disimpan, diambil, dan dimanipulasi melalui relasional DataSet.

XmlDeclaration

Mewakili simpul <deklarasi XML ?xml version='1.0'...?>.

XmlDictionary

Mengimplementasikan kamus yang digunakan untuk mengoptimalkan implementasi pembaca/penulis XML Windows Communication Foundation (WCF).

XmlDictionaryReader

Kelas abstract yang berasal dari XmlReader Windows Communication Foundation (WCF) untuk melakukan serialisasi dan deserialisasi.

XmlDictionaryReaderQuotas

Berisi nilai kuota yang dapat dikonfigurasi untuk XmlDictionaryReaders.

XmlDictionaryString

Mewakili entri yang disimpan dalam XmlDictionary.

XmlDictionaryWriter

Mewakili kelas abstrak yang berasal dari XmlWriter Windows Communication Foundation (WCF) untuk melakukan serialisasi dan deserialisasi.

XmlDocument

Mewakili dokumen XML. Anda dapat menggunakan kelas ini untuk memuat, memvalidasi, mengedit, menambahkan, dan memosisikan XML dalam dokumen.

XmlDocumentFragment

Mewakili objek ringan yang berguna untuk operasi penyisipan pohon.

XmlDocumentType

Mewakili deklarasi tipe dokumen.

XmlDocumentXPathExtensions

Menyediakan metode ekstensi untuk XmlDocument dan XmlNode untuk navigasi dokumen.

XmlElement

Mewakili sebuah elemen.

XmlEntity

Mewakili deklarasi entitas, seperti <! ENTITAS... >.

XmlEntityReference

Mewakili node referensi entitas.

XmlException

Menampilkan informasi terperinci tentang pengecualian terakhir.

XmlImplementation

Menentukan konteks untuk sekumpulan XmlDocument objek.

XmlLinkedNode

Mendapatkan node segera mendahului atau mengikuti node ini.

XmlNamedNodeMap

Mewakili kumpulan simpul yang dapat diakses berdasarkan nama atau indeks.

XmlNamespaceManager

Mengatasi, menambahkan, dan menghapus namespace ke koleksi dan menyediakan manajemen cakupan untuk namespace ini.

XmlNameTable

Tabel objek string yang diatomisasi.

XmlNode

Mewakili satu simpul dalam dokumen XML.

XmlNodeChangedEventArgs

Menyediakan data untuk NodeChangedperistiwa , NodeChanging, NodeInserted, NodeInserting, NodeRemoved dan NodeRemoving .

XmlNodeList

Mewakili kumpulan node yang diurutkan.

XmlNodeReader

Mewakili pembaca yang menyediakan akses maju yang cepat dan tidak di-cache hanya ke data XML dalam XmlNode.

XmlNotation

Mewakili deklarasi notasi, seperti <! NOTASI... >.

XmlParserContext

Menyediakan semua informasi konteks yang diperlukan oleh untuk mengurai XmlReader fragmen XML.

XmlProcessingInstruction

Mewakili petunjuk pemrosesan, yang ditentukan XML untuk menyimpan informasi khusus prosesor dalam teks dokumen.

XmlQualifiedName

Mewakili nama XML yang memenuhi syarat.

XmlReader

Mewakili pembaca yang menyediakan akses cepat, tidak di-cache, dan hanya maju ke data XML.

XmlReaderSettings

Menentukan sekumpulan fitur yang akan didukung pada objek yang XmlReader dibuat oleh Create metode .

XmlResolver

Mengatasi sumber daya XML eksternal yang dinamai oleh Pengidentifikasi Sumber Daya Seragam (URI).

XmlSecureResolver

Membantu mengamankan implementasi lain dengan XmlResolver membungkus XmlResolver objek dan membatasi sumber daya yang dapat diakses oleh yang mendasarnya XmlResolver .

XmlSignificantWhitespace

Mewakili spasi kosong antara markup dalam node konten campuran atau spasi kosong dalam cakupan xml:space= 'preserve'. Hal ini juga disebut sebagai spasi kosong yang signifikan.

XmlText

Mewakili konten teks elemen atau atribut.

XmlTextReader

Mewakili pembaca yang menyediakan akses cepat, tidak di-cache, dan hanya maju ke data XML.

Dimulai dengan .NET Framework 2.0, kami sarankan Anda menggunakan kelas sebagai gantinyaXmlReader.

XmlTextWriter

Mewakili penulis yang menyediakan cara cepat, tidak di-cache, dan hanya maju untuk menghasilkan aliran atau file yang berisi data XML yang sesuai dengan W3C Extensible Markup Language (XML) 1.0 dan Namespace dalam rekomendasi XML.

Dimulai dengan .NET Framework 2.0, kami sarankan Anda menggunakan kelas sebagai gantinyaXmlWriter.

XmlUrlResolver

Mengatasi sumber daya XML eksternal yang dinamai oleh Pengidentifikasi Sumber Daya Seragam (URI).

XmlValidatingReader

Mewakili pembaca yang menyediakan definisi jenis dokumen (DTD), skema XML-Data Reduced (XDR), dan validasi bahasa definisi Skema XML (XSD).

Kelas ini sudah usang. Dimulai dengan .NET Framework 2.0, kami sarankan Anda menggunakan XmlReaderSettings kelas dan Create metode untuk membuat pembaca XML yang memvalidasi.

XmlWhitespace

Mewakili spasi kosong dalam konten elemen.

XmlWriter

Mewakili penulis yang menyediakan cara cepat, tidak di-cache, dan hanya maju untuk menghasilkan aliran atau file yang berisi data XML.

XmlWriterSettings

Menentukan sekumpulan fitur yang akan didukung pada objek yang XmlWriter dibuat oleh Create metode .

XmlXapResolver

Jenis XmlXapResolver digunakan untuk menyelesaikan sumber daya dalam paket XAP aplikasi Silverlight.

Antarmuka

IApplicationResourceStreamResolver

Mewakili pemecah masalah aliran sumber daya aplikasi.

IFragmentCapableXmlDictionaryWriter

Berisi properti dan metode yang ketika diimplementasikan oleh XmlDictionaryWriter, memungkinkan pemrosesan fragmen XML.

IHasXmlNode

Memungkinkan kelas untuk mengembalikan XmlNode dari konteks atau posisi saat ini.

IStreamProvider

Mewakili antarmuka yang dapat diimplementasikan oleh kelas yang menyediakan aliran.

IXmlBinaryReaderInitializer

Menyediakan metode untuk menginisialisasi ulang pembaca biner untuk membaca dokumen baru.

IXmlBinaryWriterInitializer

Menentukan persyaratan implementasi untuk penulis biner XML yang berasal dari antarmuka ini.

IXmlDictionary

interface Yang mendefinisikan kontrak yang harus diterapkan kamus Xml untuk digunakan oleh XmlDictionaryReader dan XmlDictionaryWriter implementasi.

IXmlLineInfo

Menyediakan antarmuka untuk mengaktifkan kelas untuk mengembalikan informasi garis dan posisi.

IXmlMtomReaderInitializer

Menentukan persyaratan implementasi untuk pembaca XML MTOM yang berasal dari antarmuka ini.

IXmlMtomWriterInitializer

Ketika diimplementasikan oleh penulis MTOM, antarmuka ini memastikan inisialisasi untuk penulis MTOM.

IXmlNamespaceResolver

Menyediakan akses baca-saja ke sekumpulan awalan dan pemetaan namespace layanan.

IXmlTextReaderInitializer

Menentukan persyaratan implementasi untuk pembaca teks XML yang berasal dari antarmuka ini.

IXmlTextWriterInitializer

Menentukan persyaratan implementasi untuk penulis teks XML yang berasal dari antarmuka ini.

Enum

ConformanceLevel

Menentukan jumlah pemeriksaan input atau output yang XmlReader dilakukan objek dan XmlWriter .

DtdProcessing

Menentukan opsi untuk memproses DTD. Enumerasi DtdProcessing digunakan oleh XmlReaderSettings kelas .

EntityHandling

Menentukan cara XmlTextReader atau XmlValidatingReader menangani entitas.

Formatting

Menentukan opsi pemformatan untuk XmlTextWriter.

NamespaceHandling

Menentukan apakah akan menghapus deklarasi namespace duplikat di XmlWriter.

NewLineHandling

Menentukan cara menangani pemisah baris.

ReadState

Menentukan status pembaca.

ValidationType

Menentukan jenis validasi yang akan dilakukan.

WhitespaceHandling

Menentukan bagaimana ruang kosong ditangani.

WriteState

Menentukan status XmlWriter.

XmlDateTimeSerializationMode

Menentukan cara memperlakukan nilai waktu saat mengonversi antara string dan DateTime.

XmlDictionaryReaderQuotaTypes

Menghitung nilai kuota yang dapat dikonfigurasi untuk XmlDictionaryReaders.

XmlNamespaceScope

Menentukan cakupan namespace.

XmlNodeChangedAction

Menentukan jenis perubahan simpul.

XmlNodeOrder

Menjelaskan urutan dokumen simpul dibandingkan dengan simpul kedua.

XmlNodeType

Menentukan jenis simpul.

XmlOutputMethod

Menentukan metode yang digunakan untuk membuat serial output XmlWriter .

XmlSpace

Menentukan cakupan saat ini xml:space .

XmlTokenizedType

Mewakili jenis XML untuk string. Ini memungkinkan string dibaca sebagai jenis XML tertentu, misalnya jenis bagian CDATA.

Delegasikan

OnXmlDictionaryReaderClose

delegate untuk metode panggilan balik saat menutup pembaca.

XmlNodeChangedEventHandler

Mewakili metode yang menangani NodeChangedperistiwa , , NodeChangingNodeInserted, NodeInserting, NodeRemoved dan NodeRemoving .

Keterangan

Standar yang didukung

Namespace System.Xml mendukung standar ini:

Lihat bagian Perbedaan dari spesifikasi W3C untuk dua kasus di mana kelas XML berbeda dari rekomendasi W3C.

.NET juga menyediakan namespace layanan lain untuk operasi terkait XML. Untuk daftar, deskripsi, dan tautan, lihat System.Xml Namespace.

Memproses XML secara asinkron

Kelas System.Xml.XmlReader dan System.Xml.XmlWriter mencakup sejumlah metode asinkron yang didasarkan pada model pemrograman asinkron. Metode ini dapat diidentifikasi dengan string "Asinkron" di akhir namanya. Dengan metode ini, Anda dapat menulis kode asinkron yang mirip dengan kode sinkron Anda, dan Anda dapat memigrasikan kode sinkron yang ada ke kode asinkron dengan mudah.

  • Gunakan metode asinkron di aplikasi di mana ada latensi aliran jaringan yang signifikan. Hindari menggunakan API asinkron untuk aliran memori atau operasi baca/tulis aliran file lokal. Aliran input, XmlTextReader, dan XmlTextWriter harus mendukung operasi asinkron juga. Jika tidak, utas akan tetap diblokir oleh operasi I/O.

  • Kami tidak menyarankan untuk mencampur panggilan fungsi sinkron dan asinkron, karena Anda mungkin lupa menggunakan await kata kunci atau menggunakan API sinkron di mana panggilan asinkron diperlukan.

  • Jangan atur XmlReaderSettings.Async bendera atau XmlWriterSettings.Async ke true jika Anda tidak berniat menggunakan metode asinkron.

  • Jika Anda lupa menentukan await kata kunci saat memanggil metode asinkron, hasilnya tidak deterministik: Anda mungkin menerima hasil yang Anda harapkan atau pengecualian.

  • XmlReader Saat objek membaca simpul teks besar, objek mungkin hanya menyimpan sebagian nilai teks dan mengembalikan simpul teks, sehingga mengambil XmlReader.Value properti mungkin diblokir oleh operasi I/O. XmlReader.GetValueAsync Gunakan metode untuk mendapatkan nilai teks dalam mode asinkron, atau gunakan XmlReader.ReadValueChunkAsync metode untuk membaca blok teks besar dalam gugus.

  • Saat Anda menggunakan XmlWriter objek, panggil XmlWriter.FlushAsync metode sebelum memanggil XmlWriter.Close untuk menghindari pemblokiran operasi I/O.

Perbedaan dari spesifikasi W3C

Dalam dua kasus yang melibatkan batasan pada komponen skema grup model, System.Xml namespace berbeda dari rekomendasi W3C.

Konsistensi dalam deklarasi elemen:

Dalam beberapa kasus, ketika grup pengganti digunakan, System.Xml implementasi tidak memenuhi "Batasan Komponen Skema: Deklarasi Elemen Konsisten," yang dijelaskan dalam bagian Batasan pada Komponen Skema Grup Model dari spesifikasi W3C.

Misalnya, skema berikut menyertakan elemen yang memiliki nama yang sama tetapi jenis yang berbeda dalam model konten yang sama, dan grup substitusi digunakan. Ini akan menyebabkan kesalahan, tetapi System.Xml mengkompilasi dan memvalidasi skema tanpa kesalahan.

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

   <xs:element name="e1" type="t1"/>
   <xs:complexType name="t1"/>

   <xs:element name="e2" type="t2" substitutionGroup="e1"/>
      <xs:complexType name="t2">
         <xs:complexContent>
            <xs:extension base="t1">
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="t3">
      <xs:sequence>
         <xs:element ref="e1"/>
         <xs:element name="e2" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>
</xs:schema>

Dalam skema ini, jenis t3 berisi urutan elemen. Karena penggantian, referensi ke elemen e1 dari urutan dapat menghasilkan elemen e1 jenis t1 atau dalam elemen e2 jenis t2. Kasus terakhir akan menghasilkan urutan dua e2 elemen, di mana satu berjenis t2 dan yang lainnya berjenis xs:int.

Atribusi partikel unik:

Dalam kondisi berikut, System.Xml implementasi tidak memenuhi "Batasan Komponen Skema: Atribusi Partikel Unik," yang dijelaskan di bagian Batasan pada Komponen Skema Grup Model dari spesifikasi W3C.

  • Salah satu elemen dalam grup mereferensikan elemen lain.

  • Elemen yang dirujuk adalah elemen kepala dari grup substitusi.

  • Grup substitusi berisi elemen yang memiliki nama yang sama dengan salah satu elemen dalam grup.

  • Kardinalitas elemen yang mereferensikan elemen kepala grup substitusi dan elemen dengan nama yang sama dengan elemen grup substitusi tidak diperbaiki (minOccurs < maxOccurs).

  • Definisi elemen yang mereferensikan grup substitusi mendahului definisi elemen dengan nama yang sama dengan elemen grup substitusi.

Misalnya, dalam skema di bawah model konten ambigu dan harus menyebabkan kesalahan kompilasi, tetapi System.Xml mengompilasi skema tanpa kesalahan.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="e1" type="xs:int"/>
  <xs:element name="e2" type="xs:int" substitutionGroup="e1"/>

  <xs:complexType name="t3">
    <xs:sequence>
      <xs:element ref="e1" minOccurs="0" maxOccurs="1"/>
      <xs:element name="e2" type="xs:int" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="e3" type="t3"/>
</xs:schema>

Jika Anda mencoba memvalidasi XML berikut terhadap skema di atas, validasi akan gagal dengan pesan berikut: "Elemen 'e3' memiliki elemen anak yang tidak valid 'e2'." dan XmlSchemaValidationException pengecualian akan dilemparkan.

<e3>
  <e2>1</e2>
  <e2>2</e2>
</e3>

Untuk mengatasi masalah ini, Anda dapat menukar deklarasi elemen dalam dokumen XSD. Contohnya:

<xs:sequence>
  <xs:element ref="e1" minOccurs="0" maxOccurs="1"/>
  <xs:element name="e2" type="xs:int" minOccurs="0" maxOccurs="1"/>
</xs:sequence>

menjadi ini:

<xs:sequence>
  <xs:element name="e2" type="xs:int" minOccurs="0" maxOccurs="1"/>
  <xs:element ref="e1" minOccurs="0" maxOccurs="1"/>
</xs:sequence>

Berikut adalah contoh lain dari masalah yang sama:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
   <xs:element name="e1" type="xs:string"/>
   <xs:element name="e2" type="xs:string" substitutionGroup="e1"/>

   <xs:complexType name="t3">
      <xs:sequence>
         <xs:element ref="e1" minOccurs="0" maxOccurs="1"/>
         <xs:element name="e2" type="xs:int" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
   </xs:complexType>
   <xs:element name="e3" type="t3"/>
</xs:schema>

Jika Anda mencoba memvalidasi XML berikut terhadap skema di atas, validasi akan gagal dengan pengecualian berikut: "Pengecualian Tidak Tertangani: System.Xml. Schema.XmlSchemaValidationException: Elemen el 'e2' tidak valid - Nilai 'abc' tidak valid menurut jenis datanya 'http://www.w3.org/2001/XMLSchema:int' - String 'abc' bukan nilai Int32 yang valid."

<e3><e2>abc</e2></e3>

Pertimbangan keamanan

Jenis dan anggota di namespace mengandalkan System.Xmlsistem keamanan .NET. Bagian berikut membahas masalah keamanan yang khusus untuk teknologi XML.

Perhatikan juga bahwa saat Anda menggunakan System.Xml jenis dan anggota, jika XML berisi data yang memiliki implikasi privasi potensial, Anda perlu menerapkan aplikasi Anda dengan cara yang menghormati privasi pengguna akhir Anda.

Akses eksternal

Beberapa teknologi XML memiliki kemampuan untuk mengambil dokumen lain selama pemrosesan. Misalnya, definisi jenis dokumen (DTD) dapat berada di dokumen yang sedang diurai. DTD juga dapat hidup dalam dokumen eksternal yang direferensikan oleh dokumen yang sedang diurai. Teknologi BAHASA definisi Skema XML (XSD) dan XSLT juga memiliki kemampuan untuk menyertakan informasi dari file lain. Sumber daya eksternal ini dapat menyajikan beberapa masalah keamanan. Misalnya, Anda harus memastikan bahwa aplikasi Anda hanya mengambil file dari situs tepercaya, dan file yang diambilnya tidak berisi data berbahaya.

Kelas XmlUrlResolver ini digunakan untuk memuat dokumen XML dan untuk menyelesaikan sumber daya eksternal seperti entitas, DTD, atau skema, dan mengimpor atau menyertakan arahan.

Anda dapat mengambil alih kelas ini dan menentukan objek yang XmlResolver akan digunakan. Gunakan kelas XmlSecureResolver jika Anda perlu membuka sumber daya yang tidak Anda kontrol, atau yang tidak tepercaya. Membungkus XmlSecureResolver dan memungkinkan Anda membatasi sumber daya yang dapat diakses oleh yang mendasarnya XmlResolverXmlResolver .

Penolakan layanan

Skenario berikut dianggap kurang rentan terhadap penolakan serangan layanan karena kelas memberikan sarana perlindungan dari serangan tersebut System.Xml .

Skenario berikut tidak disarankan jika Anda khawatir tentang penolakan serangan layanan, atau jika Anda bekerja di lingkungan yang tidak tepercaya.

  • Pemrosesan DTD.

  • Pemrosesan skema. Ini termasuk menambahkan skema yang tidak tepercaya ke koleksi skema, mengkompilasi skema yang tidak tepercaya, dan memvalidasi dengan menggunakan skema yang tidak tepercaya.

  • Pemrosesan XSLT.

  • Mengurai aliran arbitrer data XML biner yang disediakan pengguna.

  • Operasi DOM seperti mengkueri, mengedit, memindahkan sub-pohon antar dokumen, dan menyimpan objek DOM.

Jika Anda khawatir tentang penolakan masalah layanan atau jika Anda berurusan dengan sumber yang tidak tepercaya, jangan aktifkan pemrosesan DTD. Ini dinonaktifkan secara default pada XmlReader objek yang XmlReader.Create dibuat metode.

Catatan

XmlTextReader memungkinkan pemrosesan DTD secara default. XmlTextReader.DtdProcessing Gunakan properti untuk menonaktifkan fitur ini.

Jika pemrosesan DTD diaktifkan, Anda dapat menggunakan XmlSecureResolver kelas untuk membatasi sumber daya yang XmlReader dapat diakses. Anda juga dapat merancang aplikasi sehingga pemrosesan XML dibatasi memori dan waktu. Misalnya, Anda dapat mengonfigurasi batas waktu habis di aplikasi ASP.NET Anda.

Pertimbangan pemrosesan

Karena dokumen XML dapat menyertakan referensi ke file lain, sulit untuk menentukan berapa banyak daya pemrosesan yang diperlukan untuk mengurai dokumen XML. Misalnya, dokumen XML dapat menyertakan DTD. Jika DTD berisi entitas berlapis atau model konten kompleks, dibutuhkan waktu yang berlebihan untuk mengurai dokumen.

Saat menggunakan XmlReader, Anda dapat membatasi ukuran dokumen yang dapat diurai dengan mengatur XmlReaderSettings.MaxCharactersInDocument properti . Anda dapat membatasi jumlah karakter yang dihasilkan dari memperluas entitas dengan mengatur XmlReaderSettings.MaxCharactersFromEntities properti . Lihat topik referensi yang sesuai untuk contoh pengaturan properti ini.

Teknologi XSD dan XSLT memiliki kemampuan tambahan yang dapat memengaruhi performa pemrosesan. Misalnya, dimungkinkan untuk membuat skema XML yang memerlukan banyak waktu untuk diproses ketika dievaluasi melalui dokumen yang relatif kecil. Dimungkinkan juga untuk menyematkan blok skrip dalam lembar gaya XSLT. Kedua kasus tersebut menimbulkan potensi ancaman keamanan terhadap aplikasi Anda.

Saat membuat aplikasi yang menggunakan XslCompiledTransform kelas , Anda harus mengetahui item berikut dan implikasinya:

  • Skrip XSLT dinonaktifkan secara default. Skrip XSLT harus diaktifkan hanya jika Anda memerlukan dukungan skrip dan Anda bekerja di lingkungan yang sepenuhnya tepercaya.

  • Fungsi XSLT document() dinonaktifkan secara default. Jika Anda mengaktifkan document() fungsi , batasi sumber daya yang dapat diakses dengan meneruskan XmlSecureResolver objek ke XslCompiledTransform.Transform metode .

  • Objek ekstensi diaktifkan secara default. XsltArgumentList Jika objek yang berisi objek ekstensi diteruskan ke XslCompiledTransform.Transform metode , objek ekstensi akan digunakan.

  • Lembar gaya XSLT dapat menyertakan referensi ke file lain dan blok skrip yang disematkan. Pengguna jahat dapat mengeksploitasi ini dengan memberi Anda lembar data atau gaya yang, ketika dijalankan, dapat menyebabkan sistem Anda diproses sampai komputer kehabisan sumber daya.

  • Aplikasi XSLT yang berjalan di lingkungan kepercayaan campuran dapat mengakibatkan spoofing lembar gaya. Misalnya, pengguna jahat dapat memuat objek dengan lembar gaya berbahaya dan menyerahkannya kepada pengguna lain yang kemudian memanggil XslCompiledTransform.Transform metode dan menjalankan transformasi.

Masalah keamanan ini dapat dimitigasi dengan tidak mengaktifkan skrip atau document() fungsi kecuali lembar gaya berasal dari sumber tepercaya, dan dengan tidak menerima XslCompiledTransform objek, lembar gaya XSLT, atau data sumber XML dari sumber yang tidak tepercaya.

Penanganan pengecualian

Pengecualian yang dilemparkan oleh komponen tingkat bawah dapat mengungkapkan informasi jalur yang tidak ingin Anda terekspos ke aplikasi. Aplikasi Anda harus menangkap pengecualian dan memprosesnya dengan tepat.

Lihat juga