# Java > Gnral Java > Persistance des donnes >  [JAXB] Problme parsing XML avec XSD validant

## vano

Bonjour  tous,

Voil je rencontre actuellement un problme lors du parsing d'un fichier xml avec JAXB lorsque je veux associer le fichier XSD correspondant afin de faire la validation.

Voici un extrait de mon code :



```

```

Le xsd associ au fichier xml est 'myXSD.xsd' et se trouve dans un jar externe.

Mais lorque ce code est excut, l'exception suivante est leve :



```

```

Cela est d au fait que le type 'xsd:myHeader' est dfini dans un autre fichier XSD. (l'instruction suivante 

```
<xsd:include schemaLocation="commonTypes.xsd"/>
```

 se trouve dans myXSD.xsd)

Je suis tomb sur ce lien dcrivant le mme problme.

Une solution est de redfinir le resource resolver en implmentant l'interface "LSResourceResolver" mais je n'ai aucune ide de comment le faire... 

Auriez-vous un exemple d'implmentation ou une autre solution pour m'aider  rsoudre mon problme ?

Merci d'avance,

Sbastien

----------


## vano

Bon je n'ai toujours pas rsolu mon problme mais je vais expliqu ce que j'ai tent :

_SchemaFactory_ propose la methode suivante : _newSchema(Source[] schemas)_

Je me dis eurka - il suffit que je construise un tableau de _StreamSource_ avec les tous les xsd rfrencs dans les instructions _xsd:include_.

Et bien non  ::cry::  cela aurait t trop simple...

Il n'y a cependant plus d'exception leve lors de la cration du schma mais lors de l'invocation de la mthode _unmarshal(Document)_.



```

```

J'ai fais qques recherches sur google et je suis tomb sur ce lien : Cannot validate against multiple XML schemas within the same namespace

Il s'agirait d'un bug lors de la construction du schma avec l'appel newSchema avec comme argument le tableau de StreamSource; Si les XSD ont le mme namespace, seulement le premier de la liste est pris en compte car le hashcode est calcul sur base du name space...

Je suis vraiment bloqu... Personne ne peut vraiment m'aider ? Merci d'avoir pris le temps de me lire  :;):

----------


## vano

Une fois de plus je m'auto-rpond...  ::D: 

Juste pour signaler que j'ai rsolu mon problme.

Pour ceux qui rencontreraient ce problme voici comment je l'ai rsolu :

J'ai utilis la mthode _newSchema(URL)_ au lieu de _newSchema(Source[])_ tout simplement ! Les instructions _<xsd:include>_ ne posent ainsi plus de problme.

Donc au lieu de rcuprer un stream avec 


```
Thread.currentThread().getContextClassLoader().getResourceAsStream("xsd/myXSD.xsd")
```

j'ai rcuprer l'URL avec


```
Thread.currentThread().getContextClassLoader().getResource("xsd/myXSD.xsd")
```

----------

