다음을 통해 공유


판독기에서 데이터 로드

메서드와 매개 변수Load를 사용하여 XmlReader XML 문서를 로드하는 경우 다른 형식에서 데이터를 로드하는 동작과 비교할 때 발생하는 동작에 차이가 있습니다. 판독기 초기 상태 Load 인 경우 판독기에서 전체 콘텐츠를 사용하고 판독기 내의 모든 데이터에서 XML DOM(문서 개체 모델)을 빌드합니다.

판독기가 문서 내 특정 노드에 이미 있는 경우, 판독기를 Load 메서드에 전달하면 Load은 현재 깊이의 끝 태그에서 닫기까지 현재 노드와 그 형제 노드 모두를 메모리에 읽으려고 시도합니다. 시도된 Load의 성공 여부는 판독기가 로드를 시도할 때 위치한 노드에 따라 달라지며, Load이 판독기로부터 받아들인 XML의 형식이 올바른지 확인합니다. XML 형식이 잘못되면 Load가 예외를 발생합니다. 예를 들어 다음 노드 집합에는 두 개의 루트 수준 요소가 포함되어 있으며 XML은 형식이 잘못되어 Load 예외를 throw합니다.

  • 주석 노드 다음에 요소 노드가 뒤따르고, 다시 요소 노드가 뒤따른 후 EndElement 노드가 뒤따릅니다.

다음 노드 집합은 루트 수준 요소가 없으므로 불완전한 DOM을 만듭니다.

  • 주석 노드 뒤에 ProcessingInstruction 노드가 있고, 그 뒤에 다시 주석 노드가 있으며, 마지막으로 EndElement 노드가 있습니다.

예외가 발생하지 않고 데이터가 로드됩니다. 이러한 노드의 맨 위에 루트 요소를 추가하고 오류 없이 저장할 수 있는 올바른 형식의 XML을 만들 수 있습니다.

판독기를 문서의 루트 수준(예: 공백 또는 특성 노드)에 유효하지 않은 리프 노드에 배치하면 판독기는 루트에 사용할 수 있는 노드에 위치할 때까지 계속 읽습니다. 이 시점에서 문서 로드가 시작됩니다.

기본적으로 Load XML이 DTD(문서 형식 정의) 또는 스키마 유효성 검사를 사용하여 유효한지 여부를 확인하지 않습니다. XML이 올바른 형식인지 여부만 확인합니다. 유효성 검사를 수행하려면 XmlReader 클래스를 사용하여 XmlReaderSettings를 만들어야 합니다. 클래스는 XmlReader DTD 또는 XSD(스키마 정의 언어) 스키마를 사용하여 유효성 검사를 적용할 수 있습니다. 클래스의 ValidationType 속성은 XmlReaderSettings 인스턴스가 XmlReader 유효성 검사를 적용하는지 여부를 결정합니다. XML 데이터의 유효성을 검사하는 방법에 대한 자세한 내용은 참조 페이지의 설명 섹션을 XmlReader 참조하세요.

참고하십시오