우선 내가 원하는 것을 보여 드리고자합니다.일반 내 일반
<config>
<criteria name="criteriaName" defaultValue="0">
<item value="1">
<criteria name="criteriaName2" defaultValue="">
<item value="foo">
</item>
<item value="bar">
</item>
</criteria>
</item>
<item value="2">
</item>
</criteria>
<criteria name="criteriaName3" defaultValue="">
<item value="foo">
</item>
</criteria>
</config>
요약 :
- 기준 이름과 기본값이 (느릅 나무가 될 수 있습니다 문자열, INT 또는 나는 다음과 같이됩니다 클래스의 밖으로 XML 파일을 생성 할 double) 및 x 항목을 차일드로 사용합니다.
- 항목의 값은 부모 기준 defaultValue와 동일해야합니다.
- 항목에 다른 기준을 적용 할 수도 있습니다. 기준에 DEFAULTVALUE의 유형 (항목)를 입력 부모로부터 독립
예 : 나는 그것으로 몇 가지 확인을하고 싶어하기 때문에
criteria (type int)
item (type int)
criteria(type String)
item(type String)
또한 수업의 형태로이 모델이 필요 나중에.
가 지금은 특정 지점에서 어려움을 겪고, 내가 먼저 당신이 내 수업을 보여주지 :
구성 :
@XmlAccessorType(value=XmlAccessType.FIELD)
@XmlRootElement(name="config")
public class Config {
@XmlElement(name = "criteria")
private List<Criteria> criteriaList = new ArrayList<Criteria>();
/*getters and setters*/
}
기준 :
@XmlAccessorType(value=XmlAccessType.FIELD)
@XmlRootElement(name="criteria")
public class Criteria<T> {
@XmlAttribute
private T key;
@XmlAttribute
private String display;
@XmlAttribute
private T defaultValue;
private List<Item<T>> items = new ArrayList<Item<T>>();
public T getKey() {
return key;
}
/*getters and setters*/
}
항목 :
@XmlAccessorType(value=XmlAccessType.FIELD)
@XmlRootElement(name="item")
public class Item<T>{
@XmlAttribute
protected T key;
@XmlAttribute
protected String display;
@XmlElement
protected List<Criteria<T>> criteria = new ArrayList<Criteria<T>>();
/*getters and setters*/
}
을
그걸로 내가 만들 수있다. 동일한 유형의 항목이있는 특정 유형의 기준.
는 지금은 항목과 다른 유형이 항목 아래의 기준을 삽입 할,하지만 할 수 없습니다 :
Config config = new Config();
Criteria<Integer> criteria = new Criteria<Integer>();
Item<Integer> item = new Item<Integer>();
Criteria<String> subCriteria = new Criteria<String>();
//this obviously doesn't work
item.getCriteria().add(subCriteria); //<--
criteria.getItems().add(item);
config.addCriteria(criteria);
가 나는 또한 (항목)에이 선언 같은 것을 시도 :
@XmlElement
protected <U> List<Criteria<U>> criteria;
그러나 이는 속성이 아닌 메소드에서만 작동합니다.
아무도 도와 줄 수 있습니까?
감사합니다. 올바른 방향으로 안내해 주셔서 감사합니다. – user1874966