다음을 통해 공유


XmlTextReader 클래스

빠르고, 캐시되지 않으며 앞으로만 이동 가능한 XML 데이터 액세스를 제공하는 판독기를 나타냅니다.

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

구문

‘선언
Public Class XmlTextReader
    Inherits XmlReader
    Implements IXmlLineInfo, IXmlNamespaceResolver
‘사용 방법
Dim instance As XmlTextReader
public class XmlTextReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver
public ref class XmlTextReader : public XmlReader, IXmlLineInfo, IXmlNamespaceResolver
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver

설명

참고

Microsoft .NET Framework version 2.0 릴리스에서는 System.Xml.XmlReader.Create 메서드를 사용하여 XmlReader 인스턴스를 만드는 방법이 권장됩니다. 이렇게 하면 이 릴리스에 도입된 새 기능을 충분히 활용할 수 있습니다. 자세한 내용은 XML 판독기 만들기를 참조하십시오.

XmlTextReader는 XML 데이터의 스트림에 대해 앞으로만 이동 가능한 읽기 전용 액세스를 제공합니다. 현재 노드란 판독기가 배치된 노드를 말합니다. 판독기는 읽기 메서드를 사용해 앞으로 이동하며, 속성은 현재 노드의 값을 반영합니다.

이 클래스는 XmlReader를 구현하고 W3C XML(Extensible Markup Language) 1.0 및 Namespaces in XML 권장 사항을 따릅니다. XmlTextReader에는 다음과 같은 기능이 있습니다.

  • 제대로 구성된XML규칙을 적용합니다.

  • XmlTextReader는 데이터 유효성 검사를 제공하지 않습니다.

  • DocumentType 노드가 제대로 구성되었는지 확인합니다. XmlTextReader는 DTD가 제대로 구성되었는지 검사하지만 DTD를 사용하여 유효성을 검사하지는 않습니다.

  • NodeTypeXmlNodeType.EntityReference인 노드의 경우 비어 있는 단일 EntityReference 노드가 반환됩니다. 이 때 Value 속성은 String.Empty입니다.

참고

DTD의 엔터티에 대한 실제 선언을 Entity 노드라고 합니다. 데이터에 있는 이 노드를 참조할 때는 EntityReference 노드라고 합니다.

  • 기본 특성을 확장하지 않습니다.

XmlTextReader는 데이터 유효성 검사에 필요한 추가 검사를 수행하지 않기 때문에 빠르고 제대로 구성된 파서를 제공합니다.

데이터 유효성 검사를 수행하려면 유효성 검사 XmlReader를 사용합니다. 자세한 내용은 XmlReader를 사용하여 XML 데이터의 유효성 검사를 참조하십시오.

XmlDocument에서 XML 데이터를 읽으려면 XmlNodeReader를 사용합니다.

XmlTextReader는 XML 구문 분석 오류에 대해 XmlException을 throw합니다. 예외가 throw되면 판독기 상태는 예측할 수 없습니다. 예를 들어, 보고된 노드 형식은 현재 노드의 실제 노드 형식과 다를 수 있습니다. ReadState 속성을 사용하여 판독기에 오류가 있는지 확인합니다.

XmlReader 클래스에 대한 자세한 내용은 XmlReader로 XML 읽기를 참조하십시오.

보안 고려 사항

다음은 XmlTextReader 클래스를 사용할 때 고려해야 할 사항입니다.

  • 응용 프로그램에 버블링하지 않을 경로 정보가 XmlTextReader에서 throw하는 예외에 의해 노출될 수 있습니다. 응용 프로그램에서 예외를 catch하여 적절하게 처리해야 합니다.

  • DTD 처리는 기본적으로 사용됩니다. 서비스 거부 문제가 염려되거나 신뢰할 수 없는 소스를 다루는 경우 DTD 처리를 사용하지 않도록 설정하십시오. DTD 처리를 사용하지 않으려면 ProhibitDtd 속성을 true로 설정합니다.

    DTD 처리를 사용하도록 설정한 경우 XmlSecureResolver를 사용하여 XmlTextReader에서 액세스 가능한 리소스를 제한할 수 있습니다. 또한 XML 처리에 제한된 메모리와 시간이 사용되도록 응용 프로그램을 직접 디자인할 수 있습니다. 예를 들어 ASP.NET 응용 프로그램에서 시간 제한 설정을 구성할 수 있습니다.

  • XML 데이터에는 DTD 파일과 같은 외부 리소스에 대한 참조가 포함될 수 있습니다. 기본적으로 외부 리소스는 사용자 자격 증명이 없는 XmlUrlResolver 개체를 사용하여 확인됩니다. 이러한 경우 다음 중 하나를 수행하여 보안을 강화할 수 있습니다.

    • XmlResolver 속성을 XmlSecureResolver 개체로 설정하여 XmlTextReader에서 액세스 가능한 리소스를 제한합니다.

    • XmlResolver 속성을 Null 참조(Visual Basic의 경우 Nothing)로 설정하여 XmlReader에서 외부 리소스를 열 수 없도록 합니다.

  • XML 데이터에는 처리하는 데 시간이 오래 걸리는 특성, 네임스페이스 선언, 중첩된 요소 등이 많이 포함될 수 있습니다. XmlTextReader로 보내는 입력 크기를 제한하려면 사용자 지정 IStream 구현을 만들어 XmlTextReader에 제공합니다.

  • ReadValueChunk 메서드를 사용하여 큰 데이터 스트림을 처리할 수 있습니다. 이 메서드는 전체 값에 대해 단일 문자열을 할당하는 대신 한 번에 적은 수의 문자를 읽습니다.

  • 일반 엔터티는 기본적으로 확장되지 않습니다. ResolveEntity 메서드를 호출할 때 일반 엔터티가 확장됩니다.

상속자 참고 사항 이 클래스에는 상속 요청이 있습니다. XmlTextReader에서 상속을 하려면 완전 신뢰가 필요합니다. 자세한 내용은 상속 요청을 참조하십시오.

상속 계층 구조

System.Object
   System.Xml.XmlReader
    System.Xml.XmlTextReader

스레드로부터의 안전성

이 형식의 모든 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에서 지원

참고 항목

참조

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

기타 리소스

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