Bagikan melalui


Metode System.Xml.XmlReader.Create

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

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

  • Tentukan fitur mana yang ingin Didukung pada XmlReader objek.
  • Gunakan XmlReaderSettings kembali objek 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 yang mendasar XmlReader dapat menjadi pembaca yang ditentukan pengguna, XmlTextReader objek, atau instans lain XmlReader yang ingin Anda tambahkan fitur tambahannya.
  • 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 .

Catatan

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

Pengaturan default

Jika Anda menggunakan Create kelebihan beban yang tidak menerima XmlReaderSettings objek, pengaturan pembaca default berikut digunakan:

Pengaturan Default
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 Set
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 untuk XmlSchemaSet 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, Create metode membaca potongan data pertama dari buffer file, streaming, atau pembaca teks. Ini dapat melemparkan 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 strip spasi putih yang tidak signifikan, strip komentar, dan melakukan pemeriksaan kesiapan 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