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.
Çoğu Create aşırı yükleme, bir settingsXmlReaderSettings nesnesi kabul eden bir parametre içerir. Bu nesneyi kullanarak:
- Nesnede XmlReader hangi özelliklerin destekleneceğini belirtin.
- XmlReaderSettings Nesneyi kullanarak birden çok okuyucu oluşturun. Aynı işlevlere sahip birden çok okuyucu oluşturmak için aynı ayarları kullanabilirsiniz. Alternatif olarak, bir XmlReaderSettings örnekteki ayarları değiştirebilir ve farklı özelliklere sahip yeni bir okuyucu oluşturabilirsiniz.
- Var olan bir XML okuyucuya özellik ekleme. Create yöntemi başka bir XmlReader nesneyi kabul edebilir. Temel XmlReader nesne, kullanıcı tanımlı bir okuyucu, bir XmlTextReader nesne veya ek özellikler eklemek istediğiniz başka bir XmlReader örnek olabilir.
- Yalnızca statik yöntem tarafından oluşturulan nesnelerde XmlReader kullanılabilen Create önerisine daha iyi uyumluluk denetimi ve uyumluluk gibi özelliklerden tam olarak yararlanın.
Uyarı
.NET, XmlReader sınıfının somut uygulamalarını, örneğin XmlTextReader, XmlNodeReader ve XmlValidatingReader sınıflarını içermesine rağmen, XmlReader yöntemini kullanarak Create örnekler oluşturmanızı öneririz.
Varsayılan ayarlar
Create nesnesini kabul etmeyen bir aşırı yükleme kullanırsanız, aşağıdaki varsayılan okuyucu ayarları kullanılır:
| Ayarlar | Varsayılan |
|---|---|
| CheckCharacters | true |
| ConformanceLevel | ConformanceLevel.Document |
| IgnoreComments | false |
| IgnoreProcessingInstructions | false |
| IgnoreWhitespace | false |
| LineNumberOffset | 0 |
| LinePositionOffset | 0 |
| NameTable | null |
| DtdProcessing | Prohibit |
| Schemas | Boş XmlSchemaSet bir nesne |
| ValidationFlags | ProcessIdentityConstraints Etkinleştirildi |
| ValidationType | None |
| XmlResolver | null |
Yaygın senaryolar için ayarlar
Tipik XML okuyucu senaryolarından bazıları için ayarlamanız gereken özellikler aşağıda XmlReaderSettings verilmiştir.
| Gereksinim | Ayarla |
|---|---|
| Veriler iyi biçimlendirilmiş bir XML belgesi olmalıdır. | ConformanceLevel'dan Document'e. |
| Verilerin iyi biçimlendirilmiş bir XML ayrıştırılmış varlığı olması gerekir. | ConformanceLevel'dan Fragment'e. |
| Verilerin DTD ile doğrulanması gerekir. |
DtdProcessing'dan Parse'e ValidationType'dan DTD'e. |
| Veriler bir XML şemasına göre doğrulanmalıdır. |
ValidationType'dan Schema'e Schemas XmlSchemaSet öğesini doğrulama için kullanmak üzere. XmlReaderXML-Data Azaltılmış (XDR) şema doğrulamayı desteklemediğini unutmayın. |
| Veriler satır içi XML şemasına göre doğrulanmalıdır. |
ValidationType'dan Schema'e ValidationFlags'dan ProcessInlineSchema'e. |
| Yazım desteği. |
ValidationType'dan Schema'e Schemas XmlSchemaSet kullanmak için. |
XmlReader XML-Data Azaltılmış (XDR) şema doğrulamayı desteklemez.
Zaman uyumsuz programlama
Eşzamanlı modda, Create yöntemi dosyanın, akışın veya metin okuyucunun arabelleğinden ilk veri parçasını okur. G/Ç işlemi başarısız olursa bu bir özel durum oluşturabilir. Zaman uyumsuz modda, ilk G/Ç işlemi bir okuma işlemiyle gerçekleşir, bu nedenle okuma işlemi gerçekleştiğinde ortaya çıkan özel durumlar fırlatılır.
Güvenlikle ilgili dikkat edilmesi gerekenler
Varsayılan olarak, XmlReader kaynakları açmak için kullanıcı kimlik bilgileri olmayan bir XmlUrlResolver nesne kullanır. Bu, XML okuyucusunun varsayılan olarak kimlik bilgileri gerektirmeyen herhangi bir konuma erişebileceği anlamına gelir. Kaynaklara XmlResolver erişimi denetlemek için özelliğini kullanın:
- XmlResolver öğesini XML okuyucusunun erişebileceği kaynakları kısıtlamak için bir XmlSecureResolver nesnesine ayarlayın veya...
-
XmlResolver öğesini
nullolarak ayarlayın, böylece XML okuyucu herhangi bir dış kaynağı açmasın.
Örnekler
Bu örnek, önemsiz boşlukları silip açıklamaları silip parça düzeyi uyumluluk denetimi gerçekleştiren bir XML okuyucu oluşturur.
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)
Aşağıdaki örnek, varsayılan kimlik bilgilerini kullanarak bir dosyaya erişmek için XmlUrlResolver kullanır.
// 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)
Aşağıdaki kod, bir okuyucu örneğini başka bir okuyucunun içine sarmalar.
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)
Bu örnek, okuyucuları DTD ve XML şema doğrulaması eklemeye zincirler.
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