Le problème vient d'une limitation connue de l'implémentation Xerces présente dans Java : cf. bugs Sun
http://bugs.sun.com/bugdatabase/view...bug_id=6449928 + associés.
En synthèse cela vient de maxOccurs trop important dans un fichier Xsd, il est conseillé de ne pas dépasser 5 000.
Dans votre cas : Fichier Ressources/vwn_extern_V_1_0.xsd, élement Record :
maxOccurs="50000"/>
Des solutions techniques (jvm différente, xerces indépendant, etc) pourraient éventuellement être envisagées, sans garantir que le problème disparaisse complètement.
Le 50 000 représente il quelque chose fonctionnellement ?? il serait peut être plus judicieux de revoir cette valeur ... en indiquant que le nombre peut être infini .... cela permettrait de gagner énormément de temps (pas d'instanciation de gros tableau en mémoire).
En modifiant la valeur du maxOccurs à :
• 10 000, le chargement du XSD met 3 minutes.
• 5 000, le chargement du XSD met 22 secondes.
• 500, le chargement du XSD met 520 millisecondes.
• unbounded, le chargement du fichier XSD met 450 millisecondes.
Partager