XmlValidatingReader.XmlResolver Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
XmlResolver Ustawia używane do rozpoznawania odwołań typu dokumentu zewnętrznego (DTD) i lokalizacji schematu. Element XmlResolver
jest również używany do obsługi dowolnego importu lub dołączania elementów znalezionych w schematach języka definicji schematu XML (XSD).
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
Wartość właściwości
Element XmlResolver
do użycia. Jeśli ustawiono wartość null
, zasoby zewnętrzne nie zostaną rozwiązane.
W wersji 1.1 .NET Framework obiekt wywołujący musi być w pełni zaufany, aby określić element XmlResolver
.
Przykłady
W poniższym przykładzie użyto XmlResolver
właściwości , aby określić poświadczenia niezbędne do uzyskania dostępu do sieciowego pliku DTD.
// 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
W przykładzie użyto następujących plików jako danych wejściowych.
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">
Uwagi
Uwaga
Klasa XmlValidatingReader jest przestarzała w .NET Framework 2.0. Wystąpienie sprawdzania poprawności XmlReader można utworzyć przy użyciu XmlReaderSettings klasy i Create metody . Aby uzyskać więcej informacji, zobacz sekcję Uwagi na stronie referencyjnej XmlReader .
Element XmlResolver
służy do ładowania wszelkich dtD, jednostek lub schematów potrzebnych do ukończenia procesu weryfikacji.
Tę właściwość można ustawić w dowolnym momencie i wpływać po następnym Read wywołaniu. Jeśli ta właściwość jest ustawiona na null
wartość , czytelnik zakłada, że użytkownik nie jest zainteresowany rozpoznawaniem odwołań zewnętrznych. W takim przypadku czytelnik sprawdza poprawność tylko względem zasobów wewnętrznych, jeśli zasób jest obecny.
Jeśli ta właściwość nie jest ustawiona w wersji 1.1 .NET Framework, poziom zaufania aplikacji określa domyślne zachowanie.
Fully trusted code:
Czytelnik używa wartości domyślnej XmlUrlResolver bez poświadczeń użytkownika. Jeśli wymagane jest uwierzytelnienie w celu uzyskania dostępu do zasobu sieciowego, użyj XmlResolver
właściwości , aby określić element XmlResolver
z wymaganymi poświadczeniami.
Semi-trusted code:
Właściwość jest ustawiona XmlResolver
na null
wartość . Zasoby zewnętrzne nie są rozwiązywane.
Podczas walidacji przy użyciu schematów można uniknąć kosztownego procesu ładowania, udostępniając XmlSchemaCollection właściwość Schemas .