XmlValidatingReader.XmlResolver 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
외부 DTD(Document Type Definition) 및 스키마 위치 참조를 확인하는 데 사용되는 XmlResolver를 설정합니다. 또한 XmlResolver
는 XSD(XML 스키마 정의 언어) 스키마에 있는 포함 요소 또는 가져오기 요소를 처리하는 데도 사용됩니다.
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
속성 값
사용할 XmlResolver
입니다. null
로 설정되면 외부 리소스는 확인되지 않습니다.
.NET Framework 버전 1.1에서 호출자는 완전히 신뢰할 수 있어야 합니다XmlResolver
.
예제
다음 예제에서는 이 속성을 사용하여 XmlResolver
네트워크로 연결된 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
이 예제에서는 다음 파일을 입력으로 사용합니다.
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">
설명
참고
클래스는 XmlValidatingReader .NET Framework 2.0에서 사용되지 않습니다. 클래스 및 Create 메서드를 사용하여 유효성 XmlReader 검사 인스턴스를 XmlReaderSettings 만들 수 있습니다. 자세한 내용은 XmlReader 참조 페이지의 설명 섹션을 참조하세요.
유효성 XmlResolver
검사 프로세스를 완료하는 데 필요한 모든 DTD, 엔터티 또는 스키마를 로드하는 데 사용됩니다.
이 속성은 언제든지 설정할 수 있으며 다음 Read 호출 후에 영향을 받습니다. 이 속성을 설정 null
하면 판독기는 사용자가 외부 참조를 확인하는 데 관심이 없다고 가정합니다. 이 경우 판독기는 리소스가 있는 경우에만 내부 리소스에 대해 유효성을 검사합니다.
.NET Framework 버전 1.1에서 이 속성이 설정되지 않은 경우 애플리케이션의 신뢰 수준이 기본 동작을 결정합니다.
Fully trusted code:
판독기는 사용자 자격 증명이 없는 기본값 XmlUrlResolver 을 사용합니다. 네트워크 리소스에 액세스하는 데 인증이 필요한 경우 속성을 사용하여 XmlResolver
필요한 자격 증명을 XmlResolver
사용하여 지정합니다.
Semi-trusted code:
속성이 XmlResolver
.로 설정됩니다 null
. 외부 리소스는 확인되지 않습니다.
스키마를 사용하여 유효성을 검사하는 경우 사용 속성을 제공하여 XmlSchemaCollection 비용이 많이 드는 로드 프로세스를 방지할 Schemas 수 있습니다.