Bonjour à tous,
Je souhaite valider mon fichier XML avec un fichier XSD, j'ai développé une classe en JDOM.Je n'arrive pas à faire valider.ça serait cooool de votre part de me proposer une solution.
Je vous remercie à l'avance
voici mon fichier XML:
Person.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="UTF-8"?> <personnes xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="Person.xsd"> <personne > <nom>dupon</nom> <prenom>pierre</prenom> </personne> <personne> <nom>durant</nom> <prenom>jean</prenom> </personne> <personne> <nom>martin</nom> <prenom>gilles</prenom> </personne> </personnes>
voici mon fichier xsd:
Person.xsd
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0"> <xsd:element name="personnes"> <xsd:complexType> <xsd:sequence> <xsd:element name="personne" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="nom" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="prenom" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
le code java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 package xml_and_xsd_validation; import java.io.File; import java.io.IOException; import org.jdom.Document; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; public class Test { public static void main( String[] args ){ try { XMLFile(); } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void XMLFile() throws JDOMException, IOException{ SAXBuilder builder = new SAXBuilder(true); builder.setValidation(true); builder.setFeature("http://xml.org/sax/features/validation", true); builder.setFeature("http://apache.org/xml/features/validation/schema",true); builder.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true); builder.setFeature("http://apache.org/xml/features/nonvalidating/load-external-xsd", true); Document doc = builder.build(new File("C:\\Project_XML_&_XSD_JDom\\ressources\\Person.xml")); } }
voila le message de console:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 org.jdom.JDOMException: http://apache.org/xml/features/nonvalidating/load-external-xsd feature not recognized for SAX driver com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser at org.jdom.input.SAXBuilder.internalSetFeature(SAXBuilder.java:827) at org.jdom.input.SAXBuilder.setFeaturesAndProperties(SAXBuilder.java:766) at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:621) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:905) at org.jdom.input.SAXBuilder.build(SAXBuilder.java:884) at xml_and_xsd_validation.Test.XMLFile(Test.java:45) at xml_and_xsd_validation.Test.main(Test.java:16)
Partager