JAXB+MOXy:从元素的属性中提取列表?

JAXB+MOXy:从元素的属性中提取列表?,jaxb,eclipselink,moxy,Jaxb,Eclipselink,Moxy,我有一个包含 <jaxbBean file="A.groovy"/> <jaxbBean file="B.groovy"/> 但这与包含null的任何内容都不匹配 莫西能这么简单地做到这一点吗?或者我必须介绍一门额外的课程 我不想更改XML语法。您的映射看起来是正确的,下面是一个完整的示例。由于要注释该字段,请确保类上有@xmlacessortypexmlacesstype.field请参见: 域模型根 导入java.util.List; 导入javax

我有一个包含

    <jaxbBean file="A.groovy"/>
    <jaxbBean file="B.groovy"/>
但这与包含null的任何内容都不匹配

莫西能这么简单地做到这一点吗?或者我必须介绍一门额外的课程


我不想更改XML语法。

您的映射看起来是正确的,下面是一个完整的示例。由于要注释该字段,请确保类上有@xmlacessortypexmlacesstype.field请参见:

域模型根

导入java.util.List; 导入javax.xml.bind.annotation.*; 导入org.eclipse.persistence.oxm.annotations.XmlPath; @XmlRootElement @XmlAccessorTypeXmlAccessType.FIELD 公共类根{ @XmlPathjaxbBean/@文件 列出所有类别; } jaxb.properties

要将MOXy指定为JAXB JSR-222提供程序,您需要在与域模型相同的包中包含一个名为JAXB.properties的文件,该文件包含以下条目,请参见:

演示

导入java.io.File; 导入javax.xml.bind.*; 公开课演示{ 公共静态无效主字符串[]args引发异常{ JAXBContext jc=JAXBContext.newInstanceRoot.class; Unmarshaller Unmarshaller=jc.createUnmarshaller; 文件xml=newfilesrc/forum17104179/input.xml; Root=Root unmarshaller.unmarshalxml; Marshaller=jc.createMarshaller; marshaller.setPropertyMarshaller.JAXB_格式化的_输出,true; marshaller.marshallroot,System.out; } } input.xml/Output

@XmlPath("jaxbBean/@file")
List<String> jaxbBeansClasses;
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory