[Java] [JDOM] impossible de lire un fichier avec un xsd
Bonjour,
Pour parser un fichier .xml en java avec JDOM j'utilise ce code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
private File file;
private Element root;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document d = db.parse(file);
DOMBuilder dom = new DOMBuilder();
org.jdom.Document doc = dom.build(d);
root = doc.getRootElement();
List lst = root.getChild("toto").getChildren("titi");
... |
Ca marche très bien quand mon fichier .xml n'a pas de référence à un xsd.
Exemple:
Code:
1 2 3 4 5
|
<?xml version="1.0" encoding="utf-8"?>
<Racine>
...
</Racine> |
Mais j'ai un NullPointerException quand mon fichier fait référence à un xsd.
Exemple:
Code:
1 2 3 4 5
|
<?xml version="1.0" encoding="utf-8"?>
<Racine xmlns="http://gogo.org/momo.xsd">
...
</Racine> |
Est ce qu'il y a un moyen de résoudre le problème ?
Merci.
Confusion validation et espace de nommage ?
Dans le deuxième cas, tu définis un nouvel espace de nommage qui contient un path avec un XSD. Si c'est pour faire de la validation, ce n'est pas comme cela :
<Racine
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://gogo.org/momo.xsd" >
...
</Racine>
Si par contre, tu avais bien choisis un XSD pour définir ton espace de nommage (donc pas de validation), alors il faut sans doute dans JDom dire que l'on cherche un élément par rapport à un espace de nommage, puisqu'un espace de nommage qualifie un élément et lui donne en quelque sorte 2 noms, son nom local et son espace de nommage.
Cordialement,
A.Brillant
EditiX - Editeur XML et Debugger XSLT
http://www.editix.com