XmlDocument.XmlResolver Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastaví pro XmlResolver použití k překladu externích prostředků.
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
Hodnota vlastnosti
Příkaz XmlResolver
, který se má použít.
Ve verzi 1.1 the.NET Framework musí být volající plně důvěryhodný, aby bylo možné zadat XmlResolver
.
Výjimky
Tato vlastnost je nastavena na null
a externí DTD nebo entita je nalezena.
Příklady
Následující příklad načte dokument XML, který obsahuje odkaz na soubor DTD. Vlastnost XmlResolver
slouží k nastavení přihlašovacích údajů potřebných pro přístup k síťovému prostředku.
#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
V příkladu se jako vstup používají následující datové soubory.
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">
Poznámky
Dá XmlResolver
se použít k načtení DTD nebo rozbalení odkazů na entity.
XmlResolver.Credentials Pomocí vlastnosti můžete nastavit přihlašovací údaje pro XmlResolver
přístup k prostředkům uloženým v zabezpečeném síťovém prostředku.
Pokud se dokument nenačetl pomocí objektu XmlReader (tj. pokud byl načten pomocí streamu, souboru atd.),
XmlResolver
použije se vždy soubor v souboruXmlDocument
.Pokud byl dokument načten s XmlTextReader, překladač na objektu
XmlTextReader
slouží k překladu všech odkazů DTD v uzlu DocumentType. Překladač na objektuXmlDocument
slouží k rozbalení všech odkazů na entity.Pokud byl dokument načten s XmlValidatingReader, překladač na objektu
XmlDocument
se nikdy nepoužije.Pokud byl dokument načten s třídou, která rozšiřuje
XmlReader
aXmlReader
nelze přeložit entity (CanResolveEntity vrátífalse
),XmlResolver
použije se příkaz na kartě k překladu všech odkazů v uzlu DocumentType a k rozbalení všech odkazů naXmlDocument
entity.
Poznámka
Pokud se soubor XmlDocument
načte pomocí objektuXmlReader, který měl nastavenou XmlResolver
hodnotu, XmlResolver
není objekt Load po XmlReader
dokončení uložen v XmlDocument
mezipaměti.
Ve verzi 1.1 the.NET Framework, pokud tato vlastnost není nastavena, úroveň důvěryhodnosti aplikace určuje výchozí chování.
Fully trusted code:
Dokument používá výchozí XmlUrlResolver nastavení bez přihlašovacích údajů uživatele. Pokud se pro přístup k síťovému prostředku vyžaduje ověřování, použijte XmlResolver
vlastnost k zadání XmlResolver
s potřebnými přihlašovacími údaji.
Semi-trusted code:
Vlastnost XmlResolver
je nastavená na null
. Externí prostředky se nepřeloží.
Další informace o zabezpečení a vlastnosti najdete v XmlResolver
tématu Řešení externích prostředků.
Tato vlastnost je Microsoft rozšíření modelu DOM (Document Object Model).