나는 3 개 XSD 파일이 있습니다 모두 a.xsd로 가져 JAXB를 사용하여 공유 객체를 생성 할 수 있습니까?
shared.xsd을 b.xsd
- a.xsd 및 사용 b.xsd
<xs:import schemaLocation="shared.xsd"/>
shared.xsd는
정의<xs:element name="item"> <xs:complexType> ....
xjc a.xsd를 사용하여 Java 코드를 생성하고 b.xsd가 다른 패키지로 생성되고 각 패키지에서 항목에 대해 별도의 Java 클래스가 생성됩니다. item에 대해 하나의 공유 클래스를 가지고 a와 b를 사용하는 것이 어떻게 가능합니까?
와우 덕분에 작동합니다. 항상 실행했습니다. xjc a.xsd xjc b.xsd xjc shared.xsd 그런 식으로 작동하지 않았습니다. 이 솔루션에는 단 하나의 문제 만 있습니다. a.xsd와 b.xsd의 최상위 요소는 모두 동일한 것으로 (내 경우 "요청") 호출되며 불행히도 변경할 수 없습니다. 내 솔루션으로 각 xsd가 다른 패키지로 컴파일 되었기 때문에 문제가되지 않았지만 이제는 같은 패키지에 같은 이름의 두 요소가 충돌합니다. 거기에 어떤 해결책이 있습니까? –
@Peter Szanto, 바인딩 구성 파일 (.xjb 파일)을 사용하여 충돌을 해결할 수 있어야합니다. –
다시 한번 감사드립니다. 항상 새로운 것을 배우는 것이 놀랍습니다. 다만 공공의 이익을 위해 내 XSD로 아래 인라인 xjb 선언을 추가 \t \t \t \t \t \t \t \t \t \t \t \t \t JXB : 바인딩> \t \t \t XS : 주석> 그리고 xml에서 요청하도록 바인딩 된 EmailauthenticationRequest.java를 생성합니다. –