2008-11-11 5 views
0

약간의 문제가 있습니다. 저는 오래 전 프로덕션 시스템을 위해 API를 작성했으며 Apache XML Beans를 사용했습니다. 스키마 처리는 동 질적이었습니다 (즉, 가져 오기가 없으며 모든 것이 동일한 스키마 내에서 발생했습니다). API 처리 코드가 매우 길더라도 모든 것이 잘 작동했습니다. 이후 JAXB를 사용하여 훨씬 단순하고 우아하고 안 정적 인 API를 작성했습니다. 예전과 다른 부분을 염두에 두었습니다. 그러나 일부 요소는 동일합니다. 이전 API에서 바인딩 코드를 정리하고 단순화하기 위해 일부 부품을 삭제하고 새 스키마를 가져 와서 대신 사용했습니다. 그러나 때마다 내가 스키마의 새로운 혼합물을 사용하는 문서를 구문 분석하려고, 나는 XML 콩에서 유효성 검사 오류를 얻을 :XML Beans를 사용하여 외부 스키마 가져 오기 및 사용

error: cvc-complex-type.2.4a: Expected element '[email protected]://www.my.com/old/xmlns' instead of '[email protected]://www.my.com/new/xmlns' here in element [email protected]://www.my.com/old/xmlns 

이 사람이 전에 발생 했습니까? 어떤 해결책이나 아이디어가 있습니까? 나는 정말로 감사 할 것입니다. 감사합니다.

+0

잘못된 XSD 문제를 해결할 수 있도록 일부 XSD를 붙여 넣을 수 있습니까? –

+0

사실 그 이후로 모든 것을 다시 할 수있는 기회가있었습니다. 사용하고있는 XSD는 Eclipse에서 생성되고 그래픽 편집기를 사용하여 편집되었으며 XSD 스키마의 W3C 유효성 검사기에 대해 유효성이 검사되었으므로 잘못된 형식의 xSD 문제는 안전하게 제외 할 수 있습니다. –

답변

0

답변 해 주셔서 감사합니다. 나는 명시 적으로 새로운 네임 스페이스를 문서의 루트와 '중복 요소'자체에 여러 차례 순열을 추가하여 시도했다. IE :

<oldxmlns:root xmlns:oldxmlns="abc" xmnls:newxmlns="xyz"> 
     ..... 
</oldxmlns:root> 

.. 그리고 ...

<oldxmlns:root xmlns:oldxmlns="abc"> 
    <oldxmlns:nested-element> 
     ..... 
     <newxmlns:redundant-element xmnls:newxmlns="xyz"> 
      ..... 
     </newxmlns:redundant-element> 
     ..... 
    </oldxmlns:nested-element> 
</oldxmlns:root> 

... 그리고 나는 또한 등 기본 네임 스페이스와 다양한 조합을 시도했습니다, 아무도이 일을 없다.

0

문서의 네임 스페이스가 여전히 오래된 것 같습니다. 스키마와 문서 없이는 말하기가 어렵습니다.

관련 문제