我可以在JAXB中的<list>项目上使用“propOrder”吗?

时间:2015-11-10 22:29:35

标签: java xml xml-parsing jaxb marshalling

使用XML解析解决方案,我已经走到了尽头。如果有人知道该怎么做,将不胜感激。我试图取消列出项目并单独添加它们但由于编组刚刚打印出具有相同XmlType(name =“process”)注释的最后一个元素,因此不能正常工作。

这是问题所在:

@XmlRootElement
@XmlType(propOrder = {"simple","processList","logList","logList","processList","to","logList","aggregate"})
@XmlAccessorType(XmlAccessType.FIELD)
public class When {

    @XmlElement
    private String simple ="${body} != null";

    @XmlElement(name="process")
    private List<Process> processList = new ArrayList<Process>();

    public void setProcessList(List<Process> processList) {
        this.processList = processList;
    }


    @XmlElement(name="log")
    private List<Log> logList = new ArrayList<Log>();

    public void setLogList(List<Log> logList) {
        this.logList = logList;
    }

    @XmlElement
    private To to;

    @XmlElement
    private Aggregate aggregate;

    public void setAggregate(Aggregate aggregate) {
        this.aggregate = aggregate;
    }

    public void setTo(To to) {
        this.to = to;
    }
}

正如您所看到的,我已经使用列表向XML添加了不同的“进程”项。但我不能订购这些物品。当我整理它们时,它们会像这样印刷。

<when>
    <simple>${body} != null</simple>
    <process ref="identifyFileTypeFromRouteProcessor"/>
    <process ref="archiveFileProcessor"/>
    <log message="File ${file:name} fetched"/>
    <log message="Copy files to archive"/>
    <log message="Batching files"/>
    <to uri="#" autoCreate=true"/>
    <aggregate strategyRef="fileAggregator" completionFromBatchConsumer="true">
        <correlationExpression>
            <simple>{headers.fileType}</simple>
        </correlationExpression>
        <to uri="direct:sealFile"/>
    </aggregate>
</when>

试图在propOrder中多次写下自己的名字,看看他们是否会自己为这些值编制索引。

我首先想要一个进程,然后是一个日志,而不是所有进程之后的所有进程以及所有日志都在另一个进程之后。

谢谢大家看看我的问题。

祝你好运, SEPH

0 个答案:

没有答案