Freigeben über


XmlResolver-Klasse

Löst externe XML-Ressourcen auf, die durch einen URI (Uniform Resource Identifier) benannt werden.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public MustInherit Class XmlResolver
'Usage
Dim instance As XmlResolver
public abstract class XmlResolver
public ref class XmlResolver abstract
public abstract class XmlResolver
public abstract class XmlResolver

Hinweise

Mithilfe von XmlResolver werden externe XML-Ressourcen wie Entitäten, DTDs (Document Type Definitions) oder Schemas aufgelöst. Darüber hinaus werden damit auch Include- und Import-Elemente in XSL-Stylesheets (Extensible StyleSheet Language) oder XSD-Schemas (XML Schema Definition) verarbeitet.

XmlUrlResolver ist eine konkrete Implementierung von XmlResolver und stellt den Standardresolver für alle Klassen im System.Xml-Namespace dar. Sie können auch eigene Resolver erstellen.

Sicherheitsüberlegungen

Sie sollten die folgenden Aspekte berücksichtigen, wenn Sie die XmlResolver-Klasse verwenden.

  • XmlResolver-Objekte können vertrauliche Informationen enthalten, z. B. Benutzeranmeldeinformationen. Gehen Sie beim Zwischenspeichern von XmlResolver-Objekten vorsichtig vor, und übergeben Sie das XmlResolver-Objekt nur an vertrauenswürdige Komponenten.

  • Wenn Sie eine Klasseneigenschaft entwerfen, die die XmlResolver-Klasse verwendet, sollte die Eigenschaft als lesegeschützte Eigenschaft definiert werden. Die Eigenschaft kann verwendet werden, um den zu verwendenden XmlResolver anzugeben, sie kann aber nicht für die Rückgabe eines XmlResolver-Objekts verwendet werden.

  • Wenn die Anwendung XmlResolver-Objekte aus nicht vertrauenswürdigem Code akzeptiert, können Sie nicht davon ausgehen, dass der an die GetEntity-Methode übergebene URI mit dem von der ResolveUri-Methode zurückgegebenen übereinstimmt. Von der XmlResolver-Klasse abgeleitete Klassen können die GetEntity-Methode überschreiben und Daten zurückgeben, die sich vom Inhalt des ursprünglichen URI unterscheiden.

  • In der Anwendung kann die Gefahr von Denial-of-Service-Angriffen für die GetEntity-Methode im Arbeitsspeicher verringert werden, indem Sie einen als Wrapper implementierten IStream implementieren, der die Anzahl von gelesenen Bytes beschränkt. Dies hilft dabei, Situationen abzuwenden, in denen böswilliger Code versucht, einen unendlichen Stream von Bytes an die GetEntity-Methode zu übergeben.

Beispiel

Im folgenden Beispiel wird ein XmlReader erstellt, der einen XmlUrlResolver mit Standardanmeldeinformationen verwendet.

' Create an XmlUrlResolver with default credentials.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials

' Create the reader.
Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver
Dim reader As XmlReader = XmlReader.Create("https://serverName/data/books.xml")
// Create an XmlUrlResolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create("https://serverName/data/books.xml");
   

Vererbungshierarchie

System.Object
  System.Xml.XmlResolver
     System.Xml.XmlSecureResolver
     System.Xml.XmlUrlResolver

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlResolver-Member
System.Xml-Namespace

Weitere Ressourcen

XML-Dokumente und XML-Daten
Sicherheit und System.Xml-Anwendungen