다음을 통해 공유


XmlReader와 SAX 판독기 비교

업데이트: November 2007

SAX(Simple API for XML) 판독기와 마찬가지로 XmlReader도 앞으로만 이동 가능한 읽기 전용 커서입니다. 이 커서는 입력에 대해 캐시되지 않은 고속 스트림 액세스를 제공하며, 스트림이나 문서를 읽을 수 있습니다. 또한 이 커서를 사용하면 데이터를 끌어 올 수 있으며, 응용 프로그램과 무관한 레코드를 건너뛸 수 있습니다. 두 모델의 가장 큰 차이점으로, SAX 모델은 파서에서 이벤트를 응용 프로그램에 적용하는 "밀어넣기" 모델로서 새 노드를 읽었을 때마다 응용 프로그램에 알려 주지만, XmlReader를 사용하는 응용 프로그램은 판독기에서 노드를 마음대로 끌어 올 수 있습니다. 이 끌어오기 모델의 이점은 다음과 같습니다.

장점

설명

상태 관리

밀어넣기 모델에서 상태가 상당히 복잡한 시스템을 빌드하려면 콘텐츠 처리기가 필요합니다. 끌어오기 모델 클라이언트에서는 자연스러운 하향 프로시저 방식을 사용하여 상태 관리를 단순화합니다.

다중 입력 스트림

끌어오기 모델을 사용하면 클라이언트에서 다중 입력 스트림을 결합할 수 있지만, 밀어넣기 모델에서는 이 작업이 상당히 복잡합니다.

계층화

밀어넣기 모델을 끌어오기 모델 위에 빌드할 수는 있지만, 끌어오기 모델을 밀어넣기 모델 위에 빌드할 수는 없습니다.

다른 문자열의 복사 방지

일반적으로, 파서 버퍼에서 문자열 개체로 데이터를 읽어오면 해당 데이터가 클라이언트 버퍼로 밀어넣습니다. 끌어오기 모델을 사용하면 클라이언트에서는 문자열이 바로 기록되는 버퍼를 파서에 제공할 수 있습니다.

선택 처리

밀어넣기 모델에서는 특성, 처리 명령 및 공백 등의 각 항목을 클라이언트에 알려 주는 반면, 끌어오기 모델 클라이언트에서는 응용 프로그램과 관련된 항목만 처리하고 나머지 항목은 건너뛸 수 있습니다. 그러면 응용 프로그램의 효율성이 크게 향상됩니다. 또한 XML 스트림이 처리되는 방식(예: 표준화)에 영향을 주는 속성을 미리 설정할 수 있습니다.

참고 항목

개념

XmlReader로 XML 읽기

기타 리소스

XmlReader 클래스 사용