XmlDocument.XmlResolver Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta l'oggetto XmlResolver da usare per risolvere risorse esterne.
public:
virtual property System::Xml::XmlResolver ^ XmlResolver { void set(System::Xml::XmlResolver ^ value); };
public virtual System.Xml.XmlResolver XmlResolver { set; }
public virtual System.Xml.XmlResolver? XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Overridable Property XmlResolver As XmlResolver
Valore della proprietà
Oggetto XmlResolver
da usare.
Nella versione 1.1 di .NET Framework, per specificare XmlResolver
, è necessario che il chiamante sia completamente attendibile.
Eccezioni
Questa proprietà è impostata su null
e viene rilevata un'entità o DTD esterna.
Esempio
Nell'esempio seguente viene caricato un documento XML che include un riferimento a un file DTD. La XmlResolver
proprietà viene utilizzata per impostare le credenziali necessarie per accedere alla risorsa di rete.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Net;
int main()
{
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = CredentialCache::DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument^ doc = gcnew XmlDocument;
doc->XmlResolver = resolver; // Set the resolver.
doc->Load( "book5.xml" );
// Display the entity replacement text which is pulled from the DTD file.
Console::WriteLine( doc->DocumentElement->LastChild->InnerText );
}
using System;
using System.IO;
using System.Xml;
using System.Net;
public class Sample {
public static void Main() {
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.XmlResolver = resolver; // Set the resolver.
doc.Load("book5.xml");
// Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText);
}
} // End class
Imports System.IO
Imports System.Xml
Imports System.Net
public class Sample
public shared sub Main()
' Supply the credentials necessary access the DTD file stored on the network.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Create and load the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.XmlResolver = resolver ' Set the resolver.
doc.Load("book5.xml")
' Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText)
end sub
end class
Nell'esempio vengono usati i file di dati seguenti come input.
book5.xml
<!DOCTYPE book SYSTEM 'http://myServer/data/books.dtd'>
<book ISBN = '1-861001-57-5'>
<title>Oberon's Legacy</title>
<price>19.95</price>
<misc>&h;</misc>
</book>
books.dtd
<!ELEMENT book (title,price,misc)>
<!ATTLIST book
genre CDATA "novel"
ISBN CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT misc (#PCDATA)>
<!ENTITY h "hardcover">
<!ENTITY p "paperback">
Commenti
Può XmlResolver
essere usato per caricare DTD o espandere i riferimenti alle entità. Usando la XmlResolver.Credentials proprietà , è possibile impostare le credenziali in XmlResolver
per accedere alle risorse archiviate in una risorsa di rete sicura.
Se il documento non è stato caricato utilizzando un XmlReader oggetto , ovvero se è stato caricato usando un flusso, un file e così via, viene sempre usato in
XmlResolver
.XmlDocument
Se il documento è stato caricato con un XmlTextReader, il sistema di risoluzione in
XmlTextReader
viene usato per risolvere eventuali riferimenti DTD nel nodo DocumentType. Il resolver inXmlDocument
viene usato per espandere i riferimenti a qualsiasi entità.Se il documento è stato caricato con un XmlValidatingReader, il sistema di risoluzione in
XmlDocument
non viene mai utilizzato.Se il documento è stato caricato con una classe che estende
XmlReader
e nonXmlReader
può risolvere le entità (CanResolveEntity restituiscefalse
), viene usato inXmlResolver
XmlDocument
per risolvere eventuali riferimenti nel nodo DocumentType e per espandere eventuali riferimenti a entità.
Nota
Se l'oggetto XmlDocument
viene caricato utilizzando un XmlResolver
XmlReader oggetto impostato su di esso, l'oggetto in XmlResolver
XmlReader
non viene memorizzato nella cache da dopo Load il XmlDocument
completamento.
Nella versione 1.1 di the.NET Framework, se questa proprietà non è impostata, il livello di attendibilità dell'applicazione determina il comportamento predefinito.
Fully trusted code:
Il documento usa un valore predefinito XmlUrlResolver senza credenziali utente. Se l'autenticazione è necessaria per accedere a una risorsa di rete, usare la XmlResolver
proprietà per specificare un XmlResolver
oggetto con le credenziali necessarie.
Semi-trusted code:
La XmlResolver
proprietà è impostata su null
. Le risorse esterne non vengono risolte.
Per altre informazioni sulla sicurezza e sulla XmlResolver
proprietà , vedere Risoluzione delle risorse esterne.
Questa proprietà è un'estensione Microsoft di Document Object Model (DOM).