다음을 통해 공유


XmlTextReader를 사용하여 XML 데이터 읽기

업데이트: November 2007

XmlTextReader 클래스는 XmlReader의 구현이며 XML 텍스트에 대해 파서를 제공합니다. 이 클래스는 XML을 제대로 구성하기 위한 규칙을 적용합니다. 이 클래스에는 DTD(문서 종류 정의) 또는 스키마 정보가 없습니다. 따라서 이 클래스는 유효성 검사를 수행하거나 수행하지 않는 파서가 아닙니다. 또한 이 클래스는 블록 단위로 텍스트를 읽거나 스트림에서 문자를 읽을 수 있습니다.

참고:

.NET Framework 버전 2.0에서는 XmlReaderSettings 클래스와 Create 메서드를 사용하여 XmlReader 인스턴스를 만드는 것이 좋습니다. 그러면 .NET Framework 2.0의 새로운 기능을 모두 사용할 수 있습니다. 자세한 내용은 XML 판독기 만들기를 참조하십시오.

개요

XmlTextReader는 다음 기능을 제공합니다.

  • XML을 제대로 구성하기 위한 규칙을 적용합니다.

  • DTD가 제대로 구성되어 있는지 검사합니다. 그러나 유효성 검사 또는 기본 특성 추가에 DTD를 사용하지는 않습니다. DTD는 EntityHandling 속성이 ExpandEntities로 설정되어 있거나 ResolveEntity 메서드가 EntityReference 노드에 호출되는 경우 엔터티 확장에 사용됩니다.

  • EntityHandling 속성이 기본 설정인 ExpandCharEntities로 설정되어 있으면 확장되지 않은 엔터티 참조를 EntityReference 노드로 반환합니다. DTD에 엔터티 참조가 정의되어 있지 않으면 노드에 ResolveEntity 메서드가 호출되지 않더라도 판독기에 오류가 발생하지 않습니다.

  • 새 줄 및 특성 값의 XML 표준화를 해제하는 옵션을 제공합니다. 표준화는 기본적으로 해제되어 있습니다.

  • DTD나 스키마에 대해서는 유효성 검사가 수행되지 않습니다.

  • XmlTextReader에는 유효성 검사와 연관된 오버헤드가 없으므로 XML 파서의 작업 수행 속도가 빠릅니다.

XmlTextReader는 스트림 개체, TextReader 및 로컬 파일 위치나 웹 사이트를 식별하는 URL 등의 여러 다른 입력에서 데이터를 읽을 수 있습니다.

XmlTextReaderXmlResolver를 사용하여 DTD와 같은 외부 리소스를 찾으므로 DTD가 제대로 구성되었는지 확인할 수 있습니다. XmlResolver에 대한 자세한 내용은 XmlResolver를 사용하여 리소스 확인을 참조하십시오.

인코딩 선언 <?xml version="1.0" encoding="ISO-8859-5"?>에는 문서의 인코딩을 설정하는 인코딩 특성이 포함되어 있습니다. XmlTextReader에는 Encoding 속성이 있어 XML 선언의 인코딩 특성에 나타나는 문자 인코딩을 반환합니다. 인코딩 특성이 없는 경우 문서의 기본값은 스트림의 첫 번째 두 바이트에 따라 UTF-8 또는 UTF-16으로 설정됩니다.

엔터티 참조 또는 스키마 파일을 확장하는 데 사용되는 DTD 등의 외부 리소스를 읽는 경우, 인코딩 값은 외부 참조에 나타나는 값으로 설정됩니다. 외부 참조에 인코딩 값이 나타나지 않는 경우 기본값은 UTF-8 또는 UTF-16으로 설정됩니다. XmlTextReader에서는 Encoding 클래스를 사용하므로 여러 인코딩을 지원합니다. 따라서 해당 클래스에서 지원되는 모든 인코딩은 XmlTextReader에서도 지원됩니다. 단, <?xml 시퀀스를 UTF-7 및 EBCDIC 등 UTF-8 이외의 다른 바이트 값으로 매핑하는 인코딩은 지원되지 않습니다.

참고 항목

개념

XmlReader로 XML 읽기

기타 리소스

XmlReader 클래스 사용