문제

프로젝트의 JAXB 버전을 1에서 2로 업데이트하려고합니다. 누군가가 프로젝트 에서이 작업을 시도 했으며이 작업을 원하는 사람이 있습니까? 각 프로젝트가 독특하다는 것을 이해하고 일반적인 팁을 찾고 있습니다.

도움이 되었습니까?

해결책

JAXB2는 단순한 유형 제한을위한 열거 클래스를 생성합니다. 이러한 유형의 사용을 위해 문자열 값을 설정하는 데 의존하는 Java 코드는 대신 적절한 열거를 사용해야합니다. 런타임에서 유효성 검사 경고보다는 컴파일 할 때 유형이 시작되기 때문에 이것이 훌륭하다고 생각합니다.

Jabx2는 유형화되지 않은 목록 대신 입력 된 목록을 사용하므로 Java 코드에서 많은 캐스팅을 제거 할 수 있습니다.

날짜 지원이 크게 향상되었습니다. IIRC, JAXB1의 대부분의 날짜 유형은 캘린더를 생성하는 반면 JAXB2에서는 XMLGregorianCalendar를 생성합니다.

다른 팁

오늘 저는 JAXB 1에 대한 튜토리얼을 읽고 JAXB 2.1을 사용하여 예제를 컴파일하려고 시도했습니다 (Javase 6에 포함). XSD의 요소는 이름이없는 유형을 사용했습니다.

<xs:element name="logging">
        <xs:complexType>
                <xs:attribute name="debug" type="xs:boolean" use="required"/>
                <xs:attribute name="file" type="xs:string" use="required"/>
        </xs:complexType>
</xs:element>

내가 보는 것에 대해 JAXB 1.0은 로깅 클래스와 LoggingType 클래스 (이름없는 로깅 요소의 유형을 참조)를 생성 한 반면 JAXB 2는 로깅 클래스 만 생성했습니다. 이것은이 예제의 모든 태그에서 정기적으로 발생하므로 그러한 경우에 정기적으로 발생한다고 생각합니다. 그러나 다른 변경 사항없이 "타입"접미사를 제거하여 편집을 수정하는 데 충분했습니다.

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