gpt4 book ai didi

java - Jaxb 未编码列表为空

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:56 26 4
gpt4 key购买 nike

我从外部 API 接收 xml 文件,但无法更改。我正在使用带有 Item Reader 的 Spring 作业来一一检索药物。我的问题在于解码到包列表中,如何正确注释它,以便它充满了药物标签之间包含的对象,到目前为止,最好的情况是空,作为具有如下配置的列表。如何配置类,以便药物包含包列表(或任何其他结构,如果这不可行)

<drugs xmlns="http://rejestrymedyczne.csioz.gov.pl/rpl/eksport-danych-v1.0">
<drug name="Zoledronic acid Fresenius Kabi" type="human" [more attributes...]>
<packs>
<pack size="1" [more attributes...]/>
<pack size="4" [more attributes...]/>
</packs>
</drug>
[more drugs...]
</drugs>

代表药物的类。

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

这里是Pack

//Again boiler plate
@Data
@NoArgsConstructor
@AllArgsConstructor

@XmlRootElement(name = "Packs")
@XmlAccessorType(XmlAccessType.FIELD)
public class Pack {

@XmlAttribute(name = "size")
private List<Pack> ;
}

请记住,我将文件翻译成英文,以便其他人更容易阅读,但这样做可能会犯一些错误。

最佳答案

在将命名空间添加到 XMLElementWrapper 和 List 元素后,它应该可以工作

@XmlElementWrapper(name="packs", namespace = "http://rejestrymedyczne.csioz.gov.pl/rpl/eksport-danych-v1.0")
@XmlElement(name="pack", namespace ="http://rejestrymedyczne.csioz.gov.pl/rpl/eksport-danych-v1.0")
private List<Pack> packs;

关于java - Jaxb 未编码列表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46623721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com