문제

XJC 명령 줄 도구를 사용하여 XSD 스키마 파일에서 Java 클래스를 생성합니다. ObjectFactory 클래스는 불완전한 내용을 생성합니다. 없이 창조 방법을 생성합니다 JAXBElement<Type> createType 장식.

그 이유는 무엇입니까? 도미니크에 감사합니다

도움이 되었습니까?

해결책

JAXB2 XJC 생성 결합 요구의 일부 유형 만 JAXBElement 포장지. 그 유형이있는 유형 @XMLRootElement 주석에는 래퍼가 필요하지 않으므로 객체 공장이 생성되지 않습니다.

다른 팁

JAXB는 XSD가 복합 유형 정의와 동일한 이름의 해당 복합 유형을 사용하여 별도의 요소 정의를 모두 포함하는 경우에만 개체 인스턴스에서 jaxbelement를 생성하는 공장 메소드를 생성합니다.

<complexType name="my-type">
   ...
</complexType>

<element name="my-type" type="tns:my-type"/>

이 경우 JAXB는 @xmlRootElement 주석으로 생성 된 클래스에 주석을 달지 않지만 객체 인스턴스에서 jaxbelement를 생성하는 데 필요한 공장 메소드를 제공합니다. 이렇게하면 루트 요소가 아닌 유형의 인스턴스를 루트 요소로 쉽게 직렬화 할 수 있습니다.

따라서 최상위 요소로 사용하려는 복합 유형 정의 외에도 동일한 이름의 "요소"교체를 추가해야하며 ObjectFactory는 예상 공장 메소드를 생성합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top