Java Spring oxm编组和解编组对象列表

Java Spring oxm编组和解编组对象列表,java,xml,spring,marshalling,Java,Xml,Spring,Marshalling,我们正在使用Spring进行一个项目,我需要整理和取消整理对象列表 从和到XML。 由于各种原因,业务对象本身没有@XmlRootElement注释,这些注释无法更改 通过使用包装器类,我可以很容易地使用javax.xml实现这一点。我正在使用一个带有数字ID和描述字段的简单testObject: /** * testObject for xml convert * */ package xmlconvert; import java.io.File; import java.io

我们正在使用Spring进行一个项目,我需要整理和取消整理对象列表 从和到XML。 由于各种原因,业务对象本身没有@XmlRootElement注释,这些注释无法更改

通过使用包装器类,我可以很容易地使用javax.xml实现这一点。我正在使用一个带有数字ID和描述字段的简单testObject:

/**
  * testObject for xml convert
  *
  */
package xmlconvert;

import java.io.File;
import java.io.IOException;
import java.util.List;

//import javax.xml.bind.JAXBContext;
//import javax.xml.bind.JAXBException;
//import javax.xml.bind.Marshaller;
//import javax.xml.bind.Unmarshaller;
//import javax.xml.bind.annotation.XmlRootElement;
//import javax.xml.bind.annotation.XmlType;

public class testObject
{
    private static final long serialVersionUID = 1L;

    public testObject()
    {
        setObjectid( 0L );
        setDescription( " " );
    }

    public testObject( Long oid, String desc )
    {
        setObjectid( oid );
        setDescription( desc );
    }

    private Long objectid;

    public Long getObjectid()
    {
        return this.objectid;
    }
    public void setObjectid( Long oid )
    {
        this.objectid = oid;
    }

    private String description;

    public String getDescription()
    {
        return this.description;
    }
    public void setDescription( String d )
    {
        this.description = d;
    }

}
我的包装器类如下所示:

/**
 *  JAXBToList
 * 
 *  An object that holds the list of objects to convert.
 *
 */
package xmlconvert;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;

import xmlconvert.testObject;

@XmlRootElement(name="testObjects")
public class JAXBToList
{
    protected List<testObject> list;

    public JAXBToList()
    {
        list = new ArrayList<testObject>();
    }

    public JAXBToList( List<testObject> list )
    {
        this.list = list;
    }

    @XmlElement(name="testObject")
    public List<testObject> getList()
    {
        return (List<testObject>) this.list;
    }

}
  @XmlElements({
        @XmlElement(name="testObject", 
                          type=testObject.class)
  })
  public static void convertListToXML( JAXBToList objectList, 
                                            String xmlFilePath )
              throws IOException, JAXBException {
        JAXBContext jc = JAXBContext.newInstance( JAXBToList.class );
        marshaller = jc.createMarshaller();
        marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT,  Boolean.TRUE );
        marshaller.marshal( objectList, 
                            new StreamResult( new FileOutputStream(xmlFilePath) ) );
  }
我想使用Spring marshaller和unmarshaller来实现这一点,但是似乎没有办法设置上下文来使用oxm类中的JAXBToList类
Jaxb2Marshaller
,或者其他种类的marshaller

我知道有一个set-Jaxb-Context-Properties方法,但是没有关于我需要设置什么的说明,或者使用它是否会像上面所示那样设置Jaxb-Context-Properties


有没有人有一个链接来说明如何将oxm用于对象列表?谷歌搜索结果不多。

你的问题是什么?嗨,Jimbo。您可以在最后一个代码框中找到我的问题:是否有人有说明如何将oxm用于对象列表的链接?谷歌搜索结果不多。我个人帮不了你,汤姆,但我已经把你的问题移到了代码框之外,所以你的问题很明显。如果您认为您可以进一步编辑此内容(以便人们更容易理解您的问题,从而更好地帮助您)-请通过您帖子下方的编辑按钮自由编辑。谢谢,Jimbo。出于某种原因,邮箱希望我将该部分格式化为代码。可能是因为我在文本中有对象和方法的名称。