Java에서 진화하는 XML 스키마를 처리하는 방법은 무엇입니까? 자바 애플리케이션에서 오래된 XML 스키마 (예 : Foo v1, v2, v3, v4, v5 지원)를 지원해야하는 유스 케이스가 있습니다. 푸 XML 스키마 의 다른 버전에 대해 기록 된 모든 푸 XML 내용 읽기 - -Java에서 진화하는 XML 스키마를 처리하는 방법
내 사용 사례 포함 OVAL XML 스키마의 다른 버전을 사용에 대해 서로 다른 기록 될 수있는 통합 푸 XML 컨텐츠를 (즉 푸 (V1)을 병합 Foo v5와 함께).
Foo XML 스키마는 상당히 복잡하며 이전 버전과의 호환성 문제가 있으므로 Foo v1 XML 콘텐츠가 Foo v3 XML 스키마를 사용하여 XML 스키마 유효성 검사를 실패 할 수 있습니다.
나는 2 가지 접근법을 생각했다. 1) JAXB와 같은 Java XML 데이터 바인딩을 사용하고 XML 스키마의 각 버전에 대한 바인딩 집합을 생성한다. 예를 들어 Foo XML 스키마를 사용하면 Foo XML 스키마 v1에서 v5에 5 세트의 바인딩을 생성합니다. 문제는 Foo XML 컨텐트 버전을 다른 XML 컨텐트 버전과 병합하는 방법입니다.
2) Java 데이터 모델 한 세트를 만들고 SAX, DOM, JDOM을 사용하여 수동으로 구문 분석하고 이전 버전과의 호환성 문제를 모두 해결하십시오. 도전 과제는 이제 JAXB의 도움없이 XML을 직접 파싱해야합니다.
진화하는 XML 스키마를 처리하는 가장 좋은 방법에 대해 조언을 듣고 싶습니다. Java XML 데이터가 올바른 경로로 전달되는지 또는 자체 Java 데이터 모델을 생성하고 수동으로 구문 분석합니까?
'XSLT '가 여기서 작동하는지 알고 싶지 않습니다. 그렇지 않다면, 아마도 여러 가지 바인딩 세트를 사용하여 접근법을 조합 한 다음 자신이 직접 작성하는 하나의 추가 공통 세트를 사용하게 될 것입니다. xml 데이터를 사용할 때마다 공통 세트로 이동합니다. – atomman
BTW Java는 (는) 단어입니다. –