2010-07-22 6 views
1

일부 네임 스페이스 호환성 문제로 어려움을 겪고 있습니다. 현재 데이터베이스에 일부 외부 데이터를 namespace가 xmlns = "http://xyz.com/prodresponse/v2" 인 XML 파일로 저장합니다. 최근에 공급 업체가 namesspace를 xmlns = "http : // xyz .com/prodresponse/v4 ".XSD 네임 스페이스 역 호환성 :

내부 애플리케이션 용도로 이전 네임 스페이스 데이터와 새 네임 스페이스 데이터를 완벽하게 처리해야하는 문제가 있습니다. 나는 단지 하나의 옵션만을 볼 수 있습니다 :

  1. SQL 스크립트를 실행하여 기존 XML 데이터를 버전 v2에서 v4로 변환합니다.

다른 옵션은 있습니까? 형식이 변경 되었기 때문에 네임 스페이스가 변경 이유를 사전

답변

2

이유에서

많은 감사 아마. 따라서 네임 스페이스는 예상되는 요소와 예상하지 않는 요소 (해당하는 XSD 스키마와 결합 된 경우)를 정확히 알려주기 때문에 매우 귀중한 정보입니다. 네임 스페이스를 새 버전으로 업데이트하면 이전 XML 데이터가 스키마에 따라 잘못 될 수 있습니다.

아니, 나는 당신이 기존 XML 데이터를 변경해야한다고 생각하지 않는다. 그것을 유지하고 파서가 두 네임 스페이스 모두를 처리하는 방법을 알고 있는지 확인하십시오.

0

XML 파일을 변환하기 위해 SQL 스크립트를 실행하는 이유가 표시되지 않습니다 ... XML 변환 (XSLT)이 위대한 작업을 수행하고 있습니다!

FunkyPeople은 Java에서 버전이있는 XML 파일 처리에 대한 흥미로운 기사를 작성했습니다.

  • 입력 XML을 마지막 스키마 버전으로 변환하기 위해 연속적인 XSLT 스타일 시트를 적용하십시오. 여러 변형이 필요한 이유는 무엇입니까? 변환을 하나만 적용하면 최신 스키마 버전이 들어올 때이를 유지해야합니다. 모두 변형을 유지해야합니다 (v1을 vN, v2를 vN, v3을 vN, ..).). 증분 변형을 하나씩 (v1에서 v2로, v2에서 v3으로, v3에서 v4까지) 적용하면 새 스키마가 릴리스 될 때마다 하나의 변환 만 추가하면됩니다.
  • 마지막 스키마 버전만을 고려한 데이터 처리를 수행합니다.
  • 데이터가 변경된 경우 역 변형을 적용하여 파일의 원래 버전으로 되돌립니다.

용지 here 또는 here을 찾을 수 있습니다.