Bagikan melalui


Metode Create pada System.Xml.XmlReader

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

Sebagian besar overload Create mencakup parameter settings yang menerima objek XmlReaderSettings. Anda dapat menggunakan objek ini untuk:

  • Tentukan fitur mana yang ingin Didukung pada XmlReader objek.
  • Gunakan objek XmlReaderSettings kembali untuk membuat beberapa pembaca. Anda dapat menggunakan pengaturan yang sama untuk membuat beberapa pembaca dengan fungsionalitas yang sama. Atau, Anda dapat mengubah pengaturan pada XmlReaderSettings instans dan membuat pembaca baru dengan serangkaian fitur yang berbeda.
  • Tambahkan fitur ke pembaca XML yang sudah ada. Metode Create ini dapat menerima objek lain XmlReader . Objek dasar XmlReader dapat menjadi pembaca yang didefinisikan pengguna, objek XmlTextReader, atau instans lain XmlReader yang ingin Anda tambahkan fitur tambahan.
  • Manfaatkan fitur sepenuhnya seperti pemeriksaan kesamaan yang lebih baik dan kepatuhan terhadap rekomendasi XML 1.0 (edisi keempat) yang hanya tersedia pada XmlReader objek yang dibuat oleh metode statis Create .

Nota

Meskipun .NET menyertakan implementasi konkret kelas XmlReader , seperti XmlTextReader, , XmlNodeReaderdan XmlValidatingReader kelas, kami sarankan Anda membuat XmlReader instans dengan menggunakan Create metode .

Pengaturan bawaan

Jika Anda menggunakan Create overload yang tidak menerima objek XmlReaderSettings, pengaturan default pembaca berikut ini akan digunakan.

Pengaturan Bawaan
CheckCharacters true
ConformanceLevel ConformanceLevel.Document
IgnoreComments false
IgnoreProcessingInstructions false
IgnoreWhitespace false
LineNumberOffset 0
LinePositionOffset 0
NameTable null
DtdProcessing Prohibit
Schemas Objek kosong XmlSchemaSet
ValidationFlags ProcessIdentityConstraints Diaktifkan
ValidationType None
XmlResolver null

Pengaturan untuk skenario umum

Berikut adalah properti yang XmlReaderSettings harus Anda tetapkan untuk beberapa skenario pembaca XML umum.

Persyaratan Menetapkan
Data harus berupa dokumen XML yang terbentuk dengan baik. ConformanceLevel ke Document.
Data harus merupakan entitas yang diurai XML yang terbentuk dengan baik. ConformanceLevel ke Fragment.
Data harus divalidasi terhadap DTD. DtdProcessing ke Parse
ValidationType ke DTD.
Data harus divalidasi terhadap skema XML. ValidationType ke Schema
Schemas ke XmlSchemaSet yang digunakan untuk validasi. Perhatikan bahwa XmlReader tidak mendukung validasi skema XML-Data Reduced (XDR).
Data harus divalidasi terhadap skema XML sebaris. ValidationType ke Schema
ValidationFlags ke ProcessInlineSchema.
Ketik dukungan. ValidationType ke Schema
Schemas untuk XmlSchemaSet digunakan.

XmlReader tidak mendukung validasi skema XML-Data Reduced (XDR).

Pemrograman asinkron

Dalam mode sinkron, metode Create membaca bagian data pertama dari buffer file, aliran, atau pembaca teks. Ini dapat menghasilkan pengecualian jika operasi I/O gagal. Dalam mode asinkron, operasi I/O pertama terjadi dengan operasi baca, sehingga pengecualian yang muncul akan dilemparkan ketika operasi baca terjadi.

Pertimbangan keamanan

Secara default, XmlReader menggunakan XmlUrlResolver objek tanpa kredensial pengguna untuk membuka sumber daya. Ini berarti bahwa, secara default, pembaca XML dapat mengakses lokasi apa pun yang tidak memerlukan kredensial. XmlResolver Gunakan properti untuk mengontrol akses ke sumber daya:

  • Atur XmlResolver ke XmlSecureResolver objek untuk membatasi sumber daya yang dapat diakses pembaca XML, atau...
  • Atur XmlResolver ke null untuk mencegah pembaca XML membuka sumber daya eksternal apa pun.

Contoh

Contoh ini membuat pembaca XML yang menghapus spasi putih yang tidak signifikan, menghapus komentar, dan melakukan pemeriksaan kesesuaian tingkat fragmen.

XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)

Contoh berikut menggunakan XmlUrlResolver dengan kredensial default untuk mengakses file.

// Set the reader settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
' Set the reader settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.IgnoreComments = true
settings.IgnoreProcessingInstructions = true
settings.IgnoreWhitespace = true
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("http://ServerName/data/books.xml", settings);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver

' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("http://ServerName/data/books.xml", settings)

Kode berikut membungkus instans pembaca dalam pembaca lain.

XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);
Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)

Contoh ini menautkan pembaca untuk menambahkan validasi skema DTD dan XML.

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings);  // XML Schema Validation
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings)  ' XML Schema Validation