현재 Java 클래스에서 xsd 파일을 변환하는 데 xjc를 사용하고 있습니다. 내 응용 프로그램은 ota-opentravel (http://www.opentravel.org/) 표준을 기반으로하므로 ota-2016b 버전의 xsd 파일을 다운로드하고 모든 xsd 파일을 Java 클래스로 변환하려고 시도했습니다. 나는 다음과 같은 오류 있어요 :Java : XSD 파일을 Java 클래스로 변환
Property "Value" is already defined.
Use <jaxb:property> to resolve this conflict.
The following location is relevant to the above error
line 5848 of file:/OTA_CommonTypes.xsd
line 1836 of file:/OTA_Lists.xsd
line 6820 of file:/OTA_CommonTypes.xsd
etc
나는이 문제를 해결하는 방법을 많은 예제를 발견 한 것은, 그들 중 하나 .xjb 파일을 지정하고 내가 문제가있는 .XSD 파일에 대한 몇 가지 추가 바인딩을 추가했다. .xsd 파일이 거의없는 사람은이 방법이 적합하지만 300 개 이상의 .xsd 파일을 변환해야하는 사람에게는 불가능한 것처럼 보입니다.
또한 모든 항목이 이미 생성되었지만 지원되는 최신 버전이 ota_v2014이고 버전 ota_v2015 및 ota_v2016이 필요한 일부 maven ota_travel 종속성을 발견했습니다.
나는 자바 클래스에서이 .XSD 파일을 변환하는 데 사용되는 명령은 다음과 같습니다 sudo는 xjc를 -d SRC/목적지/폴더 1/소스/OTA_HotelResModifyNotifRQ.xsd
내 개인적인 충고는 OTA만큼 크고 복잡한 스키마로 Java 데이터 바인딩을 시도하지 않아야합니다. 관리 할 수없는 클래스 수만 확보하면됩니다. –
네, 이해하지만 필요합니다. 그렇지 않으면 우리가 자바 클래스로 그들을 변환 할 수없는 경우 ota xsd 파일의 목적은 무엇인지 모르겠다? 아래에서 추가 한 솔루션을 찾았습니다. –
XSD의 주된 목적은 허용되는 것과 그렇지 않은 것을 정확히 지정하기위한 것입니다. 운영상 주된 목적은 문서 인스턴스를 검증하는 것입니다. 또 다른 용도는 XQuery 또는 XSLT에서 스키마 인식 프로그램을 작성하는 것입니다. –