XmlReaderSettings Klass

Definition

Anger en uppsättning funktioner som ska stödjas på objektet XmlReader som skapats av Create metoden.

public ref class XmlReaderSettings sealed
public sealed class XmlReaderSettings
type XmlReaderSettings = class
Public NotInheritable Class XmlReaderSettings
Arv
XmlReaderSettings

Exempel

I följande exempel skapas en XmlReader som använder en XmlUrlResolver med nödvändiga autentiseringsuppgifter.

// Create an XmlUrlResolver with the credentials necessary to access the Web server.
var resolver = new XmlUrlResolver();
var myCred = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
resolver.Credentials = myCred;

var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred

Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver

' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)

Kommentarer

Du använder Create metoden för att hämta XmlReader instanser. Den här metoden använder XmlReaderSettings klassen för att ange vilka funktioner som ska implementeras i objektet som XmlReader skapar.

Se avsnitten Kommentarer på referenssidorna XmlReader och Create för information om vilka inställningar som ska användas för efterlevnadskontroller, validering och andra vanliga scenarier. XmlReaderSettings() Se konstruktorn för en lista över standardinställningar.

Säkerhetsfrågor

Tänk på följande när du använder XmlReaderSettings klassen.

  • Valideringsflaggor ProcessInlineSchema och ProcessSchemaLocation för ett XmlReaderSettings objekt anges inte som standard. När dessa flaggor anges används objektet XmlResolverXmlReaderSettings för att lösa schema platser som påträffas i instansdokumentet i XmlReader. Om objektet XmlResolver är nulllöses inte schemaplatserna även om ProcessInlineSchema valideringsflaggorna och ProcessSchemaLocation har angetts.

  • Scheman som läggs till under valideringen lägger till nya typer och kan ändra valideringsresultatet för dokumentet som verifieras. Därför bör externa scheman endast hämtas från betrodda källor.

  • Valideringsfelmeddelanden kan exponera information om känslig innehållsmodell. Verifieringsfel och varningsmeddelanden hanteras med hjälp av ombudet ValidationEventHandler eller exponeras som en XmlSchemaValidationException om ingen händelsehanterare tillhandahålls till XmlReaderSettings objektet (valideringsvarningar orsakar inte att ett XmlSchemaValidationException utlöses). Den här innehållsmodellinformationen bör inte exponeras i obetrodda scenarier. Valideringsvarningsmeddelanden ignoreras som standard och kan rapporteras genom att flaggan anges ReportValidationWarnings .

  • Egenskapen SourceUri för en XmlSchemaValidationException returnerar URI-sökvägen till schemafilen som orsakade undantaget. Egenskapen SourceUri ska inte exponeras i ej betrodda scenarier.

  • Att inaktivera ProcessIdentityConstraints flaggan (aktiverad som standard) rekommenderas när du validerar, ej betrodda, stora XML-dokument i scenarier med hög tillgänglighet mot ett schema med identitetsbegränsningar över en stor del av dokumentet.

  • XmlReaderSettings objekt kan innehålla känslig information, till exempel autentiseringsuppgifter för användare. Du bör vara försiktig när du cachelagr XmlReaderSettings objekt eller när du skickar objektet XmlReaderSettings från en komponent till en annan.

  • DTD-bearbetning är inaktiverad som standard. Om du aktiverar DTD-bearbetning måste du vara medveten om att inkludera DTD:er från ej betrodda källor och möjliga överbelastningsattacker. Använd ThrowingResolver för att begränsa de resurser som XmlReader kan komma åt.

  • Acceptera inte stödkomponenter, till exempel NameTable, XmlNamespaceManageroch XmlResolver objekt, från en ej betrodd källa.

  • Minnesanvändning för ett program som använder XmlReader kan ha en korrelation till storleken på det tolkade XML-dokumentet. En form av överbelastningsattack är när alltför stora XML-dokument skickas för att parsas. Du kan begränsa storleken på dokumentet som kan parsas genom att ange MaxCharactersInDocument egenskapen och sedan begränsa antalet tecken som uppstår när entiteter expanderas genom att ange MaxCharactersFromEntities egenskapen.

Konstruktorer

Name Description
XmlReaderSettings()

Initierar en ny instans av XmlReaderSettings klassen.

XmlReaderSettings(XmlResolver)
Föråldrad.

Initierar en ny instans av XmlReaderSettings klassen.

Egenskaper

Name Description
Async

Hämtar eller anger om asynkrona XmlReader metoder kan användas på en viss XmlReader instans.

CheckCharacters

Hämtar eller anger ett värde som anger om teckenkontrollen ska utföras.

CloseInput

Hämtar eller anger ett värde som anger om den underliggande strömmen eller TextReader ska stängas när läsaren stängs.

ConformanceLevel

Hämtar eller anger den nivå av överensstämmelse som XmlReader ska uppfyllas.

DtdProcessing

Hämtar eller anger ett värde som avgör bearbetningen av DTD:er.

IgnoreComments

Hämtar eller anger ett värde som anger om kommentarer ska ignoreras.

IgnoreProcessingInstructions

Hämtar eller anger ett värde som anger om du vill ignorera bearbetningsinstruktioner.

IgnoreWhitespace

Hämtar eller anger ett värde som anger om du vill ignorera obetydligt tomt utrymme.

LineNumberOffset

Hämtar eller anger radnummerförskjutning för XmlReader objektet.

LinePositionOffset

Hämtar eller anger radpositionsförskjutning för XmlReader objektet.

MaxCharactersFromEntities

Hämtar eller anger ett värde som anger det maximala tillåtna antalet tecken i ett dokument som är resultatet av att expandera entiteter.

MaxCharactersInDocument

Hämtar eller anger ett värde som anger det maximala tillåtna antalet tecken i ett XML-dokument. Ett nollvärde (0) innebär inga gränser för XML-dokumentets storlek. Ett värde som inte är noll anger den maximala storleken i tecken.

NameTable

Hämtar eller anger den XmlNameTable som används för atomiserade strängjämförelser.

ProhibitDtd
Föråldrad.
Föråldrad.

Hämtar eller anger ett värde som anger om du vill förbjuda bearbetning av dokumenttypsdefinition (DTD). Den här egenskapen är föråldrad. Använd DtdProcessing i stället.

Schemas

Hämtar eller anger vilken som XmlSchemaSet ska användas när schemavalidering utförs.

ValidationFlags

Hämtar eller anger ett värde som anger schemavalideringsinställningarna. Den här inställningen gäller för XmlReader objekt som validerar scheman (ValidationType egenskapen är inställd på ValidationType.Schema).

ValidationType

Hämtar eller anger ett värde som anger om XmlReader ska utföra validering eller typtilldelning vid läsning.

XmlResolver

Anger den XmlResolver som används för att komma åt externa dokument.

Metoder

Name Description
Clone()

Skapar en kopia av instansen XmlReaderSettings .

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Reset()

Återställer medlemmarna i inställningsklassen till deras standardvärden.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Händelser

Name Description
ValidationEventHandler

Inträffar när läsaren stöter på valideringsfel.

Gäller för

Se även