XmlValidatingReader.XmlResolver Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Kullanılacak. olarak null
ayarlanırsa, dış kaynaklar çözümlenmez.
.NET Framework 1.1 sürümünde, çağıranın bir XmlResolver
belirtebilmesi 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 null
okuyucu, 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 null
ayarlanır. Dış kaynaklar çözümlenmedi.
Şemaları kullanarak doğrularken, özelliğini kullanarak pahalı yükleme işleminden XmlSchemaCollection Schemas kaçınabilirsiniz.