XmlValidatingReader.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í.
XmlResolver Nastaví použité pro překlad definice typu externího dokumentu (DTD) a odkazů na umístění schématu. Používá se XmlResolver
také ke zpracování všech prvků importu nebo zahrnutí nalezených ve schématech XSD (XML Schema Definition Language).
public:
property System::Xml::XmlResolver ^ XmlResolver { void set(System::Xml::XmlResolver ^ value); };
public System.Xml.XmlResolver XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Property XmlResolver As XmlResolver
Hodnota vlastnosti
Použití XmlResolver
. Pokud je nastavená hodnota null
, externí prostředky se nevyřeší.
Ve verzi 1.1 rozhraní .NET Framework musí být volající plně důvěryhodný, aby zadal XmlResolver
.
Příklady
Následující příklad používá XmlResolver
vlastnost k určení přihlašovacích údajů potřebných pro přístup k síťovému souboru DTD.
// Create the reader. ->
XmlTextReader^ txtreader = gcnew XmlTextReader( "book5.xml" );
XmlValidatingReader^ reader = gcnew XmlValidatingReader( txtreader );
txtreader->WhitespaceHandling = WhitespaceHandling::None;
// Set the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
reader->XmlResolver = resolver;
// Display each of the element nodes.
while ( reader->Read() )
{
switch ( reader->NodeType )
{
case XmlNodeType::Element:
Console::Write( "< {0}>", reader->Name );
break;
case XmlNodeType::Text:
Console::Write( reader->Value );
break;
case XmlNodeType::DocumentType:
Console::Write( "<!DOCTYPE {0} [ {1}]", reader->Name, reader->Value );
break;
case XmlNodeType::EntityReference:
Console::Write( reader->Name );
break;
case XmlNodeType::EndElement:
Console::Write( "</ {0}>", reader->Name );
break;
}
}
// Close the reader.
reader->Close();
}
// Create the reader.
XmlTextReader txtreader = new XmlTextReader("book5.xml");
XmlValidatingReader reader = new XmlValidatingReader(txtreader);
txtreader.WhitespaceHandling = WhitespaceHandling.None;
// Set the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
reader.XmlResolver = resolver;
// Display each of the element nodes.
while (reader.Read()){
switch (reader.NodeType){
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.DocumentType:
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.Write(reader.Name);
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
' Create the reader.
Dim txtreader as XmlTextReader = new XmlTextReader("book5.xml")
Dim reader as XmlValidatingReader = new XmlValidatingReader(txtreader)
txtreader.WhitespaceHandling = WhitespaceHandling.None
' Set the credentials necessary to access the DTD file stored on the network.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
reader.XmlResolver = resolver
' Display each of the element nodes.
while (reader.Read())
select case reader.NodeType
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name)
case XmlNodeType.Text:
Console.Write(reader.Value)
case XmlNodeType.DocumentType:
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
case XmlNodeType.EntityReference:
Console.Write(reader.Name)
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name)
end select
end while
V příkladu se jako vstup používají následující soubory.
book5.xml
<!DOCTYPE book SYSTEM 'http://myServer/DTDs/books.dtd'>
<book ISBN = '1-861001-57-5'>
<title>Pride And Prejudice</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
Poznámka
Třída XmlValidatingReader je zastaralá v rozhraní .NET Framework 2.0. Ověřování instance můžete vytvořit XmlReader pomocí XmlReaderSettings třídy a Create metody. Další informace najdete v části Poznámky referenční XmlReader stránky.
Slouží XmlResolver
k načtení všech DTD, entit nebo schémat potřebných k dokončení procesu ověřování.
Tuto vlastnost lze kdykoli nastavit a po dalším Read volání bude mít vliv. Pokud je tato vlastnost nastavena na null
, čtenář předpokládá, že uživatel nemá zájem o překlad externích odkazů. V takovém případě čtenář ověří pouze interní prostředky, pokud je prostředek k dispozici.
Ve verzi 1.1 rozhraní .NET Framework , pokud tato vlastnost není nastavena, úroveň důvěryhodnosti aplikace určuje výchozí chování.
Fully trusted code:
Čtenář používá výchozí XmlUrlResolver nastavení bez přihlašovacích údajů uživatele. Pokud je pro přístup k síťovému prostředku vyžadováno 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 nastavena na null
. Externí prostředky se nevyřeší.
Při ověřování pomocí schémat se můžete vyhnout nákladnému procesu načítání poskytnutím XmlSchemaCollection Schemas vlastnosti.