Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Uyarı
XmlReader öneririz. Yeni işlevlerden yararlanmak için XmlReader.Create yöntemini kullanarak örnekler oluşturmanız.
XmlTextReader sadece ileri yönlü, salt okunur bir XML veri akışına erişim sağlar. Geçerli düğüm, okuyucunun bulunduğu düğüme işaret eder. Okuyucu, okuma yöntemlerinden herhangi birini kullanarak ilerletilir 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ş olduğunu denetleyin
DocumentType
.XmlTextReader
DTD'yi iyi biçimlendirilmişlük açısından denetler, ancak DTD kullanarak doğrulamaz.NodeType'nun
XmlNodeType.EntityReference
olduğu düğümler için, tek bir boşEntityReference
düğümü döndürülür (yani Value özelliğiString.Empty
olur).
Uyarı
DTD'deki varlıkların gerçek bildirimleri düğüm olarak adlandırılır Entity
. Verilerinizde bu düğümlere başvurduğunuzda, bunlara EntityReference
düğüm adı verilir.
- Varsayılan öznitelikleri genişletmez.
XmlTextReader
veri doğrulaması için gereken ek denetimleri gerçekleştirmediğinden, iyi biçimlendirilmiş hızlı bir 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
XML ayrıştırma hatası durumunda XmlException atar. Ö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üvenlikle ilgili dikkat edilmesi gerekenler
Aşağıda XmlTextReader sınıfını kullanırken göz önünde bulundurmanız gerekenler bulunmaktadır.
Fırlatılan 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, XmlSecureResolver öğesini kullanarak XmlTextReader'nin erişebileceği kaynakları 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:
XmlTextReader öğesinin erişebileceği kaynakları, XmlResolver özelliğini bir XmlSecureResolver nesnesi olarak ayarlayarak kısıtlayın.
XmlReader dış kaynakları açmasına izin vermemek için XmlResolver özelliğini
null
olarak ayarlayın.
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. Girişin XmlTextReader öğesine gönderileceği boyutunu sınırlamak için özel bir IStream uygulaması oluşturun ve bu uygulamayı XmlTextReader için kullanın.
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şletilmez. Yöntemini çağırdığınızda ResolveEntity genel varlıklar genişletilir.