2012-07-10 91 views
1

我有以下幾點:的SimpleXML的xs:choice元素

<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元素?目前我必須將它們全部設置爲required = 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; 

當然有更好的方法。一個必須要求=真,但是如何?

回答

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; 
}