Spring batch 读取复杂的xml文件

Spring batch 读取复杂的xml文件,spring-batch,Spring Batch,我正在尝试使用spring批处理读取一个复杂的XML文件。 当处理一个简单的结构时,这不是一个问题。但是,我必须处理这种XML文件: <?xml version="1.0" encoding="UTF-8"?> <PivotContrat xsi:noNamespaceSchemaLocation="PivotContrat.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Emette

我正在尝试使用spring批处理读取一个复杂的XML文件。 当处理一个简单的结构时,这不是一个问题。但是,我必须处理这种XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<PivotContrat xsi:noNamespaceSchemaLocation="PivotContrat.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Emetteur>
        <Id>String</Id>
        <Nom>String</Nom>
    </Emetteur>
    <Recepteur>
        <Id>String</Id>
        <Nom>String</Nom>
    </Recepteur>
    <Compteurs>text</Compteurs>
    <IndicateurVide>String</IndicateurVide>
    <Policy>
        <Identifiant>
            <Id>String</Id>
        </Identifiant>
        <Evenement>
            <Id>String</Id>
            <Origine>String</Origine>
            <User>String</User>
            <Dates>
                <DateEvt>1967-08-13</DateEvt>
                <DateEffetDebut>1967-08-13</DateEffetDebut>
                <DateEffetFin>1967-08-13</DateEffetFin>
            </Dates>
        </Evenement>
        <Statut>
            <Code>String</Code>
            <DateEffet>1967-08-13</DateEffet>
            <StatutPrec>1967-08-13</StatutPrec>
        </Statut>
        <Produit>
            <Id>String</Id>
        </Produit>
        <Distributeur>
            <Id>String</Id>
        </Distributeur>
        <Producteur>
            <Id>String</Id>
        </Producteur>
        <Client>
            <Id>String</Id>
        </Client>
        <DateSouscription>1967-08-13</DateSouscription>
        <Periodicite>0</Periodicite>
        <Montant>3.14159265358979E0</Montant>
        <Duree>0</Duree>
        <ReferencesBancaire>
            <RIB>String</RIB>
        </ReferencesBancaire>
        <GarantiesSouscrites>
            <Id>String</Id>
        </GarantiesSouscrites>
    </Policy>
</PivotContrat>
第一个节点是某种标头。Emetteur、Receipter等

策略节点是一个集合,可能非常庞大

我的问题是,我只能定义1个fragmentRootElementName,在这种情况下,它不能是卷问题的真正根PivotContrat

我需要读取每个第一级节点,以便使用JAXB封送器将它们封送到适当的对象中

有没有办法使用多重fragmentRootElementName? 有没有其他方法可以使用这种XML结构?
我还没有看到如何实现这种处理。

根据您的描述,您的最佳选择似乎是实现自己的处理。内置的只支持单个fragmentRootElement,因为它是最常见的用例