XmlValidatingReader.XmlResolver Propriété

Définition

Définit le XmlResolver utilisé pour la résolution des références d'emplacement des définitions de type de document (DTD) et schémas externes. XmlResolver permet aussi de gérer les éléments import ou include présents dans les schémas en langage XSD (XML Schema Definition).

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

Valeur de propriété

XmlResolver

XmlResolver à utiliser. Si la valeur est null, les ressources externes ne sont pas résolues.

Dans la version 1.1 du .NET Framework, l’appelant doit être entièrement approuvé pour spécifier un XmlResolver.

Exemples

L’exemple suivant utilise la XmlResolver propriété pour spécifier les informations d’identification nécessaires pour accéder au fichier DTD en réseau.

   // 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           

L’exemple utilise les fichiers suivants comme entrée.

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">

Remarques

Notes

La XmlValidatingReader classe est obsolète dans .NET Framework 2.0. Vous pouvez créer une instance de validation à XmlReader l’aide de la XmlReaderSettings classe et de la Create méthode. Pour plus d'informations, consultez la section Notes de la page de référence XmlReader.

Il XmlResolver est utilisé pour charger tous les DTD, entités ou schémas nécessaires pour terminer le processus de validation.

Cette propriété peut être définie à tout moment et prend effet après l’appel suivant Read . Si cette propriété est définie nullsur , le lecteur suppose que l’utilisateur n’est pas intéressé par la résolution des références externes. Dans ce cas, le lecteur valide uniquement par rapport aux ressources internes, si la ressource est présente.

Dans la version 1.1 de .NET Framework, si cette propriété n’est pas définie, le niveau d’approbation de l’application détermine le comportement par défaut.

Fully trusted code: Le lecteur utilise une valeur par défaut XmlUrlResolver sans informations d’identification utilisateur. Si l’authentification est requise pour accéder à une ressource réseau, utilisez la XmlResolver propriété pour spécifier une XmlResolver avec les informations d’identification nécessaires.

Semi-trusted code: La XmlResolver propriété est définie nullsur . Les ressources externes ne sont pas résolues.

Lors de la validation à l’aide de schémas, vous pouvez éviter le processus de chargement coûteux en fournissant une XmlSchemaCollection propriété à l’aide de la Schemas propriété.

S’applique à

Voir aussi