Я пытаюсь прочитать сложный XML-файл с помощью Spring Batch, используя StaxEventItemReader .
Когда речь идет о простой структуре, это не проблема. Однако я должен иметь дело с этим видом 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, Recepteur и т. Д ...)
Узел политики - это коллекция, которая может быть довольно большой.
Моя проблема в том, что я могу определить только 1 FragRootElementName, который в этом случае не может быть настоящим корнем, PivotContrat, для проблем с объемом.
Мне нужно прочитать каждый узел 1-го уровня, чтобы упорядочить их в соответствующих объектах (с помощью маршаллера JAXB).
Есть ли какой-либо способ использовать кратные части fragRootElementName?
Есть ли другой способ работы с этой структурой XML?
Я не видел, как добиться такой обработки.