다음을 통해 공유


XmlReader 클래스의 새로운 기능

업데이트: November 2007

Microsoft .NET Framework 버전 2.0에서는 XmlReader 클래스의 여러 디자인 및 기능이 변경되었습니다.

XmlReader 만들기

이번 릴리스에서는 Create 메서드를 사용하여 XmlReader 인스턴스를 가져오는 것이 좋습니다. Create 메서드는 XmlReaderSettings 클래스를 사용하여 XmlReader 인스턴스가 지원해야 하는 기능을 지정합니다.

자세한 내용은 XML 판독기 만들기를 참조하십시오.

데이터 유효성 검사

Create 메서드를 사용하여 만든 XmlReader 개체는 DTD(문서 종류 정의) 또는 XSD(스키마 정의 언어) 스키마를 사용하여 유효성 검사를 실행할 수 있습니다. XmlReaderSettings.ValidationType 속성은 XmlReader 인스턴스에서 유효성 검사를 실행하는지 여부를 결정합니다. XmlReaderSettings.ValidationFlags 속성은 선택적 유효성 검사 설정을 구성합니다. XmlSchemaSet 클래스를 사용하여 XML 스키마를 캐시할 수 있습니다.

참고:

.NET Framework 2.0에서는 XmlValidatingReaderXmlSchemaCollection 클래스가 사용되지 않습니다.

자세한 내용은 XmlReader를 사용하여 XML 데이터의 유효성 검사를 참조하십시오.

데이터 규칙

Create 메서드에서 만든 XmlReader 개체는 기본적으로 XmlTextReader 구현보다 일치합니다. Create 메서드에서 만든 XmlReader 개체는 기본적으로 다음 기능을 지원합니다.

  • 줄 바꿈 문자 표준화

  • 엔터티 확장

  • 기본 특성 추가

XmlReaderSettings.CheckCharactersXmlReaderSettings.ConformanceLevel 속성을 사용하면 만들어진 XmlReader 개체에서 사용할 규칙 검사의 유형을 지정할 수 있습니다. 자세한 내용은 XmlReader를 사용하여 데이터 규칙 검사를 참조하십시오.

형식 지원

XML XSD(스키마 정의 언어) 스키마 정보 검색을 지원하고 호출자가 단순 형식의 CLR(공용 언어 런타임) 값으로 값을 요청할 수 있도록 허용합니다.

ReadContentAs 및 ReadElementContentAs 메서드는 문자열이 아닌 시스템 형식으로 내용을 읽을 수 있습니다. 이러한 새 메서드를 사용하면 값을 수동으로 변환하고 구문 분석할 필요 없이 코딩 작업에 가장 적합한 표현으로 값을 가져올 수 있습니다.

자세한 내용은 형식화된 데이터 읽기를 참조하십시오.

새로운 도우미 메서드

XmlReader 클래스에는 XML 데이터의 구문을 더욱 쉽게 분석하도록 새 메서드가 포함되어 있습니다.

  • ReadSubtree - 현재 요소 및 모든 하위 요소를 읽는 새 XmlReader를 반환합니다.

  • ReadToDescendant - 판독기에서 지정된 이름과 일치하는 다음 자식 요소를 진행하도록 합니다.

  • ReadToNextSibling - 판독기에서 지정된 이름과 일치하는 다음 형제 요소를 진행하도록 합니다.

  • ReadToFollowing - 판독기에서 지정된 이름과 일치하는 다음 요소를 진행하도록 합니다.

  • ReadValueChunk - 스트리밍 방식으로 XML 문서에 포함된 텍스트의 큰 스트림을 읽습니다.

  • ReadContentAsBase64ReadElementContentAsBase64 - 스트리밍 방식으로 XML 문서에 포함된 이진 데이터의 큰 스트림을 읽고 Base64 내용을 디코딩합니다.

  • ReadContentAsBinHexReadElementContentAsBinHex - 스트리밍 방식으로 XML 문서에 포함된 이진 데이터의 큰 스트림을 읽고 BinHex 내용을 디코딩합니다.

보안 기능

DTD(문서 종류 정의) 처리를 막는 XmlReader 개체를 만듭니다. DTD 처리를 비활성화하면 특정 서비스 거부(Denial of service) 공격을 차단하는 데 유용할 수 있습니다. DTD 처리를 비활성화하면 DTD 내용이 발견될 때 XmlReader 개체는 XmlException을 throw합니다. 기본적으로 DTD 처리는 사용되지 않습니다. DTD 처리를 사용하려면 XmlReader를 만들기 전에 XmlReaderSettings.ProhibitDtd 속성을 false로 설정합니다.

참고:

XmlTextReader 클래스에서 ProhibitDtd 속성을 사용할 수도 있습니다.

엔터티 처리

Create 메서드를 사용하여 만든 XmlReader 개체는 모든 엔터티를 자동으로 확장합니다. 확인할 수 없는 엔터티를 발견하면 예외가 throw됩니다.

참고 항목

개념

XmlReader로 XML 읽기