Bagikan melalui


XmlReaderSettings.ConformanceLevel Properti

Definisi

Mendapatkan atau mengatur tingkat kesuaian yang XmlReader akan mematuhinya.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Nilai Properti

Salah satu nilai enumerasi yang menentukan tingkat kesamaan yang akan diterapkan pembaca XML. Defaultnya adalah Document.

Contoh

Contoh berikut membuat XmlReader objek yang membaca fragmen XML.

string xmlFrag ="<item rk:ID='abc-23'>hammer</item> " +
                        "<item rk:ID='r2-435'>paint</item>" +
                        "<item rk:ID='abc-39'>saw</item>";

// Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("rk", "urn:store-items");

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), settings, context);
Dim xmlFrag As String = "<item rk:ID='abc-23'>hammer</item> " & _
                                     "<item rk:ID='r2-435'>paint</item>" & _
                                     "<item rk:ID='abc-39'>saw</item>"

' Create the XmlNamespaceManager.
Dim nt As New NameTable()
Dim nsmgr As New XmlNamespaceManager(nt)
nsmgr.AddNamespace("rk", "urn:store-items")

' Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)

' Create the reader. 
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader As XmlReader = XmlReader.Create(New StringReader(xmlFrag), settings, context)

Keterangan

Pembaca XML yang dibuat oleh metode Create memenuhi persyaratan kepatuhan berikut secara default:

  • Baris baru dan nilai atribut dinormalisasi sesuai dengan Rekomendasi XML 1.0 W3C.

  • Semua entitas secara otomatis diperluas.

  • Atribut default yang dideklarasikan dalam definisi jenis dokumen selalu ditambahkan bahkan ketika pembaca tidak memvalidasi.

  • Diizinkan untuk mendeklarasikan awalan XML yang dipetakan ke URI namespace XML yang benar.

  • Nama notasi dalam deklarasi atribut NotationType tunggal dan NmTokens dalam satu deklarasi atribut Enumeration berbeda.

Anda dapat menggunakan ConformanceLevel properti untuk memeriksa dan menjamin bahwa aliran yang dibaca mematuhi aturan untuk dokumen XML 1.0 yang dibentuk dengan baik atau fragmen dokumen. Jika data tidak sesuai, XmlException pengecualian akan dilemparkan. Defaultnya adalah ConformanceLevel.Document (kesuaian tingkat dokumen).

Tiga tingkat kesuaian adalah:

Setting Deskripsi
Document Memastikan bahwa data XML sesuai dengan aturan untuk dokumen XML 1.0 yang terbentuk dengan baik. Tingkat pemeriksaan ini memastikan bahwa setiap prosesor dapat menggunakan aliran yang dibaca sebagai dokumen XML 1.0 yang terbentuk dengan baik.

Pembaca memeriksa hal-hal berikut:

- Item tingkat atas tidak boleh memiliki simpul selain Deklarasi XML, definisi jenis dokumen (DTD), elemen, komentar, spasi kosong, atau instruksi pemrosesan.
- Data XML harus memiliki tepat satu simpul elemen tingkat atas.
Fragment Memastikan bahwa data XML sesuai dengan aturan untuk fragmen dokumen XML 1.0 yang terbentuk dengan baik.

Pengaturan ini menerima data XML dengan beberapa elemen akar, atau simpul teks di tingkat atas. Tingkat pemeriksaan ini memastikan bahwa setiap prosesor dapat mengonsumsi aliran yang dibaca sebagai entitas yang diurai eksternal.
Auto Menentukan bahwa pembaca harus menentukan tingkat pemeriksaan kesuaian berdasarkan data masuk.

Pemeriksaan kesuaian dokumen diterapkan jika data XML berisi informasi DTD.

Pemeriksaan kesesuaian fragmen diterapkan jika data XML berisi salah satu hal berikut:

- Simpul referensi teks, CDATA, atau entitas di tingkat akar.
- Lebih dari satu elemen di tingkat akar.
- Tidak ada elemen di tingkat akar.

Dilemparkan XmlException jika ada konflik, seperti ketika ada simpul teks dan DTD di tingkat akar.

Pengaturan ini dapat digunakan dalam skenario pembungkusan ketika Create metode digunakan untuk menambahkan fitur tambahan ke XmlReader. Dalam hal ini, ConformanceLevel.Document tidak menambahkan pemeriksaan kesuaian baru. Pemeriksaan kesuaian dibiarkan pada XmlReader yang sedang dibungkus.

Nota

Rekomendasi XML 1.0 memerlukan kesamaan tingkat dokumen saat DTD ada. Oleh karena itu, jika pembaca dikonfigurasi untuk mendukung ConformanceLevel.Fragment, tetapi data XML berisi definisi jenis dokumen (DTD), XmlException dilemparkan.

Berikut adalah cara pembaca menangani pelanggaran kesamaan tertentu tergantung pada pengaturan ConformanceLevel properti:

Keadaan Document Fragment Auto
Teks atau nilai yang ditik muncul di tingkat atas. XmlException dilemparkan. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini.
Beberapa elemen atau tidak ada elemen yang muncul di tingkat atas. XmlException dilemparkan. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini.
Item tingkat atas adalah spasi kosong. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini.
Item tingkat atas adalah atribut (dikenali sebagai simpul teks). XmlException dilemparkan. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini.
Beberapa simpul teks yang berdekatan ditemukan. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini. Tidak dianggap sebagai pelanggaran untuk pengaturan ini.
Awalan namespace yang sama dideklarasikan dua kali dalam cakupan lokal yang sama. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.
Namespace dalam elemen atau atribut tidak ada di cakupan lokal. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.
Data berisi awalan-namespace tidak cocok. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.
xml:space atribut berisi nilai yang tidak valid. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.
Nama yang tidak valid ditemui. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.
xml Awalan tidak cocok dengan http://www.w3.org/XML/1998/namespace URI. XmlException dilemparkan. XmlException dilemparkan. XmlException dilemparkan.

Berlaku untuk

Lihat juga