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 등의 여러 다른 입력에서 데이터를 읽을 수 있습니다.
XmlTextReader는 XmlResolver를 사용하여 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 이외의 다른 바이트 값으로 매핑하는 인코딩은 지원되지 않습니다.