XmlValidatingReader.XmlResolver Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Legt den XmlResolver fest, der zur Auflösung externer DTD- (Dokumenttypdefinitionen) und Schema-Positionsverweise verwendet wird. Der XmlResolver
wird auch zum Behandeln von Import- oder Include-Elementen in XSD-Schemas (XML Schema Definition) verwendet.
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
Eigenschaftswert
Der zu verwendende XmlResolver
. Wenn er auf null
festgelegt ist, werden externe Ressourcen nicht aufgelöst.
In Version 1.1 des .NET Framework muss der Aufrufer vollständig vertrauenswürdig sein, um einen XmlResolver
.
Beispiele
Im folgenden Beispiel wird die XmlResolver
Eigenschaft verwendet, um die anmeldeinformationen anzugeben, die erforderlich sind, um auf die netzwerkierte DTD-Datei zuzugreifen.
// 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
Im Beispiel werden die folgenden Dateien als Eingabe verwendet.
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">
Hinweise
Hinweis
Die XmlValidatingReader Klasse ist in .NET Framework 2.0 veraltet. Sie können eine Überprüfungsinstanz XmlReader mithilfe der XmlReaderSettings Klasse und der Create Methode erstellen. Weitere Informationen finden Sie im Abschnitt Hinweise unter der XmlReader Referenzseite.
Dies XmlResolver
wird verwendet, um alle DTDs, Entitäten oder Schemas zu laden, die zum Abschließen des Überprüfungsprozesses erforderlich sind.
Diese Eigenschaft kann jederzeit festgelegt werden und wirkt sich nach dem nächsten Read Aufruf aus. Wenn diese Eigenschaft auf null
"Festgelegt" festgelegt ist, geht der Leser davon aus, dass der Benutzer nicht daran interessiert ist, externe Verweise aufzulösen. In diesem Fall überprüft der Leser nur für interne Ressourcen, wenn die Ressource vorhanden ist.
Wenn diese Eigenschaft in Version 1.1 von .NET Framework nicht festgelegt ist, bestimmt die Vertrauensstufe der Anwendung das Standardverhalten.
Fully trusted code:
Der Leser verwendet einen Standardwert XmlUrlResolver ohne Benutzeranmeldeinformationen. Wenn die Authentifizierung erforderlich ist, um auf eine Netzwerkressource zuzugreifen, verwenden Sie die XmlResolver
Eigenschaft, um eine XmlResolver
mit den erforderlichen Anmeldeinformationen anzugeben.
Semi-trusted code:
Die XmlResolver
Eigenschaft ist auf null
. Externe Ressourcen werden nicht aufgelöst.
Beim Überprüfen mithilfe von Schemas können Sie den teuren Ladevorgang vermeiden, indem Sie eine XmlSchemaCollection Verwendung der Schemas Eigenschaft bereitstellen.