2012-07-10 3 views
1

나는 다음과 같은 한 :SimpleXML을은 xs : 선택 요소

<xs:complexType name="AnswerType"> 
    <xs:choice minOccurs="1" maxOccurs="1"> 
     <xs:element name="Checklist" type="ChecklistType" /> 
     <xs:element name="OptionList" type="OptionListType" /> 
     <xs:element name="Measurement" type="MeasureType" /> 
    </xs:choice> 
</xs:complexType> 

가 어떻게 SimpleXML을을 사용하여 선택 XSD 요소에 주석을? 현재 모두를 필수 = false로 설정해야합니다.

@Element(name = "Checklist", required=false) 
protected ChecklistType checklist; 
@Element(name = "OptionList", required=false) 
protected OptionListType optionList; 
@Element(name = "Measurement", required=false) 
protected MeasureType measurement; 

분명히 좋은 방법이 있습니다. 하나는 필수 = true이지만 어떻게해야합니까?

답변

1

자습서에서이 답변을 찾을 수 없지만 예제를 뒤집어 정확히 두 번째 예를 발견했습니다. javadocs에서 ElementUnion 클래스를 찾으십시오. 예 : here

@Root 
public class Example { 

    @ElementUnion({ 
     @Element(name="text", type=String.class), 
     @Element(name="int", type=Integer.class), 
     @Element(name="double", type=Double.class) 
    }) 
    private Object value; 
}