Aracılığıyla paylaş


System.Xml.XmlReader.Create yöntemleri

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

Aşırı yüklemelerin Create çoğu, nesneyi kabul eden bir settingsXmlReaderSettings 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 alınan XmlReader nesne kullanıcı tanımlı bir okuyucu, nesne XmlTextReader veya ek özellikler eklemek istediğiniz başka bir XmlReader örnek olabilir.
  • Yalnızca statik Create yöntem tarafından oluşturulan nesnelerde XmlReader kullanılabilen XML 1.0 (dördüncü sürüm) önerisine daha iyi uyumluluk denetimi ve uyumluluk gibi özelliklerden tam olarak yararlanın.

Not

.NET , ve XmlValidatingReader sınıfları gibi XmlTextReaderXmlNodeReadersınıfın XmlReader somut uygulamalarını içerse de yöntemini kullanarak Create örnekler oluşturmanızı XmlReader öneririz.

Varsayılan ayarlar

Bir nesneyi kabul etmeyen bir CreateXmlReaderSettings aşırı yükleme kullanırsanız, aşağıdaki varsayılan okuyucu ayarları kullanılır:

Ayar 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 Etkin
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 olarak belirleyin Document.
Verilerin iyi biçimlendirilmiş bir XML ayrıştırılmış varlığı olması gerekir. ConformanceLevel olarak belirleyin Fragment.
Verilerin DTD ile doğrulanması gerekir. DtdProcessing - Parse
ValidationType olarak belirleyin DTD.
Veriler bir XML şemasına göre doğrulanmalıdır. ValidationType - Schema
SchemasXmlSchemaSet öğesini seçin. XmlReader XML-Data Reduced (XDR) şema doğrulamayı desteklemediğini unutmayın.
Veriler satır içi XML şemasına göre doğrulanmalıdır. ValidationType - Schema
ValidationFlags olarak belirleyin ProcessInlineSchema.
Destek yazın. ValidationType - Schema
SchemasXmlSchemaSet öğesini seçin.

XmlReader XML-Data Reduced (XDR) şema doğrulamayı desteklemez.

Zaman uyumsuz programlama

Zaman uyumlu modda, yöntem dosyanın, Create akışın veya metin okuyucunun arabelleğinden ilk veri öbeklerini 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 oluşur.

Güvenlik konuları

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:

  • XML okuyucusunun erişebileceği kaynakları kısıtlamak için bir XmlSecureResolver nesneye ayarlayın XmlResolver veya...
  • null XML okuyucunun dış kaynakları açmasını önlemek için olarak ayarlayınXmlResolver.

Ö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, XmlUrlResolver bir dosyaya erişmek için varsayılan kimlik bilgilerine sahip bir 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