Bagikan melalui


System.Xml Ruang nama

Menyediakan dukungan berbasis standar untuk memproses XML.

Kelas

Nama Deskripsi
NameTable

Mengimplementasikan satu utas XmlNameTable.

UniqueId

Pengidentifikasi unik yang dioptimalkan untuk Guid.

XmlAttribute

Mewakili 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 memadatkan 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 dikembalikan tidak bergantung pada lokal.

XmlDataDocument

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

XmlDeclaration

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

XmlDictionary

Menerapkan 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 memposisikan XML dalam dokumen.

XmlDocumentFragment

Mewakili objek ringan yang berguna untuk operasi penyisipan pohon.

XmlDocumentType

Mewakili deklarasi jenis dokumen.

XmlDocumentXPathExtensions

Menyediakan metode ekstensi untuk XmlDocument dan XmlNode untuk navigasi dokumen.

XmlElement

Mewakili elemen.

XmlEntity

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

XmlEntityReference

Mewakili simpul referensi entitas.

XmlException

Mengembalikan informasi terperinci tentang pengecualian terakhir.

XmlImplementation

Menentukan konteks untuk sekumpulan XmlDocument objek.

XmlLinkedNode

Mendapatkan simpul segera mendahului atau mengikuti simpul 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 ke depan 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 instruksi 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, non-cache, dan hanya-terusan ke data XML.

XmlReaderSettings

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

XmlResolver

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

XmlSecureResolver

Membantu mengamankan implementasi XmlResolver lain dengan membungkus XmlResolver objek dan membatasi sumber daya yang mendasarnya XmlResolver memiliki akses.

XmlSignificantWhitespace

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

XmlText

Mewakili konten teks elemen atau atribut.

XmlTextReader

Mewakili pembaca yang menyediakan akses cepat, non-cache, dan hanya meneruskan ke data XML.

Kami menyarankan agar Anda menggunakan kelas sebagai gantinya XmlReader .

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.

Kami menyarankan agar Anda menggunakan kelas sebagai gantinya XmlWriter .

XmlUrlResolver

Menyelesaikan 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. Kami menyarankan agar 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 mengatasi sumber daya dalam paket XAP aplikasi Silverlight.

Antarmuka

Nama Deskripsi
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

Yang interface menentukan 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

Nama Deskripsi
ConformanceLevel

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

DtdProcessing

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

EntityHandling

Menentukan bagaimana 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 hentian baris.

ReadState

Menentukan status pembaca.

ValidationType

Menentukan jenis validasi yang akan dilakukan.

WhitespaceHandling

Menentukan bagaimana spasi 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 layanan.

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 serialisasi output XmlWriter.

XmlSpace

Menentukan cakupan xml:space saat ini.

XmlTokenizedType

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

Delegasikan

Nama Deskripsi
OnXmlDictionaryReaderClose

delegate untuk metode panggilan balik saat menutup pembaca.

XmlNodeChangedEventHandler

Mewakili metode yang menangani NodeChanged, , NodeChangingNodeInserted, NodeInserting, NodeRemoved dan NodeRemoving peristiwa.

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.

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 nama mereka. 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 masih akan diblokir oleh operasi I/O.

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

  • 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 di bagian Batasan 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 pengganti digunakan. Ini harus 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 dalam 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 pengganti.
  • Grup pengganti berisi elemen yang memiliki nama yang sama dengan salah satu elemen dalam grup.
  • Kardinalitas elemen yang mereferensikan elemen kepala grup pengganti dan elemen dengan nama yang sama dengan elemen grup pengganti tidak diperbaiki (minOccurs < maxOccurs).
  • Definisi elemen yang mereferensikan grup substitusi mendahului definisi elemen dengan nama yang sama dengan elemen grup pengganti.

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 turunan 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 sesuai dengan 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 System.Xml namespace mengandalkan sistem 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. XmlSecureResolver Gunakan kelas 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.

Nota

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

Jika Anda mengaktifkan pemrosesan DTD, 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 membutuhkan 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:

  • Pembuatan skrip XSLT dinonaktifkan secara default. Pembuatan 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 berbahaya dapat mengeksploitasi ini dengan memberi Anda lembar data atau gaya yang, ketika dijalankan, dapat menyebabkan sistem Anda memproses hingga komputer kehabisan sumber daya.

  • Aplikasi XSLT yang berjalan di lingkungan kepercayaan campuran dapat mengakibatkan spoofing lembar gaya. Misalnya, pengguna berbahaya 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 pembuatan 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 ekspos ke aplikasi. Aplikasi Anda harus menangkap pengecualian dan memprosesnya dengan tepat.

Lihat juga