XML bean을 사용하는 외부 스키마 가져 오기 및 사용
-
08-07-2019 - |
문제
약간의 문제가 있습니다. 나는 오래 전에 생산 시스템을 위해 API를 썼으며 Apache XML Beans를 사용했습니다. 스키마는 균질했습니다 (예 : 가져 오기, 모든 것이 동일한 스키마 내에서 왔습니다). API 처리 코드가 엄청나게 장점이더라도 모든 것이 잘 작동했습니다. 이후 JAXB를 사용하여 훨씬 단순하고 우아한 편안한 API를 작성했는데, 구식의 일부를 염두에두고 다른 스키마를 염두에 두었지만 일부 요소는 동일합니다. 이전 API에서 바인딩 코드를 정리하고 단순화하기 위해, 나는 일부 부품을 삭제하고 새 스키마를 가져 와서 해당 요소를 대신 사용하여 일부 부품을 교체했습니다. 그러나 새로운 스키마 혼합을 사용하는 문서를 구문 분석하려고 할 때마다 XML Beans에서 유효성 검사 오류가 발생합니다.
error: cvc-complex-type.2.4a: Expected element 'redundant-element@http://www.my.com/old/xmlns' instead of 'redundant-element@http://www.my.com/new/xmlns' here in element redundant-element-list@http://www.my.com/old/xmlns
전에 이것을 만난 사람이 있습니까? 해결책이나 아이디어가 있습니까? 정말 감사합니다. 감사합니다.
해결책 2
답변 해 주셔서 감사합니다. 수많은 순열에서 문서의 루트와 '중복 요소'자체에 새 네임 스페이스를 명시 적으로 추가하려고 시도했습니다. 즉:
<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>
... 그리고 기본 네임 스페이스 등과의 수많은 조합을 시도했지만 아무도 작동하지 않았습니다.
다른 팁
문서의 네임 스페이스가 여전히 오래된 것 같습니다. 스키마와 문서 없이는 말하기 어렵습니다.
제휴하지 않습니다 StackOverflow