다음을 통해 공유


XmlResolver 클래스

URI(Uniform Resource Identifier)로 명명된 외부 XML 리소스를 확인합니다.

네임스페이스: System.Xml
어셈블리: System.Xml(system.xml.dll)

구문

‘선언
Public MustInherit Class XmlResolver
‘사용 방법
Dim instance As XmlResolver
public abstract class XmlResolver
public ref class XmlResolver abstract
public abstract class XmlResolver
public abstract class XmlResolver

설명

XmlResolver는 엔터티, DTD(Document Type Definition) 또는 스키마 같은 외부 XML 리소스를 확인하는 데 사용되며 XSL(Extensible StyleSheet Language) 스타일시트나 XSD(XML 스키마 정의) 언어 스키마에 있는 include 및 import 요소를 처리하는 데도 사용됩니다.

XmlUrlResolverXmlResolver가 구체적으로 구현된 형태로, System.Xml 네임스페이스에 포함된 모든 클래스의 기본 해결 프로그램입니다. 그러나 해결 프로그램을 직접 만들 수도 있습니다.

보안 고려 사항

XmlResolver 클래스를 사용할 때는 다음 사항을 고려해야 합니다.

  • XmlResolver 개체에는 사용자 자격 증명 같은 중요한 정보가 포함될 수 있습니다. 따라서 XmlResolver 개체를 캐시할 때는 각별한 주의가 필요하며 신뢰할 수 없는 구성 요소에 XmlResolver 개체를 전달하면 안 됩니다.

  • XmlResolver 클래스를 사용하는 클래스 속성을 디자인할 경우 속성을 쓰기 전용 속성으로 정의해야 합니다. 이 속성은 사용할 XmlResolver를 지정하는 데 사용할 수 있지만 XmlResolver 개체를 반환하는 데는 사용할 수 없습니다.

  • 응용 프로그램에서 신뢰할 수 없는 코드의 XmlResolver 개체를 허용하는 경우 GetEntity 메서드에 전달되는 URI는 ResolveUri 메서드에서 반환되는 URI와 다릅니다. XmlResolver 클래스에서 파생되는 클래스는 GetEntity 메서드를 재정의하고 원래 URI에 포함된 것과 다른 데이터를 반환할 수 있습니다.

  • 응용 프로그램에서 읽은 바이트 수를 제한하는 래핑 구현 IStream을 구현하여 GetEntity 메서드에 대한 메모리 서비스 거부 문제를 완화할 수 있습니다. 이 방법은 악의적인 코드에서 GetEntity 메서드에 무한 바이트 스트림을 전달하려는 시도를 방지하는 데 도움이 됩니다.

예제

다음 예제에서는 기본 자격 증명이 설정된 XmlUrlResolver를 사용하는 XmlReader를 만듭니다.

' Create an XmlUrlResolver with default credentials.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials

' Create the reader.
Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver
Dim reader As XmlReader = XmlReader.Create("https://serverName/data/books.xml")
// Create an XmlUrlResolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create("https://serverName/data/books.xml");
   

상속 계층 구조

System.Object
  System.Xml.XmlResolver
     System.Xml.XmlSecureResolver
     System.Xml.XmlUrlResolver

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

XmlResolver 멤버
System.Xml 네임스페이스

기타 리소스

XML 문서 및 데이터
보안 및 System.Xml 응용 프로그램