Freigeben über


XmlValidatingReader.XmlResolver Eigenschaft

Definition

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

XmlResolver

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.

Gilt für

Siehe auch