XML 스키마에서 Java 클래스를 생성하기 위해 xjc를 사용하고 있으며 다음은 XSD의 발췌 부분입니다.XJC를 사용하는 Java 클래스에 대한 XML 스키마
<xs:element name="NameInfo">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element ref="UnstructuredName"/> <!-- This line -->
<xs:sequence>
<xs:element ref="StructuredName"/>
<xs:element ref="UnstructuredName" minOccurs="0"/> <!-- and this line! -->
</xs:sequence>
</xs:choice>
<xs:element ref="SomethingElse" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
생성 된 클래스는 괜찮 대부분의 경우
하지만 위의 블록 내가 좋아하는 뭔가를 얻을 것입니다 : 내가 가진
* You are getting this "catch-all" property because of the following reason:
* The field name "UnstructuredName" is used by two different parts of a schema. See:
* line XXXX of file:FILE.xsd
* line XXXX of file:FILE.xsd
* To get rid of this property, apply a property customization to one
* of both of the following declarations to change their names:
* Gets the value of the content property.
: 위의 다음 코멘트와 함께
public List<Object> getContent() {
if (content == null) {
content = new ArrayList<Object>();
}
return this.content;
}
을 문제의 두 줄 끝 부분에 주석을 달았습니다.
현재 스키마를 변경하는 것이 쉽지 않을 것이라고 생각합니다. 이는 공급 업체간에 결정 되었기 때문에 가능하면 진행 속도가 느려지므로이 방법을 사용하고 싶지 않습니다.
제가 검색 한 결과 this page을 찾았습니다. 내가하고 싶은 외부 사용자 정의입니까? 나는 대부분이 생성 된 클래스들로 작업 해 왔기 때문에이 클래스들을 생성하는 프로세스에 대해 완전히 익숙하지 않다. "속성 사용자 정의"의 간단한 예가 좋습니다! 스키마를 계속 사용할 수있는 한 Java 클래스를 생성하는 대체 방법은 좋을 것입니다.
편집 : 두 UnstructuredName
이 실제로 동일한 요소임을 분명히해야합니다.
. 만약 내면의 "서열"을 다른 요소에 넣을 수 있다면이 문제는 해결 될 것인가? 그것은 변환으로 실현 가능한가? 변환을 수행하면 원하는 구조로 변환 한 다음 원래 구조로 다시 변환해야합니다. – nevets1219