[xsd][Java] Utilité de xsi:schemaLocation ?
Bonjour, j'essaie de faire valider un xml en java. Lorsque mon xml ressemble à ceci:
Code:
1 2 3 4
| <?xml version="1.0" encoding="UTF-8"?>
<personList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.health.fgov.be/person http://www.health.fgov.be/person"
xmlns="http://www.health.fgov.be/person"/> |
Le processus de validation est bien enclenché, j'obtiens " cvc-complex-type.4: Attribute 'id' must appear on element 'personList'.", ce qui est bien le résultat souhaité. Cependant je me pose des questions quand à l'utilité de cette double déclaration xsi=schemaLocation, qui fait pointer le schéma sur lui même.
Si je la retire, et que je finis donc avec ce xml ci:
Code:
1 2
| <?xml version="1.0" encoding="UTF-8"?>
<personList xmlns="http://www.health.fgov.be/person"/> |
Le comportement est différent, j'obtiens "cvc-elt.1: Cannot find the declaration of element 'personList'", ce qui n'est pas le comportement voulu. Quelqu'un peut-il m'expliquer pourquoi cette déclaration xsi est indispensable? J'ai trouvé des tas d'exemple de xml sur le net ou l'on mettait seulement le namespace dans la déclaration et ca sufissait, par toute cette tartine de xsi.