나는 github에서 테스트 유닛을 설치했다. 누군가 XML이 비 정렬 화 된 것처럼 보이지만 왜 작동하지 않는지 확인할 수 있습니까?JAXB2 유형 제한이 작동하지 않습니까?
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><message:GenericData xmlns:message=\"http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message\" xmlns:common=\"http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:generic=\"http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic\" xsi:schemaLocation=\"http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message https://sdw-wsrest.ecb.europa.eu/vocabulary/sdmx/2_1/SDMXMessage.xsd http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common https://sdw-wsrest.ecb.europa.eu/vocabulary/sdmx/2_1/SDMXCommon.xsd http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic https://sdw-wsrest.ecb.europa.eu/vocabulary/sdmx/2_1/SDMXDataGeneric.xsd\">\n"
+ "<message:Header>\n" ...
GenericDataType 올바르게 인스턴스화됩니다 가장 외부 요소입니다. 디버거를 사용하고 손으로 제작 한 공용 생성자에 중단 점을 설정했는지 확인했습니다. 그러나 Header 요소는 Abstract 인 BaseHeaderType 클래스의 인스턴스화로 연결됩니다.
<xs:complexType name="GenericDataType">
<xs:annotation>
<xs:documentation>GenericDataType defines the contents of a generic data message.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="MessageType">
<xs:sequence>
<xs:element name="Header" type="GenericDataHeaderType"/>
<xs:element name="DataSet" type="data:DataSetType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="footer:Footer" minOccurs="0"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
왜 코드 생성시 그 무시 XJC 않습니다 다음 GenericDataType의 헤더가 GenericDataHeaderType로 제한된다
는 SDMXMessage.xsd에서 명확하게이 적혀있다?
public abstract class MessageType {
@XmlElement(name = "Header", required = true)
protected BaseHeaderType header;
@XmlAnyElement(lax = true)
protected List<Object> any;
@XmlElement(name = "Footer", namespace = "http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer")
protected FooterType footer;
public class GenericDataType
extends MessageType {
}
내가 할 수있는 조치가 있습니까? 실제로 작동하는 XSD 파일에서 Java 도메인 모델을 작성하는 자동 대안?
로그에 뭔가가 있습니까? 일반적으로 잘못된 점에 대한 힌트를 얻어야합니다. 'any'는 일반적으로 XJC에서 스키마 구조가 너무 이상 할 때 나타나는 catch-all-property입니다. 귀하의 경우 이름 충돌이있을 수 있습니다. 'header' 나'footer' 엘리먼트 등이 있으면'MessageType'을 확인하고 커스터마이즈를 시도하십시오. – lexicore
xjc가 형식 제한을 처리하지 않는 것과 관련이 있다고 생각합니다. – user1050755
스키마를 보지 않고 말하기가 어렵습니다. – lexicore