System.Xml.XmlTextReader sınıfı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Not
Yeni işlevlerden yararlanmak için yöntemini kullanarak XmlReader.Create örnekler oluşturmanızı XmlReader öneririz.
XmlTextReader BIR XML veri akışına salt iletme, salt okunur erişim sağlar. Geçerli düğüm, okuyucunun bulunduğu düğüme başvurur. Okuyucu, okuma yöntemlerinden herhangi birini kullanarak gelişmiştir ve özellikler geçerli düğümün değerini yansıtır.
Bu sınıf, W3C Genişletilebilir Biçimlendirme Dili (XML) 1.0 ve XML önerilerindeki Ad Alanları'nı uygular XmlReader ve bunlara uygundur. XmlTextReader
aşağıdaki işlevleri sağlar:
İyi biçimlendirilmiş XML kurallarını uygular.
XmlTextReader
veri doğrulama sağlamaz.Düğümlerin iyi biçimlendirilmiş olup olmadığını
DocumentType
denetler.XmlTextReader
DTD'yi iyi biçimlendirilmişlük açısından denetler, ancak DTD kullanarak doğrulamaz.olduğu NodeType düğümler
XmlNodeType.EntityReference
için tek bir boşEntityReference
düğüm döndürülür (yani Value özelliği olurString.Empty
).
Not
DTD'deki varlıkların gerçek bildirimleri düğüm olarak adlandırılır Entity
. Verilerinizdeki bu düğümlere başvurduysanız bunlara düğüm adı verilir EntityReference
.
- Varsayılan öznitelikleri genişletmez.
XmlTextReader
veri doğrulaması için gereken ek denetimleri gerçekleştirmediğinden, hızlı bir iyi biçimlendirilmiş ayrıştırıcı sağlar.
Veri doğrulama gerçekleştirmek için bir doğrulama XmlReaderkullanın.
bir XmlDocumentöğesinden XML verilerini okumak için kullanın XmlNodeReader.
XmlTextReader
XmlException xml ayrıştırma hataları oluşturur. Özel durum oluşturulduktan sonra okuyucunun durumu tahmin edilebilir değildir. Örneğin, bildirilen düğüm türü geçerli düğümün gerçek düğüm türünden farklı olabilir. Bir okuyucunun ReadState hata durumunda olup olmadığını denetlemek için özelliğini kullanın.
Güvenlik konuları
Sınıfını kullanırken göz önünde bulundurmanız gerekenler aşağıdadır XmlTextReader .
oluşan XmlTextReader özel durumlar, uygulamaya kabarmasını istemediğiniz yol bilgilerini açıklayabilir. Uygulamalarınız özel durumları yakalamalı ve uygun şekilde işlemelidir.
DTD işleme varsayılan olarak etkindir. Hizmet Reddi sorunlarıyla ilgileniyorsanız veya güvenilmeyen kaynaklarla ilgileniyorsanız DTD işlemeyi devre dışı bırakın. DTD işlemeyi DtdProcessing devre dışı bırakmak için özelliğini Prohibit olarak ayarlayın.
DTD işlemeyi etkinleştirdiyseniz, öğesini kullanarak XmlSecureResolver erişebileceği kaynakları XmlTextReader kısıtlayabilirsiniz. Ayrıca uygulamanızı, XML işlemenin bellek ve zaman kısıtlaması olacak şekilde tasarlayabilirsiniz. Örneğin, ASP.NET uygulamanızda zaman aşımı sınırlarını yapılandırın.
XML verileri, DTD dosyası gibi dış kaynaklara başvurular içerebilir. Varsayılan olarak dış kaynaklar, kullanıcı kimlik bilgileri olmayan bir XmlUrlResolver nesne kullanılarak çözümlenir. Aşağıdakilerden birini yaparak bunun güvenliğini daha da sağlayabilirsiniz:
özelliğini bir XmlSecureResolver nesne olarak XmlTextReader ayarlayarak öğesinin XmlResolver erişebileceği kaynakları kısıtlayın.
özelliğini
null
olarak ayarlayarak öğesinin XmlReader dış kaynakları açmasına XmlResolver izin verme.
XML verileri çok sayıda öznitelik, ad alanı bildirimi, iç içe öğeler vb. içerebilir ve bu işlem için çok fazla zaman gerektirir. öğesine gönderilen girişin boyutunu sınırlamak için XmlTextReaderözel bir IStream uygulaması oluşturun ve bunu sağlayın XmlTextReader.
ReadValueChunk yöntemi, büyük veri akışlarını işlemek için kullanılabilir. Bu yöntem, değerin tamamı için tek bir dize ayırma yerine aynı anda az sayıda karakter okur.
Varsayılan olarak genel varlıklar genişletilmemiştir. Yöntemini çağırdığınızda ResolveEntity genel varlıklar genişletilir.