Assembly: System.Xml (in system.xml.dll)
Public MustInherit Class XmlResolver
Dim instance As XmlResolver
public abstract class XmlResolver
public ref class XmlResolver abstract
public abstract class XmlResolver
public abstract class XmlResolver
L'oggetto XmlResolver viene utilizzato per risolvere risorse XML esterne, quali entità, DTD (Document Type Definition) o schemi, nonché per elaborare elementi di inclusione e importazioni presenti in fogli di stile XSL (Extensible StyleSheet Language) o schemi XML (XSD, XML Schema Definition).
L'oggetto XmlUrlResolver è un'implementazione concreta di XmlResolver e corrisponde al sistema di risoluzione predefinito per tutte le classi dello spazio dei nomi System.Xml. È anche possibile creare un sistema di risoluzione personalizzato.
Considerazioni sulla protezione
Quando si utilizza la classe XmlResolver è opportuno tenere presenti gli elementi riportati di seguito.
-
Gli oggetti XmlResolver possono contenere informazioni riservate, ad esempio le credenziali dell'utente. Quando vengono memorizzati nella cache oggetti XmlResolver, è opportuno prestare la massima attenzione ed evitare di passare l'oggetto XmlResolver a un componente non attendibile.
-
Se si progetta una proprietà di classe che utilizza la classe XmlResolver, la proprietà deve essere definita come proprietà in sola lettura. La proprietà può essere utilizzata per specificare l'oggetto XmlResolver da utilizzare, ma non per restituire un oggetto XmlResolver.
-
Se l'applicazione in uso accetta oggetti XmlResolver da codice non attendibile, l'URI passato nel metodo GetEntity non può essere lo stesso restituito dal metodo ResolveUri. Le classi derivate dalla classe XmlResolver possono sottoporre a override il metodo GetEntity e restituire dati diversi da quelli contenuti nell'URI originale.
-
L'applicazione può ridurre i rischi di "Denial of Service" della memoria al metodo GetEntity implementando un flusso IStream che limiti il numero dei byte letti. In questo modo, è possibile evitare i tentativi di passaggio di un flusso infinito di byte al metodo GetEntity da parte di codice dannoso.
Nell'esempio riportato di seguito viene creata una classe XmlReader che utilizza una classe XmlUrlResolver con credenziali predefinite.
' 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("http://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("http://serverName/data/books.xml");
System.Xml.XmlResolver
System.Xml.XmlSecureResolver
System.Xml.XmlUrlResolver
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
.NET Framework
Supportato in: 2.0 1.1 1.0.NET Compact Framework
Supportato in: 2.0 1.0Riferimenti
Membri XmlResolverSpazio dei nomi System.Xml
Altre risorse
Documenti e dati XMLProtezione e applicazioni System.Xml