2013-06-06 7 views
0

Java와 함께 제공되는 Xerces 버전은 bug when dealing with empty XML elements for XML version 1.1 input입니다. 이 버그는 Apache의 Xerces 릴리스에서 오랫동안 수정되었습니다 (2.6.2 이후).Xerces 구현을 재정 의하여 XMLInputFactory를 통해 XMLEventReader를 만듭니다.

XMLInputFactory 인터페이스를 통해 XMLEventReader를 만들고 싶습니다. 다음과 같은 것 :

XMLInputFactory.newFactory().createXMLEventReader(new FileInputStream(inputFile)); 

Xerces jars를 클래스 패스에 배치하는 것은 여기서 작동하지 않는 것 같습니다. 실제로 Apache Xerces 릴리스가 XMLInputFactory를 확장한다는 것을 알지 못합니다. XMLInputFactory는 구현 특정 입력 팩토리를 작성하기위한 전제 조건 인 것으로 보입니다.

XMLInputFactory.newFactory가 클래스 패스에서 Apaches Xerces 릴리스를 사용하도록 강제 할 수있는 방법이 있습니까?

+0

[이] (http://stackoverflow.com/a/7794556/2071828) 도움이 될 수도 있습니다. 인스턴스화 할 클래스를 팩토리에 알려주는 시스템 특성을 설정해야합니다. –

+0

불행히도 Xerces에는 XMLInputFactory 구현이없는 것 같습니다. 적어도 나는 하나를 찾을 수 없었다. – jhunovis

답변

0

이 버전의 경우 StAX를 포함하고 항아리 서비스 공급자 mechanizm에게 useing, 자동으로 기본 경우 StAX IMPL 우선합니다

<dependency> 
     <groupId>xerces</groupId> 
     <artifactId>xercesImpl</artifactId> 
     <version>2.11.0</version> 
    </dependency> 

을 시도

+0

불행히도 우리 프로젝트는 Maven을 사용하지 않습니다. 모든 라이브러리는 클래스 경로를 설정하여 사용하도록 설정됩니다. – jhunovis

+0

괜찮습니다. 여기에서 xerces 2.11.0 jar를 다운로드하십시오. http://xerces.apache.org/mirrors.cgi –

+0

작동하지 않는 것 같습니다. 내가 [내 질문에 링크 된] 질문에서 샘플 코드를 시도 (http://stackoverflow.com/questions/10727288/why-does-the-stax-parser-think-this-is-valid-xml-1-0 -but-not-1-1)에있는 Xerces 2.11에 대한 Maven 종속성 만 있습니다. – jhunovis