바꿀 수없는 외부 API에서 xml 파일을 받고 있습니다. Item Reader에서 Spring job을 사용하여 Drug을 하나씩 검색합니다. 내 문제는 Pack 목록에 비 정렬 화하는 것, 올바르게 주석을 달아서 이제까지 마약을위한 태그 사이에 포함 된 객체로 채워지는 방법. 가장 좋은 시나리오는 아래에 표시된 구성의 List로 null입니다. 마약이 마약의 목록을 포함하여 팩 (또는이 구조가 실현 가능하지 않은 경우 다른 구조)의 목록을 포함하는 방법. 마약을 나타내는 클래스. 여기 Jaxb 비 정렬 목록이 null입니다.
//Lombok annotation generating getters/setters, constructors (boiler plate), shouldn't be harmful
@Data
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "drugs", namespace = "http://rejestrymedyczne.csioz.gov.pl/rpl/eksport-danych-v1.0")
@XmlAccessorType(XmlAccessType.FIELD)
public class ExternalDrug {
@XmlAttribute(name = "name")
private String name;
@XmlAttribute(name = "type")
private DrugType type;
@XmlElementWrapper(name = "packs")
@XmlElement(name = "pack")
private List<Pack> packs;
}
그리고
팩//Again boiler plate
@Data
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "Packs")
@XmlAccessorType(XmlAccessType.FIELD)
public class Pack {
@XmlAttribute(name = "size")
private List<Pack> ;
}
는 그래서 그들은 그러나 나는 약간의 실수가 이렇게 할 수있는 다른 사람들을 위해 쉽게 읽을 수있을 것입니다 내가 영어로 파일을 변환 명심하시기 바랍니다 간다.
처럼 XMLElementWrapper 및 목록 요소에 네임 스페이스를 추가 한 후 그것은 작동한다'XML은'크기 = "4 표시 "' – varren
가끔 크기가 정수가 아니므로 String에 안전하게 매핑했습니다. – Herioz