XmlValidatingReader.XmlResolver Özellik

Tanım

XmlResolver Dış belge türü tanımını (DTD) ve şema konumu başvurularını çözümlemek için kullanılan öğesini ayarlar. , XmlResolver XML Şema tanım dili (XSD) şemalarında bulunan tüm içeri aktarmaları işlemek veya öğeleri dahil etmek için de kullanılır.

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

Özellik Değeri

XmlResolver

XmlResolver Kullanılacak. olarak nullayarlanırsa, dış kaynaklar çözümlenmez.

.NET Framework 1.1 sürümünde, çağıranın bir XmlResolverbelirtebilmesi için tam olarak güvenilir olması gerekir.

Örnekler

Aşağıdaki örnek, ağa bağlı DTD dosyasına erişmek için gereken kimlik bilgilerini belirtmek için özelliğini kullanır XmlResolver .

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

Örnekte giriş olarak aşağıdaki dosyalar kullanılır.

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

Açıklamalar

Not

sınıf XmlValidatingReader .NET Framework 2.0'da kullanımdan kaldırıldı. sınıfını ve Create yöntemini kullanarak XmlReaderSettings bir doğrulama XmlReader örneği oluşturabilirsiniz. Daha fazla bilgi için başvuru sayfasının Açıklamalar bölümüne XmlReader bakın.

XmlResolver, doğrulama işlemini tamamlamak için gereken tüm DTD'leri, varlıkları veya şemaları yüklemek için kullanılır.

Bu özellik herhangi bir zamanda ayarlanabilir ve sonraki Read çağrıdan sonra etkilenebilir. Bu özellik olarak ayarlanırsa nullokuyucu, kullanıcının dış başvuruları çözümlemekle ilgilenmediğini varsayar. Bu durumda, okuyucu yalnızca kaynak varsa iç kaynaklara karşı doğrular.

.NET Framework sürüm 1.1'de, bu özellik ayarlanmadıysa, uygulamanın güven düzeyi varsayılan davranışı belirler.

Fully trusted code: Okuyucu, kullanıcı kimlik bilgileri olmadan varsayılan XmlUrlResolver bir kimlik bilgisi kullanır. Bir ağ kaynağına erişmek için kimlik doğrulaması gerekiyorsa, gerekli kimlik bilgileriyle belirtmek XmlResolver için özelliğini kullanınXmlResolver.

Semi-trusted code:``XmlResolver özelliği olarak nullayarlanır. Dış kaynaklar çözümlenmedi.

Şemaları kullanarak doğrularken, özelliğini kullanarak pahalı yükleme işleminden XmlSchemaCollection Schemas kaçınabilirsiniz.

Şunlara uygulanır

Ayrıca bkz.