2013-04-05 7 views
0

castor을 사용하여 거대한 XML 파일을 언 마샬해야하는 애플리케이션을 작성 중입니다. 이러한 이유 때문에 Stax와 같은 스트리밍 XML 파서를 사용하여 XML 파일을 구문 분석해야합니다. Castor의 설명서에 따르면 캐스터 기본 파서는 Xerces입니다. 나는 Xerces 홈페이지를 방문했는데 Xerces가 스트리밍 파서인지 여부는 알 수 없었다.Apache Xerces는 스트리밍 XML 파서입니까?

Xerces가 스트리밍 파서인지 여부를 아는 사람이 있습니까? 고맙습니다. http://en.wikipedia.org/wiki/Xerces에서

답변

0

:

Xerces에

는 직렬화 및 XML을 조작 구문 분석을위한 소프트웨어 라이브러리, , 검증의 아파치의 모음입니다. 이 라이브러리는 DOM, SAX와 SAX2

은 그래서 스트리밍 및 비 스트리밍 API를 지원하는 것을 포함하여 XML 구문 분석을위한 표준 API의 수를 구현합니다. 지원되는 모든 API에 대해서는 http://xerces.apache.org/#xerces2-j을 참조하십시오.

2

이 상황을 처리하는 방법에 대한 조언은 on the FAQ입니다. 문서 인용.

스트림에서 데이터를 어떻게 읽습니까?

는 처리해야 3 문제가 있습니다

  • 아파치 파서

    들이 분석을 시작 전에 버퍼에 전체 데이터 스트림을 읽을; 이 동작을 변경해야합니다. 따라서 "즉석에서 분석"
  • Apache 파서는 파일 끝 부분에 도달하면 종료됩니다. 보낸 사람이 소켓을 삭제하지 않는 한 데이터 스트림, 더 파일의 끝이없는, 은 그래서 당신은
  • 는 아파치 파서는 종단의 입력 스트림을 닫습니다 다른 방법으로 종료해야하고,이 은 종료 소켓; 이 데이터 스트림 소스에 ack를 보내고, 어쨌든 이 더 이상 교환되기를 원하기 때문에 일반적으로이 작업을 원하지 않습니다.